'Nome       : relatoriounico.Std
'Tipo       : LST
'Data       : 2017/04/06
'Versao     : 2.5a
'Descricao  : suporte para relatorio unico

'------------------------------------------------------------------------------
'#VER - Historia de modificacoes
'------------------------------------------------------------------------------
'- Versao : 2.5a 2017/??/?? ---------------------------------------------------
'Considerar tabela de IRCT definida na categoria

'- Versao : 2.5  2017/04/03 ---------------------------------------------------
'Mapa para Anexo 0 quadro 5

'- Versao : 2.4e  2016/04/20 ---------------------------------------------------
'Relacao de horas trabalhadas em CSV
'Validar data promocao com data de relatorio

'- Versao : 2.4d  2016/04/11 ---------------------------------------------------
'Conciliar Organizacao tempo de trabalho com Duracao tempo trabalho
'Quando RemPaga=0 colocar 0,00 no campo

'- Versao : 2.4c  2016/03/14 ---------------------------------------------------
'Relacao de entradas e saidas, apresentar mais informacao

'- Versao : 2.4b  2015/03/30 ---------------------------------------------------
'Mapas horas de trabalho, salto pagina por estabelecimento com totais

'- Versao : 2.4a  2015/03/30 ---------------------------------------------------
'Anexo da formacao, assumir situacao 08 nos trabalhadores

'- Versao : 2.4  2015/03/30 ---------------------------------------------------
'Relacao de entradas e saidas

'- Versao : 2.3  2014/04/04 ---------------------------------------------------
'Mapas horas de trabalho descriminado por sexo
'Disponibilizar todos os anexos no ficheiro gerado
'Relacao dias de acidente trabalho

'- Versao : 2.2b  2012/03/21 ---------------------------------------------------
'Retirar msgbox ativa

'- Versao : 2.2b  2012/08/01 ---------------------------------------------------
'Mapa de trabalho suplementar

'- Versao : 2.2a  2012/05/16 ---------------------------------------------------
'Relatorio Unico para 2011

'- Versao : 2.1  2012/03/21 ---------------------------------------------------
'Relação de horas

'- Versao : 2.0  2012/01/09 ---------------------------------------------------
'Versão SIG 2012


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


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


'-----------------------------------------------------------------------------
' Configuracao do documento
'-----------------------------------------------------------------------------
#DOC
Tipo                       [DocTip]=RU_SPI
Nome                       [DocNom]=RU2009,Suporte informatico

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Directorio ficheiros       [DocEsp]=Spidir=Spi\RU
Listar valores a 0         [DocEsp]=LstZer=1
tipo suporte informatico   [DocEsp]=SpiTip=RU
Validar sup.informatico    [DocEsp]=SpiVal=0
Modo de listagem           [DocEsp]=LstModo=SPI
nome para ficheiro         [DocEsp]=SpiFic=[EMPCTRB]_[DT4].xml
Identificador de listagem  [DocEsp]=LstId=RUSPI
conferencia                [DocEsp]=SpiCnf=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=RuCab
Listar linhas               [FxLIN]=RuLinTrb
Listar fim                  [FxFIM]=RuFim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RU_SPI
Nome                       [DocNom]=HORAS_G,horas trabalhadas 

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=54
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a 0         [DocEsp]=LstZer=1
Modo de listagem           [DocEsp]=LstModo=AUX:HORAS
Identificador de listagem  [DocEsp]=LstId=RUHORAS


'funcoes de listagem
Listar cabecalho            [FxCAB]=RxHoras_Cab
Listar linhas               [FxLIN]=RxHoras_Lin
Listar fim                  [FxFIM]=RxHoras_Fim;3
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RU_SPI
Nome                       [DocNom]=MRR_G,Anexo 0 quadro 5

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=54
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a 0         [DocEsp]=LstZer=1
Modo de listagem           [DocEsp]=LstModo=AUX:MRR
Identificador de listagem  [DocEsp]=LstId=RUMRR


'funcoes de listagem
Listar cabecalho            [FxCAB]=RxMrr_Cab
Listar linhas               [FxLIN]=RxMrr_Lin;2
Listar fim                  [FxFIM]=RxMrr_Fim;3
##



'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RU_SPI
Nome                       [DocNom]=HORAS,horas trabalhadas CSV

'formato
'formato
Saida/Impressora           [DocSai]=1
Linhas por pagina          [DocLpg]=0
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a 0         [DocEsp]=LstZer=1
Modo de listagem           [DocEsp]=LstModo=AUX:HORAS
Identificador de listagem  [DocEsp]=LstId=RUHORASCSV


'funcoes de listagem
Listar cabecalho            [FxCAB]=Tx_RxHoras_Cab
Listar linhas               [FxLIN]=Tx_RxHoras_Lin
Listar fim                  [FxFIM]=Tx_RxHoras_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RU_SPI
Nome                       [DocNom]=ENTSAI_G,Entrada e saida de trabalhadores

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=34
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a 0         [DocEsp]=LstZer=1
Modo de listagem           [DocEsp]=LstModo=ENTSAI
Identificador de listagem  [DocEsp]=LstId=ENTSAI


'funcoes de listagem
Listar cabecalho            [FxCAB]=RxEntSai_Cab
Listar linhas               [FxLIN]=RxEntSai_Lin
Listar fim                  [FxFIM]=RxEntSai_Fim;3
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RU_SPI
Nome                       [DocNom]=HORASX_G,trabalho suplementar

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=55
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a 0         [DocEsp]=LstZer=1
Modo de listagem           [DocEsp]=LstModo=AUX:HORAS
Identificador de listagem  [DocEsp]=LstId=RUHORASX


'funcoes de listagem
Listar cabecalho            [FxCAB]=Horasx_Cab
Listar linhas               [FxLIN]=Horasx_Lin
Listar fim                  [FxFIM]=Horasx_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RU_SPI
Nome                       [DocNom]=ACT_G,acidentes trabalho

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=55
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a 0         [DocEsp]=LstZer=1
Modo de listagem           [DocEsp]=LstModo=AUX:HORAS
Identificador de listagem  [DocEsp]=LstId=RUACT


'funcoes de listagem
Listar cabecalho            [FxCAB]=RxAct_Cab
Listar linhas               [FxLIN]=RxAct_Lin
Listar fim                  [FxFIM]=RxAct_Fim
##



'-----------------------------------------------------------------------------
' Variaveis
'-----------------------------------------------------------------------------
#VAR
DataExt   = FrmDt$("EXT",Sig_DtHoje)
Pag      = Doc_CntPag
##


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


'-----------------------------------------------------------------------------
' Formato do documento
'-----------------------------------------------------------------------------
#PGM
'===================================================================================
'  Suporte Informatico
'===================================================================================
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



'-----------------------------------------------------------------------------------
Sub RuLinTrb
'-----------------------------------------------------------------------------------
RelAno$=GpeRelUniFx$("PAR","ANO_LST")
RelAxaAm$=RelAno$+"10"


call relatorio_ini
   call entity_data_ini
      call Active_estabs

'      call entity_config_ini
'         call strikes
'      call entity_config_fim


      call entity_ini         'dados da empresa
        call estabs_ini
         call estab           'estabelecimentos
        call estabs_fim
      call entity_fim
   call entity_data_fim


   call anexos_ini
      call anexo_zero      
      call anexo_qp          'quadro pessoal
      call anexo_fest         'entrada e saida trabalhadores
      call anexo_rfc
      call anexo_sst         
      call anexo_grv
      call anexo_ips         
  
  call anexos_fim
call relatorio_fim
end sub


'-----------------------------------------------------------------------------------
sub linha
'-----------------------------------------------------------------------------------
'fx=FicLinGrv(1,"")
end sub

'-----------------------------------------------------------------------------------
sub relatorio_ini
'-----------------------------------------------------------------------------------
'fx=FicLinGrv(1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" encoding="+chr$(34)+"UTF-8"+chr$(34)+"?>")
fx=FicLinGrv(1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" encoding="+chr$(34)+"ISO-8859-1"+chr$(34)+" ?>") 
fx=FicLinGrv(1,"<relatorio_unico xmlns="+chr$(34)+"http://www.gep.msss.gov.pt/sguri/ru"+chr$(34)+" xmlns:xsi="+chr$(34)+"http://www.w3.org/2001/XMLSchema-instance"+chr$(34)+" XML_DATA="+chr$(34)+"1.0.0"+chr$(34)+">")


txv$=gpe_esp_versao$

fx=FicLinGrv(1," <header>")
fx=FicLinGrv(1,"   <aplicacao>")
fx=FicLinGrv(1,"      <nome>GPE</nome>")
fx=FicLinGrv(1,"      <versao>"+chr$(34)+txv$+chr$(34)+"</versao>")
fx=FicLinGrv(1,"      <empresa>Olisoft</empresa>")
fx=FicLinGrv(1,"   </aplicacao>")
fx=FicLinGrv(1," </header>")

fx=FicLinGrv(1,"<body>")

end sub


'-----------------------------------------------------------------------------------
sub entity_data_ini
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"  <entity_data>")
call linha
end sub


'-----------------------------------------------------------------------------------
sub Active_estabs
'-----------------------------------------------------------------------------------
idtx$=chr$(34)

fx=FicLinGrv(1,"   <active_estabs year_ref="+chr$(34)+Relano$+chr$(34)+">")

EstMax=GpeRelUniFx("EST_ACTIVO","CNT")

'-----------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs annex="+chr$(34)+"ZRO"+chr$(34)+" excluded="+chr$(34$)+"N"+chr$(34)+">")
  for cnt=1 to EstMax
    est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
    EstId$ = GpeTabCon$("EST",est$,"RU-ID")
    fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"true"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
  next
fx=FicLinGrv(1,"     </estabs>")
'-----------------------------------------------------------------------


'-----------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs annex="+chr$(34)+"QP"+chr$(34)+" excluded="+chr$(34$)+"N"+chr$(34)+">")
  for cnt=1 to EstMax
    est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
    EstId$ = GpeTabCon$("EST",est$,"RU-ID")
    num = val(GpeTabCon$("EST",est$,"RU-NUM"))
    if num=0 then
      css$= GpeTabCon$("EST",est$,"CSS")
      EmpNiss$= GpeTabCon$("CSS",css$,"CTRB")
   '   fx=msgbox(est$,empniss$)
      fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"true"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
    end if
    if num<>0 then
       fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"false"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
    end if
  next
fx=FicLinGrv(1,"     </estabs>")
'-----------------------------------------------------------------------


'-----------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs annex="+chr$(34)+"FEST"+chr$(34)+" excluded="+chr$(34$)+"N"+chr$(34)+">")
  for cnt=1 to EstMax
   est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
   EstId$ = GpeTabCon$("EST",est$,"RU-ID")
   fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"true"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
  next
fx=FicLinGrv(1,"     </estabs>")
'-----------------------------------------------------------------------

'-----------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs annex="+chr$(34)+"RFC"+chr$(34)+" excluded="+chr$(34$)+"N"+chr$(34)+">")
  for cnt=1 to EstMax
   est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
   EstId$ = GpeTabCon$("EST",est$,"RU-ID")
   fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"true"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
  next
fx=FicLinGrv(1,"     </estabs>")
'-----------------------------------------------------------------------

'-----------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs annex="+chr$(34)+"SST"+chr$(34)+" excluded="+chr$(34$)+"N"+chr$(34)+">")
  for cnt=1 to EstMax
    est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
    EstId$ = GpeTabCon$("EST",est$,"RU-ID")
    num = val(GpeTabCon$("EST",est$,"RU-NUM"))
    if num=0 then
      css$= GpeTabCon$("EST",est$,"CSS")
      EmpNiss$= GpeTabCon$("CSS",css$,"CTRB")
   '   fx=msgbox(est$,empniss$)
      fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"true"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
    end if
    if num<>0 then
       fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"false"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
    end if
  next
fx=FicLinGrv(1,"     </estabs>")
'-----------------------------------------------------------------------


'-----------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs annex="+chr$(34)+"GRV"+chr$(34)+" excluded="+chr$(34$)+"N"+chr$(34)+">")
  for cnt=1 to EstMax
    est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
    EstId$ = GpeTabCon$("EST",est$,"RU-ID")
    num = val(GpeTabCon$("EST",est$,"RU-NUM"))
    if num=0 then
      css$= GpeTabCon$("EST",est$,"CSS")
      EmpNiss$= GpeTabCon$("CSS",css$,"CTRB")
   '   fx=msgbox(est$,empniss$)
      fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"true"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
    end if
    if num<>0 then
       fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"false"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
    end if
  next
fx=FicLinGrv(1,"     </estabs>")
'-----------------------------------------------------------------------

'-----------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs annex="+chr$(34)+"IPS"+chr$(34)+" excluded="+chr$(34$)+"N"+chr$(34)+">")
  for cnt=1 to EstMax
   est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
   EstId$ = GpeTabCon$("EST",est$,"RU-ID")
   fx=FicLinGrv(1,"       <estab hq="+chr$(34)+"true"+chr$(34)+" id="+chr$(34)+estId$+chr$(34)+"/>")
  next
fx=FicLinGrv(1,"     </estabs>")
'-----------------------------------------------------------------------






fx=FicLinGrv(1,"   </active_estabs>")
fx=FicLinGrv(1,"")

end sub


'-----------------------------------------------------------------------------------
sub entity_config_ini
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"   <entity_config>")
end sub

'-----------------------------------------------------------------------------------
sub strikes
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"      <strikes>")
fx=FicLinGrv(1,"      </strikes>")
end sub

'-----------------------------------------------------------------------------------
sub entity_config_fim
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"   </entity_config>")
call Linha
call Linha
end sub


'-----------------------------------------------------------------------------------
Sub entity_ini
'-----------------------------------------------------------------------------------


Empnif$        = Emp_Inf_Contrib$
EmpNome$       = TxtXml$(Emp_Inf_Nome$)
EmpMorada$     = Emp_Inf_Morada$
EmpLocalidade$ = Emp_Inf_Local$
EmpCpostal1$   = left$(trim$(Emp_Inf_CPost$),4)+Mid$(Emp_Inf_CPost$,6,3)
EmpCpostal2$   = Mid$(Emp_Inf_CPost$,10)


EmpTelefone$  = Emp_Inf_Telef$
EmpFax$       = Emp_Inf_Fax$
Empemail$     = Emp_Inf_Email$
EmpCDF$       = Emp_Inf_CodDist$
EMPPtr$       = TxIde$(Emp_Inf_Opc$,"ASSPTRCOD")
EmpCae$       = Emp_Inf_Cae$
EMPNJur$      = TxIde$(Emp_Inf_Opc$,"NATJURCOD")
EMPFormGes$   = Emp_Inf_FormGes$
EmpAnoCon$    = FrmDt$("A4",Emp_Inf_DtConst)
EmpNumP$      = Emp_Inf_NumPes

EmpCapv$      = NumXml$(Emp_Inf_CapSoc)
EmpCapP1$     = NumXml$(Emp_Inf_CapSocNac,1)
EmpCapP2$     = NumXml$(Emp_Inf_CapSocEst,1)
EmpCapP3$     = NumXml$(Emp_Inf_CapsocPub,1)

if EmpCapp2$="" then
 EmpCapp2$="0"
end if

if EmpCapp3$="" then
 EmpCapp3$="0"
end if


EmpVnd$       = NumXml$(Emp_Inf_VolVend)

EmpRuId$            = TxIde$(Emp_Inf_Opc$,"RU-ID")
EmpPaisAbrv$        = trim$(EmpTabCon$("PAIS",Emp_inf_Pais,"ABRV"))
EmpPaisDescription$ = EmpTabCon$("PAIS",Emp_Inf_Pais,"NOME")


fx=FicLinGrv(1,"   <entity xmlns="+chr$(34)+"http://www.gep.msss.gov.pt/sguri/sul"+chr$(34)+">")
fx=FicLinGrv(1,"     <entity_id>"+EmpRuId$+"</entity_id>")
fx=FicLinGrv(1,"     <nif>"+EmpNif$+"</nif>")
fx=FicLinGrv(1,"     <niss>"+EmpNiss$+"</niss>")
fx=FicLinGrv(1,"     <name>"+EmpNome$+"</name>")
fx=FicLinGrv(1,"     <address>")
fx=FicLinGrv(1,"       <address>"+EmpMorada$+"</address>")
fx=FicLinGrv(1,"       <location>"+EmpLocalidade$+"</location>")
fx=FicLinGrv(1,"       <zipcode>"+EmpCpostal1$+"</zipcode>")
fx=FicLinGrv(1,"       <zipcode_description>"+EmpCpostal2$+"</zipcode_description>")
fx=FicLinGrv(1,"     </address>")
fx=FicLinGrv(1,"     <dcf tbl="+chr$(34)+"RU_DCF"+chr$(34)+">"+EmpCDF$+"</dcf>")
fx=FicLinGrv(1,"     <dcf_description>"+EmpDCFDescription$+"</dcf_description>")
fx=FicLinGrv(1,"     <cae tbl="+chr$(34)+"RU_CAE_5DIG"+chr$(34)+">"+EmpCae$+"</cae>")
fx=FicLinGrv(1,"     <cae_description>"+EmpCAEDescription$+"</cae_description>")
fx=FicLinGrv(1,"     <ln tbl="+chr$(34)+"RU_NATJUR"+chr$(34)+">"+EMPNJur$+"</ln>")
fx=FicLinGrv(1,"     <ln_description>"+EmpFormGes$+"</ln_description>")
fx=FicLinGrv(1,"     <fax>"+EmpFax$+"</fax>")
fx=FicLinGrv(1,"     <phone>"+EmpTelefone$+"</phone>")
fx=FicLinGrv(1,"     <email>"+EmpEmail$+"</email>")
fx=FicLinGrv(1,"     <country tbl="+chr$(34)+"RU_CODPAIS"+chr$(34)+">"+EmpPaisAbrv$+"</country>")
fx=FicLinGrv(1,"     <country_description>"+EmpPaisDescription$+"</country_description>")
call Linha
End sub

'-----------------------------------------------------------------------------------
sub estabs_ini
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"     <estabs>")
call Linha
end sub



'-----------------------------------------------------------------------------------
sub estab
'-----------------------------------------------------------------------------------

EstMax=GpeRelUniFx("EST_ACTIVO","CNT")
for cnt=1 to EstMax
  est$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
  EstLer$=est$
  call EstVarLer

  fx=FicLinGrv(1,"       <estab>")
  fx=FicLinGrv(1,"         <estab_id>"+EstId$+"</estab_id>")

  if EstRuNum=0 then
    fx=FicLinGrv(1,"         <hq>true</hq>")
  else
    fx=FicLinGrv(1,"         <hq>false</hq>")
  end if

  fx=FicLinGrv(1,"         <num>"+EstRuNum+"</num>")
  fx=FicLinGrv(1,"         <nif>"+EmpNif$+"</nif>")
  fx=FicLinGrv(1,"         <name>"+EmpNome$+"</name>")
  fx=FicLinGrv(1,"         <address>")
  fx=FicLinGrv(1,"           <address>"+EstMorada$+"</address>")
  fx=FicLinGrv(1,"           <location>"+EstLocalidade$+"</location>")
  fx=FicLinGrv(1,"           <zipcode>"+EmpCpostal1$+"</zipcode>")
  fx=FicLinGrv(1,"           <zipcode_description>"+EmpCpostal2$+"</zipcode_description>")
  fx=FicLinGrv(1,"         </address>")
  fx=FicLinGrv(1,"         <dcf tbl="+chr$(34)+"RU_DCF"+chr$(34)+">"+EstDCF$+"</dcf>")
  fx=FicLinGrv(1,"         <dcf_description>"+EstDCFDescription$+"</dcf_description>")
  fx=FicLinGrv(1,"         <cae tbl="+chr$(34)+"RU_CAE_5DIG"+chr$(34)+">"+EmpCae$+"</cae>")
  fx=FicLinGrv(1,"         <cae_description/>")
  fx=FicLinGrv(1,"         <country tbl="+chr$(34)+"RU_CODPAIS"+chr$(34)+">"+EmpPaisAbrv$+"</country>")
  fx=FicLinGrv(1,"         <country_description>"+EmpPaisDescription$+"</country_description>")
  fx=FicLinGrv(1,"         <phone>"+EstTelef$+"</phone>")
  fx=FicLinGrv(1,"         <email>"+EmpEmail$+"</email>")
  fx=FicLinGrv(1,"       </estab>")
next


end sub


'-----------------------------------------------------------------------------------
sub estabs_fim
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"     </estabs>")
call Linha
end sub


'-----------------------------------------------------------------------------------
sub entity_fim
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"   </entity>")
call Linha
end sub


'-----------------------------------------------------------------------------------
sub entity_Data_fim
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1," </entity_data>")
call Linha
end sub


'-----------------------------------------------------------------------------------
sub anexos_ini
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1," <anexos>")
call Linha
end sub


'-----------------------------------------------------------------------------------
sub anexo_fest
'-----------------------------------------------------------------------------------
TrbMax=GpeRelUniFx$("ENTSAITRB","CNT")

fx=FicLinGrv(1,"   <anexo_fest xmlns="+chr$(34)+"http://www.gep.msss.gov.pt/sguri/ru/anexo_fest"+chr$(34)+" XML_DATA="+chr$(34)+"1.0.0"+chr$(34)+" ano="+chr$(34)+RelAno$+chr$(34)+" entidade="+chr$(34)+EmpRuId$+chr$(34)+">")

if TrbMax>0 then
  fx=FicLinGrv(1,"     <exist_entradas_saidas>S</exist_entradas_saidas>")
end if

if TrbMax=0 then
  fx=FicLinGrv(1,"     <exist_entradas_saidas>N</exist_entradas_saidas>")
end if
fx=FicLinGrv(1,"       <nome_entidade>"+EmpNome$+"</nome_entidade>")


fx=FicLinGrv(1,"      <dados_fest>")
fx=FicLinGrv(1,"        <cae_31Dez tbl="RU_CAE_5DIG">"+EmpCae$+"</cae_31Dez>")
fx=FicLinGrv(1,"        <trabalhadores>")


for cnt=1 to TrbMax
  trb$=GpeRelUniFx$("ENTSAITRB","TRB_COD",cnt)
  fx=GpeTrbLer(trb$)
  call valoresTrb

  fx=FicLinGrv(1,"          <trabalhador>")
  fx=FicLinGrv(1,"            <ident_reg_apli tbl="+chr$(34)+"RU_REREAP"+chr$(34)+">"+RegRfm$+"</ident_reg_apli>")
  fx=FicLinGrv(1,"            <niss>"+regRfmCod$+"</niss>")
  fx=FicLinGrv(1,"            <nome>"+nome$+"</nome>")

  if SitProf$="3" then
    fx=FicLinGrv(1,"            <tipo_contrato tbl="+chr$(34)+"RU_TIPCON"+chr$(34)+">"+TipCtr$+"</tipo_contrato>")
  end if

  if dtEntVl>0 then  
    fx=FicLinGrv(1,"            <entrada>")
    fx=FicLinGrv(1,"              <data>"+dtAd$+"</data>")
    fx=FicLinGrv(1,"              <motivo tbl="+chr$(34)+"RU_MEEE"+chr$(34)+">"+AdmiMotivo$+"</motivo>")
    fx=FicLinGrv(1,"            </entrada>")
  end if
  

  if dtSaiVl>0 then
    fx=FicLinGrv(1,"            <saida>")
    fx=FicLinGrv(1,"              <data>"+DtSai$+"</data>")
    fx=FicLinGrv(1,"              <motivo tbl="+chr$(34)+"RU_MSEE"+chr$(34)+">"+saiMotivo$+"</motivo>")
    fx=FicLinGrv(1,"            </saida>")
  end if

  fx=FicLinGrv(1,"            <sexo tbl="+chr$(34)+"RU_SX"+chr$(34)+">"+sex$+"</sexo>")
  fx=FicLinGrv(1,"            <data_nasc>"+DtNa$+"</data_nasc>")
  fx=FicLinGrv(1,"            <nacionalidade tbl="+chr$(34)+"RU_CODPAIS"+chr$(34)+">"+Pais$+"</nacionalidade>")
  fx=FicLinGrv(1,"            <habil_lit tbl="+chr$(34)+"RU_HABLIT"+chr$(34)+">"+hab$+"</habil_lit>")
  fx=FicLinGrv(1,"            <sit_prof tbl="+chr$(34)+"RU_SITPROF"+chr$(34)+">"+SitProf$+"</sit_prof>")
  fx=FicLinGrv(1,"            <prof tbl="+chr$(34)+"RU_CNP"+chr$(34)+">"+Prof$+"</prof>")
  fx=FicLinGrv(1,"            <h_1art227>"+hx1$+"</h_1art227>")
  fx=FicLinGrv(1,"            <h_2art227>"+Hx2$+"</h_2art227>")
  fx=FicLinGrv(1,"          </trabalhador>")
next

fx=FicLinGrv(1,"        </trabalhadores>")
fx=FicLinGrv(1,"      </dados_fest>")
fx=FicLinGrv(1,"    </anexo_fest>")


call Linha
end sub


'-----------------------------------------------------------------------------------
sub anexo_rfc
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"    <anexo_rfc xmlns="+chr$(34)+"http://www.gep.msss.gov.pt/sguri/ru/anexo_rfc"+chr$(34)+" XML_DATA="+chr$(34)+"1.1.0"+chr$(34)+" ano="+chr$(34)+RelAno$+chr$(34)+" entidade="+chr$(34)+EmpRuId$+chr$(34)+">")
fx=FicLinGrv(1,"      <nome_entidade>"+EmpNome$+"</nome_entidade>")
fx=FicLinGrv(1,"      <exist_trabalhadores>S</exist_trabalhadores>")
fx=FicLinGrv(1,"      <dados_rfc>")
fx=FicLinGrv(1,"        <cae_31Dez tbl="RU_CAE_5DIG">"+EmpCae$+"</cae_31Dez>")
fx=FicLinGrv(1,"        <formacoes></formacoes>")
fx=FicLinGrv(1,"        <trabalhadores>")

EstMax=GpeRelUniFx("EST_COM_TRB","EST_CNT")
for EstIdx=1 to EstMax
  EstMaxTrb=GpeRelUniFx("EST_COM_TRB","TRB_CNT",EstIdx)
  for TrbIdx=1 to EstMaxTrb
    trb$=GpeRelUniFx$("EST_COM_TRB","TRB_COD",EstIdx,TrbIdx)
    fx=GpeTrbLer(trb$)
    call valoresTrb
    fx=FicLinGrv(1,"           <trabalhador>")
    fx=FicLinGrv(1,"               <nome>"+nome$+"</nome>")
    fx=FicLinGrv(1,"               <ident_reg_apli tbl="RU_REREAP">"+regRfm$+"</ident_reg_apli>")
    fx=FicLinGrv(1,"               <niss>"+regRfmCod$+"</niss>")
    fx=FicLinGrv(1,"               <situacao_freq tbl="+chr$(34)+"RU_SITFREQ+"+chr$(34)+">08</situacao_freq>")
    fx=FicLinGrv(1,"           </trabalhador>")
  next
next

fx=FicLinGrv(1,"        </trabalhadores>")
fx=FicLinGrv(1,"      </dados_rfc>")
fx=FicLinGrv(1,"    </anexo_rfc>")
'call Linha
'call Linha
end sub



'-----------------------------------------------------------------------------------
sub anexo_grv
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"   <anexo_grv xmlns="+chr$(34)+"http://www.gep.msss.gov.pt/sguri/ru/anexo_grv"+chr$(34)+" XML_DATA="+chr$(34)+"1.0.0"+chr$(34)+" ano="+chr$(34)+RelAno$+chr$(34)+" entidade="+chr$(34)+EmpRuId$+chr$(34)+">")
fx=FicLinGrv(1,"      <nome_entidade>"+EmpNome$+"</nome_entidade>")
fx=FicLinGrv(1,"        <exist_greves/>")
fx=FicLinGrv(1,"        <estabs>")

EstMax=GpeRelUniFx("EST_ACTIVO","CNT")
for cnt=1 to EstMax
  EstLer$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
  call EstVarLer

  if EstRuNum=0 then
    fx=FicLinGrv(1,"       <estab id="+chr$(34)+EstId$+chr$(34)+" sede="+chr$(34)+"S"+chr$(34)+">")
  else
    fx=FicLinGrv(1,"       <estab id="+chr$(34)+EstId$+chr$(34)+" sede="+chr$(34)+"N"+chr$(34)+" >")
  end if

  fx=FicLinGrv(1,"         <cae_31Dez tbl="+chr$(34)+"RU_CAE_5DIG"+chr$(34)+">"+EmpCae$+"</cae_31Dez>")
  fx=FicLinGrv(1,"         <pessoas_serv_31Dez>"+EstNumTrb$+"</pessoas_serv_31Dez>")
  fx=FicLinGrv(1,"         <nr_medio_anual_tco/>")
  fx=FicLinGrv(1,"       </estab>")
next
fx=FicLinGrv(1,"        </estabs>")

fx=FicLinGrv(1,"      </anexo_grv>")
call Linha
call Linha
end sub


'-----------------------------------------------------------------------------------
sub anexo_sst
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"   <anexo_sst xmlns="+chr$(34)+"http://www.gee.min-economia.pt/sguri/ru/anexo_rfc"+chr$(34)+" XML_DATA="+chr$(34)+"2.3.1"+chr$(34)+" ano="+chr$(34)+RelAno$+chr$(34)+" entidade="+chr$(34)+EmpRuId$+chr$(34)+">")
fx=FicLinGrv(1,"      <nome_entidade>"+EmpNome$+"</nome_entidade>")
fx=FicLinGrv(1,"        <estabs>")

EstMax=GpeRelUniFx("EST_ACTIVO","CNT")
for cnt=1 to EstMax
  EstLer$=GpeRelUniFx$("EST_ACTIVO","COD",cnt)
  call EstVarLer

  if EstRuNum=0 then
    fx=FicLinGrv(1,"       <estab id="+chr$(34)+EstId$+chr$(34)+" sede="+chr$(34)+"S"+chr$(34)+">")
  else
    fx=FicLinGrv(1,"       <estab id="+chr$(34)+EstId$+chr$(34)+" sede="+chr$(34)+"N"+chr$(34)+" >")
  end if
  fx=FicLinGrv(1,"       </estab>")
next
fx=FicLinGrv(1,"        </estabs>")

fx=FicLinGrv(1,"      </anexo_sst>")
call Linha
call Linha
end sub


'-----------------------------------------------------------------------------------
sub anexo_ips
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"   <anexo_ips xmlns="+chr$(34)+"http://www.gee.min-economia.pt/sguri/ru/anexo_ips"+chr$(34)+" XML_DATA="+chr$(34)+"2.3.1"+chr$(34)+" ano="+chr$(34)+RelAno$+chr$(34)+" entidade="+chr$(34)+EmpRuId$+chr$(34)+">")
fx=FicLinGrv(1,"      <nome_entidade>"+EmpNome$+"</nome_entidade>")
fx=FicLinGrv(1,"      <exist_prest_serv/>")
fx=FicLinGrv(1,"      <dados_ips>")
fx=FicLinGrv(1,"         <cae_31Dez tbl="+chr$(34)+"RU_CAE_5DIG"+chr$(34)+">"+EmpCae$+"</cae_31Dez>")
fx=FicLinGrv(1,"      </dados_ips>")
fx=FicLinGrv(1,"   </anexo_ips>")
call Linha
call Linha
end sub



'-----------------------------------------------------------------------------------
Sub EstVarLer  'ler variaveis de estabelecimento
'-----------------------------------------------------------------------------------
'NOTA: assume estabelecimento indicado na variavel EstLer$

EstNumTrb$ = val(GpeTabCon$("EST",EstLer$,"NPESS"))
EstIrct$ = val(GpeTabCon$("EST",EstLer$,"IRTCOD"))
EstId$ = GpeTabCon$("EST",EstLer$,"RU-ID")
EstRuNum = val(GpeTabCon$("EST",EstLer$,"RU-NUM"))
EstDCF$ = GpeTabCon$("EST",EstLer$,"CODDIST")
EstTelef$ = GpeTabCon$("EST",EstLer$,"TELEF")
EstFax$ = GpeTabCon$("EST",EstLer$,"FAX")
EstMorada$ = GpeTabCon$("EST",EstLer$,"MORADA")
EstLocalidade$ = GpeTabCon$("EST",EstLer$,"LOC")
EstDCFDescription$=""
end sub

'-----------------------------------------------------------------------------------
sub anexo_qp
'-----------------------------------------------------------------------------------
EmpNumTrb$=Emp_Inf_NumPes



fx=FicLinGrv(1,"   <anexo_qp xmlns="+chr$(34)+"http://www.gep.msss.gov.pt/sguri/ru/anexo_qp"+chr$(34)+" XML_DATA="+chr$(34)+"1.0.0"+chr$(34)+" ano="+chr$(34)+RelAno$+chr$(34)+" entidade="+chr$(34)+EmpRuId$+chr$(34)+">")
fx=FicLinGrv(1,"     <nome_entidade>"+EmpNome$+"</nome_entidade>")
fx=FicLinGrv(1,"     <total_pess_servico_31Out>"+EmpNumTrb$+"</total_pess_servico_31Out>")
fx=FicLinGrv(1,"     <cae_31Out tbl="+chr$(34)+"RU_CAE_5DIG"+chr$(34)+">"+EmpCae$+"</cae_31Out>")
fx=FicLinGrv(1,"     <natJur_31Out tbl="+chr$(34)+"RU_NATJUR"+chr$(34)+">"+EmpNjur$+"</natJur_31Out>")
fx=FicLinGrv(1,"     <estabs>")

EstMax=GpeRelUniFx("EST_COM_TRB","EST_CNT")

for EstIdx=1 to EstMax

  est$=GpeRelUniFx$("EST_COM_TRB","EST_COD",EstIdx)

  EstId$ = GpeTabCon$("EST",est$,"RU-ID")
  EstNumTrb$ = val(GpeTabCon$("EST",est$,"NPESS"))
  EstRuNum = val(GpeTabCon$("EST",est$,"RU-NUM"))
  EstIrct$ = val(GpeTabCon$("EST",est$,"IRTCOD"))

  if EstRuNum=0 then
    fx=FicLinGrv(1,"       <estab id="+chr$(34)+EstId$+chr$(34)+" sede="+chr$(34)+"S"+chr$(34)+">")
  end if
  if EstRuNum<>0 then
    fx=FicLinGrv(1,"       <estab id="+chr$(34)+EstId$+chr$(34)+" sede="+chr$(34)+"N"+chr$(34)+">")
  end if

  fx=FicLinGrv(1,"         <pess_servico_31Out>"+EstNumTrb$+"</pess_servico_31Out>")
  fx=FicLinGrv(1,"         <cae_31Out tbl="+chr$(34)+"RU_CAE_5DIG"+chr$(34)+">"+EmpCae$+"</cae_31Out>")

if EstNumTrb$<>"0" then

  fx=FicLinGrv(1,"         <trabalhadores>")




  EstMaxTrb=GpeRelUniFx("EST_COM_TRB","TRB_CNT",EstIdx)
    for TrbIdx=1 to EstMaxTrb
      trb$=GpeRelUniFx$("EST_COM_TRB","TRB_COD",EstIdx,TrbIdx)
      fx=GpeTrbLer(trb$)
      call valoresTrb


  fx=FicLinGrv(1,"             <trabalhador>")
  fx=FicLinGrv(1,"               <nome>"+nome$+"</nome>")
  fx=FicLinGrv(1,"               <ident_reg_apli tbl="RU_REREAP">"+regRfm$+"</ident_reg_apli>")
  fx=FicLinGrv(1,"               <niss>"+regRfmCod$+"</niss>")

  fx=FicLinGrv(1,"               <sexo tbl="RU_SX">"+sex$+"</sexo>")
  fx=FicLinGrv(1,"               <data_nasc>"+DtNa$+"</data_nasc>")
  fx=FicLinGrv(1,"               <data_entr_emp>"+DtAd$+"</data_entr_emp>")
  fx=FicLinGrv(1,"               <data_ult_prom>"+DtPr$+"</data_ult_prom>")

  if SitProf$="3" then
    fx=FicLinGrv(1,"               <tipo_contr tbl="+chr$(34)+"RU_TIPCON"+chr$(34)+">"+TipCtr$+"</tipo_contr>")
  end if

  fx=FicLinGrv(1,"               <nacionalidade tbl="+chr$(34)+"RU_CODPAIS"+chr$(34)+">"+pais$+"</nacionalidade>")
  fx=FicLinGrv(1,"               <habil_lit tbl="+chr$(34)+"RU_HABLIT"+chr$(34)+">"+hab$+"</habil_lit>")
  fx=FicLinGrv(1,"               <sit_prof tbl="+chr$(34)+"RU_SITPROF"+chr$(34)+">"+SitProf$+"</sit_prof>")
  fx=FicLinGrv(1,"               <profissao tbl="+chr$(34)+"RU_CNP"+chr$(34)+">"+prof$+"</profissao>")



  trbirct$=EstIrct$

'validar se tem irct especifico de categoria, assim nao obriga a criar estabelecimento especifico
  catIrct$     = GpeTabCon$("CAT",Gpe_Mst_Categ,"TABIRCT")
  if catIrct$<>"" then
     trbirct$=catIrct$
  end if



 'os gerentes tem irct diferente, assim nao obriga a criar estabelecimento para eles

  if categ$="99000" then 
    trbirct$="90000"
'    trbirctA$="06"
  end if
  if categ$="99100" then 
    trbirct$="91000"
'    trbirctA$="06"
  end if
  if categ$="99200" then 
    trbirct$="92000"
'    trbirctA$="06"
  end if
  if categ$="99300" then 
    trbirct$="93000"
'    trbirctA$="06"
  end if
  if categ$="99400" then 
    trbirct$="94000"
'    trbirctA$="06"
  end if
  if categ$="99600" then 
    trbirct$="96000"
'    trbirctA$="06"
  end if
  if categ$="99700" then 
    trbirct$="97000"
'    trbirctA$="06"
  end if


  fx=FicLinGrv(1,"               <irct tbl="+chr$(34)+"RU_IRCT"+chr$(34)+">"+TrbIrct$+"</irct>")
  fx=FicLinGrv(1,"               <aplic_irct tbl="+chr$(34)+"RU_APLICIRCT"+chr$(34)+">"+trbirctA$+"</aplic_irct>")

  fx=FicLinGrv(1,"               <cat_prof tbl="+chr$(34)+"RU_CATPROF"+chr$(34)+">"+categ$+"</cat_prof>")
  fx=FicLinGrv(1,"               <nivel_qual tbl="+chr$(34)+"RU_NVLQLF"+chr$(34)+">"+nivqual$+"</nivel_qual>")
  fx=FicLinGrv(1,"               <rdt tbl="+chr$(34)+"RU_RG_DU_TRB"+chr$(34)+">"+RegDurTrb$+"</rdt>")
  fx=FicLinGrv(1,"               <pnt>"+Pnt$+"</pnt>")
  
  if SitProf$="3" then
    fx=FicLinGrv(1,"               <dur_temp_trab tbl="+chr$(34)+"RU_DU_TMP_TRB"+chr$(34)+">"+TempoTrabDur$+"</dur_temp_trab>")
    fx=FicLinGrv(1,"               <org_temp_trab tbl="+chr$(34)+"RU_ORG_TMP_TRB"+chr$(34)+">"+TempoTrabOrg$+"</org_temp_trab>")
  end if


  fx=FicLinGrv(1,"               <rem_devida_Out>"+vbaseN$+"</rem_devida_Out>")
  fx=FicLinGrv(1,"               <rem_paga_Out>"+vbaseP$+"</rem_paga_Out>")  
  

  if lstFaltas=1 then
  fx=FicLinGrv(1,"               <mot_rem_inf_Out>")
    FltMax=GpeRelUniFx$("FALTAS","CNT",trb$)
    for FltIdx=1 to FltMax
      Mot$=GpeRelUniFx$("FALTAS","FLT_COD",FltIdx)
      fx=FicLinGrv(1,"                 <motivo tbl="+chr$(34)+"RU_MOT_H_NREM"+chr$(34)+">"+mot$+"</motivo>")
    next
    fx=FicLinGrv(1,"               </mot_rem_inf_Out>")
  end if

  fx=FicLinGrv(1,"               <horas_remun_Out>"+hrn$+"</horas_remun_Out>")
  fx=FicLinGrv(1,"               <sub_ref_Out>"+alim$+"</sub_ref_Out>")

  if turno$<>"" then
    fx=FicLinGrv(1,"               <sub_turn_Out>"+turno$+"</sub_turn_Out>")
  end if
  if oPremSReg$<>"" then
    fx=FicLinGrv(1,"               <out_sub_Out>"+OpremSreg$+"</out_sub_Out>")
  end if
  fx=FicLinGrv(1,"               <prest_ir_Out>"+pi$+"</prest_ir_Out>")
  if hxTotRem$<>"" then
    fx=FicLinGrv(1,"               <r_supl_Out>"+hxTotRem$+"</r_supl_Out>")
    fx=FicLinGrv(1,"               <horas_supl_Out>"+hxTot$+"</horas_supl_Out>")
    fx=FicLinGrv(1,"               <t_horas_1art227>"+hx1$+"</t_horas_1art227>")
    fx=FicLinGrv(1,"               <t_horas_2art227>"+hx2$+"</t_horas_2art227>")
  end if
  fx=FicLinGrv(1,"             </trabalhador>")
  next

  fx=FicLinGrv(1,"         </trabalhadores>")
end if

  Fx=FicLinGrv(1,"       </estab>")
next

fx=FicLinGrv(1,"     </estabs>")


fx=FicLinGrv(1,"   </anexo_qp>")
call Linha
end sub





'-----------------------------------------------------------------------------------
sub anexo_zero
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"   <anexo_zero xmlns="+chr$(34)+"http://www.gep.msss.gov.pt/sguri/ru/anexo_zero"+chr$(34)+" XML_DATA="+chr$(34)+"1.1.0"+chr$(34)+" ano="+chr$(34)+RelAno$+chr$(34)+" entidade="+chr$(34)+EmpRuId$+chr$(34)+">")

fx=FicLinGrv(1,"     <nome_entidade>"+EmpNome$+"</nome_entidade>")
fx=FicLinGrv(1,"     <cae_31Dez tbl="+chr$(34)+"RU_CAE_5DIG"+chr$(34)+">"+EmpCae$+"</cae_31Dez>")

fx=FicLinGrv(1,"     <pessoas_servico_31Dez>"+EmpNumP$+"</pessoas_servico_31Dez>")
fx=FicLinGrv(1,"     <pessoas_servico_medio>"+EmpNumP$+"</pessoas_servico_medio>")
fx=FicLinGrv(1,"     <trab_conta_outrem_31Dez>"+EmpNumP$+"</trab_conta_outrem_31Dez>")
fx=FicLinGrv(1,"     <trab_conta_outrem_medio>"+EmpNumP$+"</trab_conta_outrem_medio>")
fx=FicLinGrv(1,"     <associacoes inscrita="+chr$(34)+chr$(34)+"/>")
fx=FicLinGrv(1,"     <trab_suplementar horas_realizadas="+chr$(34)+chr$(34)+"/>")
fx=FicLinGrv(1,"     <capital_social>"+EmpCapV$+"</capital_social>")
fx=FicLinGrv(1,"     <cap_social_priv_nac>"+EmpCapP1$+"</cap_social_priv_nac>")
fx=FicLinGrv(1,"     <cap_social_estrang>"+EmpCapP2$+"</cap_social_estrang>")
fx=FicLinGrv(1,"     <cap_social_pub_nac>"+EmpCapP3$+"</cap_social_pub_nac>")

fx=FicLinGrv(1,"     <vol_negocios ano="+chr$(34)+RelAno$+chr$(34)+">"+EmpVnd$+"</vol_negocios>")
fx=FicLinGrv(1,"   </anexo_zero>")
call Linha
end sub



'-----------------------------------------------------------------------------------
sub anexos_fim
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1," </anexos>")
call Linha
end sub


'-----------------------------------------------------------------------------------
sub relatorio_fim
'-----------------------------------------------------------------------------------
fx=FicLinGrv(1,"  </body>")
fx=FicLinGrv(1,"</relatorio_unico>")
end sub


'===================================================================================
'-----------------------------------------------------------------------------------
sub ValoresTrb
'-----------------------------------------------------------------------------------

fx=GpeAcmMovTrb(trb$,-1)   'acumular movimentos trabalhador

VbaseN$     = NumXml$(GpeAcmLst("V","RU","VB"),2)
VbaseP$     = NumXml$(GpeAcmLst("V","RU","VBP"),2)

Pi$         = NumXml$(GpeAcmLst("V","RU","PI"),2)

if pi$="" then
  pi$="0.00"
end if

Alim$       = NumXml$(GpeAcmLst("V","RU","ALIM"),2)
OPremSreg$  = NumXml$(GpeAcmLst("V","RU","OPREM")+ GpeAcmLst("V","RU","SREG"),2)


Turno$      = NumXml$(GpeAcmLst("H","RU","TURNO"),2)
Hx1$        = NumXml$( GpeRuHorasAjt("HX1",GpeAcmLst("H","RU","HX1")) )
Hx2$        = NumXml$( GpeRuHorasAjt("HX2",GpeAcmLst("H","RU","HX2")) )

'fx=msgboxinf(hx1$,hx2$)

Hx1Vl$      = GpeRuHorasAjt("HX1",GpeAcmLst("H","RU","HX1")) 
Hx2Vl$      = GpeRuHorasAjt("HX2",GpeAcmLst("H","RU","HX2")) 


if trim$(hx1$)="" then 
  hx1$="0"
end if

if trim$(hx2$)="" then 
  hx2$="0"
end if



HxTot$      = NumXml$( GpeRuHorasAjt("HX1",GpeAcmLst("H","RU","HX1"))+GpeRuHorasAjt("HX2",GpeAcmLst("H","RU","HX2")) )
HxTotVl$    = GpeRuHorasAjt("HX1",GpeAcmLst("H","RU","HX1"))+GpeRuHorasAjt("HX2",GpeAcmLst("H","RU","HX2")) 
HxTotRem$   = NumXml$(GpeAcmLst("V","RU","HX1")+GpeAcmLst("V","RU","HX2"),2)

Hrn$        = NumXml$(GpeAcmLst("H","RU","HN"))

if vBasep$="" then
'  vBasep$="0.00"
  vBasep$="0,00"
  Hrn$="0"
end if


'fx=msgbox(vbasep$,trb$)

Pnt$        = NumSpi$(Gpe_Mst_horas,3,1)


lstFaltas=0
if vbaseN$<>vbaseP$ then
  lstFaltas=1
end if


Nome$      = Gpe_Mst_Nome$
DtNa$      = FrmDt$("A",Gpe_Mst_DtNasc)+"-"+FrmDt$("M",Gpe_Mst_DtNasc)
DtAd$      = FrmDt$("A",Gpe_Mst_DtAdmi)+"-"+FrmDt$("M",Gpe_Mst_DtAdmi)
DtPr$      = FrmDt$("A",Gpe_Mst_DtProm)+"-"+FrmDt$("M",Gpe_Mst_DtProm)
DtPrAm$    = FrmDt$("AM",Gpe_Mst_DtProm)


dtEntVl=Gpe_Mst_DtAdmi

if Gpe_Mst_DtAdmi=0 then 
  DtAd$=""
end if

if Gpe_Mst_DtProm=0 then 
  DtPr$=""
end if


if DtPrAm$>RelAxaAm$ then          'data promocao superior data anexo
  DtPr$=""
end if

Categ$     = NumSpi$(GpeTabCon$("CAT",Gpe_Mst_Categ,"IRCT"),5)
Prof$      = NumSpi$(GpeTabCon$("PROF",Gpe_Mst_Prof$,"CNP"),5)
Hab$       = NumSpi$(Gpe_Mst_Habil$,3)
Pais$      = Gpe_Ru_Pais$

Dl2098$    = NumSpi$(Gpe_Mst_2098$,1)
SitProf$   = NumSpi$(Gpe_Mst_SitProf$,1)
TipCtr$    = Gpe_Mst_TipContr$
Sex$       = NumSpi$(GpeFrmCodSit$("SEXO_N",Gpe_Mst_Sexo$),1)
CrssNb$    = NumSpi$(Gpe_Mst_CrssNb$,11)

' ======  NOVOS

regRfm$    =Gpe_Ru_RegRfm
regRfmCod$ =Gpe_Ru_RegRfmCod


dtSaiVl     = Gpe_Ru_DtSaida
DtSai$      = FrmDt$("A",Gpe_Ru_DtSaida)+"-"+FrmDt$("M",Gpe_Ru_DtSaida)
SaiMotivo$  = Gpe_Ru_SaidaMot

RegDurTrb$    = Gpe_Mst_DurTrb$
TempoTrabOrg$ = Gpe_Ru_TempoTrabOrg
TempoTrabDur$ = Gpe_Ru_TempoTrabDur

if val(TempoTrabDur$)>=20 then
  TempoTrabOrg$ = ""
end if

nivQual$      = NumSpi$(Gpe_Mst_NivQual$,1)


AdmiMotivo$ = NumSpi$(Gpe_Ru_AdmiMot,2)



'if SitProf$<>"3" then       'nao e trabalhador conta outrem
'  tipCtr$="0"               'tipo contrato
'end if




if val(RelAno$)<>val(FrmDt$("A",dtSaiVl)) then
   dtSaiVl=0
end if


if val(RelAno$)<>val(FrmDt$("A",dtEntVl)) then
   dtEntVl=0
end if



'no caso de empregadores, quando vbasep$=vbasen$ , vbasen$ tem de ser ""

if SitProf$="1" then       'empregador
  if vbasen$=vbasep$ then
    vbaseN$=""
  end if
end if

trbIrctA$= GpeTabCon$("CAT",Gpe_Mst_Categ,"APLIRCT")


end sub



'-----------------------------------------------------------------------------------
Sub ControleRem  'controlo remuneracao base
'-----------------------------------------------------------------------------------
VbaseN     = Gpe_Mst_vbase
VbaseP     = GpeAcmLst("V","RU","VB")
Pi         = GpeAcmLst("V","RU","PI")
Hx1        = GpeAcmLst("H","RU","HX1")
Hx2        = GpeAcmLst("H","RU","HX2")
Hrn         = GpeAcmLst("H","RU","HN")
HrMst       = GpeHrCnv("SM",Gpe_Mst_Horas)
Alim       = GpeAcmLst("V","RU","ALIM")
Turno      = GpeAcmLst("V","RU","TURNO")
'Prem       = GpeAcmLst("V","RU","OPREM")
'OSReg      = GpeAcmLst("V","RU","SREG")





'if HnN=MstHr then      'valor normal
'  ctl$="0"
'end if

'if MstHr<>HnN then     'teve faltas
'  ctl$="1"
'end if

'if TotRmBase=0 then            'nao tem recebimento
'   if TotHr=0 then             'nao tem horas
'      ctl$="2"
'   end if
'end if

'if VbaseN=0 then               'nao tem recebimento
'   if HnN=0 then               'nao tem horas
'     if TotRmBase>0 then
'        ctl$="3"               'campo controlo
'     end if
'   end if
'end if

end sub



'===================================================================================
' Listagem de conferencia adicional ( funciona sobre o relatorio unico )
'===================================================================================
SUB FxIni 'funcao de inicializacao
Call SigLstIni
'margem=5                                        'forcar margem
End sub


Sub EstCabIde
PrWIN COR_T,  CorTitLst                    'cor de titulo
PrWIN TX_N,  0,-5,"Estabelecimento : "
PrWIN COR_T,CorLin                              'cor de linhas
PrWIN TX_N,  28,-5, GpeCodFrm$("EST",memTxt$(98))+" - "+GpeTabCon$("EST",memTxt$(98),"NOME")
PrWIN COR_T,  CorTitLst                    'cor de titulo
end sub


Sub RxHoras_Cab
SigCabNorOpcTit=2               'alterar origem do titulo

Titulo$="Mapa horas de Trabalho ( "+Memtxt$(11)+" )"

Call SigLstCab

esp=20                                      'espaco para valor
Lin1=0
Lin2=4


'posicao das colunas
Col1=1                              'numero
Col2=Col1+13         'nome
Col3=Col2+98                                    'valor1
Col4=Col3+esp                               'valor 2
Col5=col4+esp                               'valor 3
Col6=col5+esp                               'coluna maxima
Col7=col6+esp                               'coluna maxima
colmax=margemD


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

call EstCabIde

'listar titulos
ajt=0
PrWIN TX_CTR,  Col1,Lin2,Col3,Lin2,"Trabalhador"
PrWIN TX_CTR,  Col3+20,Lin1,Col6,Lin1,"Relação de horas"
PrWIN TX_CTR,  Col3+ajt,Lin2,Col4,Lin2,"trabalho"
PrWIN TX_CTR,  Col4+ajt,Lin2,Col5,Lin2,"faltas"
PrWIN TX_CTR,  Col5+ajt,Lin2,Col6,Lin2,"ferias"
PrWIN TX_CTR,  Col6+ajt,Lin2,Col7,Lin2,"total"

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


PrWIN FON  ,   8,   1                         'activar fonte
PrWIN COR_T,CorLin                              'cor de linhas
InicioEscrita=36
end Sub


'-----------------------------------------------------------------------------------
Sub RxHoras_Lin         'linha de valores
'-----------------------------------------------------------------------------------

Valor1$ = FrmVal$(memnum(21),21,5.2)
Valor2$ = FrmVal$(memnum(22),22,5.2)
Valor3$ = FrmVal$(memnum(23),23,5.2)
Valor4$ = FrmVal$(memnum(24),24,5.2)


PrWIN AJT_B,  Margem, InicioEscrita+Doc_CntLin*4        'posicao base
PrWin Tx_N ,Col1,0,    Gpe_Mst_Trb$
PrWin Tx_DMX ,Col2,0,Col3-Col2,  Gpe_Mst_Nome$
PrWin Tx_NP,Col3,0,"N",valor1$
PrWin Tx_NP,Col4,0,"N",Valor2$
PrWin Tx_NP,Col5,0,"N",Valor3$
PrWin Tx_NP,Col6,0,"N",Valor4$
end Sub


'-----------------------------------------------------------------------------------
Sub RxHoras_FimAjt
'-----------------------------------------------------------------------------------
if memtxt$(99)="FIMFRC" then
call RxHoras_Fim
else
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,263                   'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,265                   'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais
PrWIN TX_N, Col3-90,  0,"( Listagem a continuar )"
PrWin FP
end if
End sub


'-----------------------------------------------------------------------------------
Sub RxHoras_Fim
'-----------------------------------------------------------------------------------
fimdoc=259

ln1=0
ln2=4
ln3=8

cf1=col3-50
cf2=col3-13
cf3=col4-11
cf4=col5-9
cf5=col6-7

tg0$=FrmVal$(memnum(50),21,3)
tg1$=FrmVal$(memnum(51),21,8.2)
tg2$=FrmVal$(memnum(52),21,8.2)
tg3$=FrmVal$(memnum(53),21,8.2)
tg4$=FrmVal$(memnum(54),21,8.2)

th0$=FrmVal$(memnum(60),21,3)
th1$=FrmVal$(memnum(61),21,8.2)
th2$=FrmVal$(memnum(62),21,8.2)
th3$=FrmVal$(memnum(63),21,8.2)
th4$=FrmVal$(memnum(64),21,8.2)

tm0$=FrmVal$(memnum(70),21,3)
tm1$=FrmVal$(memnum(71),21,8.2)
tm2$=FrmVal$(memnum(72),21,8.2)
tm3$=FrmVal$(memnum(73),21,8.2)
tm4$=FrmVal$(memnum(74),21,8.2)


aj=0
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,Fimdoc                       'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,Fimdoc+2                     'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais

PrWIN TX_N, cf1,  ln1,"Total Homens  ("+th0$+" registos ) "
PrWIN TX_N, cf1,  ln2,"Total Mulheres ("+tm0$+" registos ) "
PrWIN TX_N, cf1,  ln3,"Total Geral       ("+tg0$+" registos) "

PrWin Tx_NP,cf2,ln1,"N",th1$
PrWin Tx_NP,cf3,ln1,"N",th2$
PrWin Tx_NP,cf4,ln1,"N",th3$
PrWin Tx_NP,cf5,ln1,"N",th4$

PrWin Tx_NP,cf2,ln2,"N",tm1$
PrWin Tx_NP,cf3,ln2,"N",tm2$
PrWin Tx_NP,cf4,ln2,"N",tm3$
PrWin Tx_NP,cf5,ln2,"N",tm4$

PrWin Tx_NP,cf2,ln3,"N",tg1$
PrWin Tx_NP,cf3,ln3,"N",tg2$
PrWin Tx_NP,cf4,ln3,"N",tg3$
PrWin Tx_NP,cf5,ln3,"N",tg4$

x=TotLpz(0)                       'azerar totalizador 
call SigLstRod
PrWin FP
End sub


'---------------------------------------------------------------------------------
Sub Tx_RxHoras_Cab
end sub

Sub Tx_RxHoras_CabIni
init=0
end sub


'---------------------------------------------------------------------------------
sub Tx_RxHoras_Lin
if init=0 then
  cs$=GpeCsvSep$("RU_HORAS")
  print "codigo"+cs$+"nome"+cs$+"Sexo"+cs$+"estab_cod"+cs$+"estab_nome"+cs$+"trabalho"+cs$+"faltas"+cs$+"ferias"+cs$+"total"
  init=1
end if

cs$=GpeCsvSep$("RU_HORAS")
print Gpe_Mst_Trb$;
print cs$;
print Gpe_Mst_Nome$;
print cs$;
Print Gpe_Mst_Sexo$;
print cs$;
print GpeCodFrm$("EST",Gpe_Mst_Est$);
print cs$;
print GpeTabCon$("EST",Gpe_Mst_Est$,"NOME");
print cs$;
print FrmVal$(memnum(21),22,-5.2);
print cs$;
print FrmVal$(memnum(22),22,-5.2);
print cs$;
print FrmVal$(memnum(23),23,-5.2);
print cs$;
print FrmVal$(memnum(24),24,-5.2);
print "  "
end sub


'---------------------------------------------------------------------------------
sub Tx_RxHoras_Fim
'print "fim de listagem"
end sub


'«««««««««««««««
Sub RxMrr_Cab
SigCabNorOpcTit=2               'alterar origem do titulo

Titulo$="Relatório único : Anexo 0 - Quadro 5  ("+Memtxt$(11)+")"

Call SigLstCab

esp=20                                      'espaco para valor
Lin1=0
Lin2=4


'posicao das colunas
Col1=1              
Col2=Col1+100   
Col3=Col2+20     
colmax=margemD


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

'listar titulos
ajt=6
PrWIN TX_N,  Col1+2 ,Lin1,"Motivo da redução"
PrWIN TX_N,  Col1+10 ,Lin2,"( códigos de movimento )"

PrWIN TX_N,  Col2+ajt,Lin1,"Numero de horas
PrWIN TX_N,  Col2+ajt,Lin2,"H"
PrWIN TX_N,  Col3+ajt,Lin2,"M"

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


PrWIN FON  ,   8,   1                         'activar fonte
PrWIN COR_T,CorLin                              'cor de linhas
InicioEscrita=36
end Sub


'-----------------------------------------------------------------------------------
Sub RxMrr_Lin         'linha de valores
'-----------------------------------------------------------------------------------

pbas=0
max=GpeRelUniFx("MRR","CNT")
for cnt=1 to max
  cod$=GpeRelUniFx$("MRR","INF",cnt)
  Valor1$ = FrmVal$(GpeRelUniFx("MRR","0TM",cnt),21,5.2)
  Valor2$ = FrmVal$(GpeRelUniFx("MRR","0TF",cnt),22,5.2)
  cmv$= GpeRelUniFx("MRR","0CMV",cnt)
  txcmv$=""
  if cmv$<>"0" then
    txCmv$ = "("+GpeRelUniFx$("MRR","0CMV",cnt)+")"
  end if


  PrWIN AJT_B,  Margem, InicioEscrita+Doc_CntLin*4+pbas        'posicao base

  PrWin Tx_N ,Col1 ,0 ,cod$
  PrWin Tx_N ,Col1+10 ,4 ,txCmv$

  PrWin Tx_NP,Col2,0,"N",valor1$
  PrWin Tx_NP,Col3,0,"N",Valor2$
  pbas=pbas+8

next

end Sub


'-----------------------------------------------------------------------------------
Sub RxMrr_FimAjt
'-----------------------------------------------------------------------------------
if memtxt$(99)="FIMFRC" then
call RxMrr_Fim
else
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,263                   'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,265                   'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais
PrWIN TX_N, Col3-90,  0,"( Listagem a continuar )"
PrWin FP
end if
End sub


'-----------------------------------------------------------------------------------
Sub RxMrr_Fim
'-----------------------------------------------------------------------------------
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,263                   'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,265                   'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais
PrWIN FON,      10,  1                          'activar fonte
PrWIN TX_N, Col3-90,  0,"Total Geral     ..."

Valor1$ = FrmVal$(GpeRelUniFx("MRR","0TGM",cnt),21,5.2)
Valor2$ = FrmVal$(GpeRelUniFx("MRR","0TGF",cnt),22,5.2)

PrWin Tx_NP,Col2,0,"N",valor1$
PrWin Tx_NP,Col3,0,"N",Valor2$

x=TotLpz(0)                       'azerar totalizador 
call SigLstRod
PrWin FP
End sub





'««««««««««««««

'-----------------------------------------------------------------------------------
Sub HorasX_Cab
'-----------------------------------------------------------------------------------
SigCabNorOpcTit=2               'alterar origem do titulo
Titulo$="Mapa de Trabalho Suplementar"
Call SigLstCab

esp=25                                      'espaco para valor
Lin1=0
Lin2=5


'posicao das colunas
Col1=10                              'numero
Col2=30         'nome
Col3=130                                    'valor1
Col4=Col3+esp                               'valor 2
Col5=col4+esp                               'coluna maxima

call SigLstCab

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

'listar titulos
PrWIN TX_CTR,  Col1,Lin2,Col2,Lin2,"Código"
PrWIN TX_CTR,  Col2,Lin2,Col3,Lin2,"Nome
PrWIN TX_CTR,  Col3,Lin1,Col5,Lin1,"Horas efectuadas ao abrigo"
PrWIN TX_CTR,  Col3,Lin2,Col4,Lin2,"N. 1 Art.4"
PrWIN TX_CTR,  Col4,Lin2,Col5,Lin2,"N. 2 Art.4"

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

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

VTotPag1   = 0
VTotPag2   = 0
VTotGer1   = 0
VTotGer2   = 0
InicioListagem=37
end Sub


'-----------------------------------------------------------------------------------
Sub HorasX_Lin             'linha de valores
'-----------------------------------------------------------------------------------
PrWIN AJT_B,  Margem, InicioListagem+Doc_CntLin*4   'posicao base

if MemNum(25)+MemNum(26)>0 then 
  Valor1$ = FrmVal$(memnum(25),21,5.2)
  Valor2$ = FrmVal$(memnum(26),22,5.2)

  PrWin Tx_N ,Col1,0,    Gpe_Mst_Trb$
  PrWin Tx_Dmx ,Col2,0,Col3-Col2,    Gpe_Mst_Nome$

  PrWin Tx_NP,Col3,0,"N",valor1$
  PrWin Tx_NP,Col4,0,"N",valor2$
else                      'nao listou, anular linha no contador linhas
  cnt=doc_CntLin                       
  cnt=cnt-1
  Fx=CntLin("FRC",cnt)        'acertar contador
end if
end Sub


'-----------------------------------------------------------------------------------
Sub HorasX_FimAjt
'-----------------------------------------------------------------------------------
Call TotaisPrp
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,263                   'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,265                   'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais
PrWIN FON,      10,  1                          'activar fonte
PrWIN TX_N, Col3-90,  0,"( Listagem a continuar )     Total de Página ..."
PrWin FP
End sub


'-----------------------------------------------------------------------------------
Sub HorasX_Fim
'-----------------------------------------------------------------------------------
Valor1$ = FrmVal$(memnum(55),21,5.2)
Valor2$ = FrmVal$(memnum(56),22,5.2)

PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,263                   'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,265                   'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais
PrWIN FON,      10,  1                          'activar fonte
PrWIN TX_N, Col3-90,  0,"Total Geral     ..."

PrWin Tx_NP,Col3,0,"N",valor1$
PrWin Tx_NP,Col4,0,"N",valor2$
call SigLstRod
PrWin FP
End sub




'===================================================================================
Sub RxAct_Cab    'acidentes trabalho
'===================================================================================
SigCabNorOpcTit=2               'alterar origem do titulo

Titulo$="Acidentes de trabalho ( "+Memtxt$(11)+" )"

Call SigLstCab

esp=20                                      'espaco para valor
Lin1=0
Lin2=4


'posicao das colunas
Col1=1                              'numero
Col2=Col1+13         'nome
Col3=Col2+150                                    'valor1
Col4=Col3+esp                               'valor 2
colmax=col4+esp


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

'listar titulos
ajt=0
PrWIN TX_CTR,  Col1,Lin2,Col3,Lin2,"Trabalhador"
PrWIN TX_CTR,  Col3-30,Lin1,ColMax,Lin1,"Relação de dias"
PrWIN TX_CTR,  Col3,Lin2,Col4,Lin2,"total"

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


PrWIN FON  ,   9,   1                         'activar fonte
PrWIN COR_T,CorLin                              'cor de linhas
InicioEscrita=36
end Sub


'-----------------------------------------------------------------------------------
Sub RxAct_Lin         'linha de valores
'-----------------------------------------------------------------------------------

Valor1$ = FrmVal$(memnum(27),21,5.2)

PrWIN AJT_B,  Margem, InicioEscrita+Doc_CntLin*4        'posicao base
PrWin Tx_N ,Col1,0,    Gpe_Mst_Trb$
PrWin Tx_DMX ,Col2,0,Col3-Col2,  Gpe_Mst_Nome$
PrWin Tx_NP,Col3,0,"N",valor1$
end Sub


'-----------------------------------------------------------------------------------
Sub RxAct_FimAjt
'-----------------------------------------------------------------------------------
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,263                   'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,265                   'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais
PrWIN TX_N, Col3-90,  0,"( Listagem a continuar )"
PrWin FP
End sub


'-----------------------------------------------------------------------------------
Sub RxAct_Fim
'-----------------------------------------------------------------------------------
fimdoc=259

ln1=0
ln2=4
ln3=8

cf1=col3-50
cf2=col3-13
cf3=col3

tg0$=FrmVal$(memnum(50),21,3)
tg1$=FrmVal$(memnum(57),21,8.2)

th0$=FrmVal$(memnum(60),21,3)
th1$=FrmVal$(memnum(67),21,8.2)

tm0$=FrmVal$(memnum(70),21,3)
tm1$=FrmVal$(memnum(77),21,8.2)

aj=0
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,Fimdoc                       'posicao base
PrWIN GR_LI,     0,  0, 188, 0             'linha
PrWIN AJT_B,Margem,Fimdoc+2                     'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais

PrWIN TX_N, cf1,  ln1,"Total Homens  ("+th0$+" registos ) "
PrWIN TX_N, cf1,  ln2,"Total Mulheres ("+tm0$+" registos ) "
PrWIN TX_N, cf1,  ln3,"Total Geral       ("+tg0$+" registos) "

PrWin Tx_NP,cf2,ln1,"N",th1$
PrWin Tx_NP,cf2,ln2,"N",tm1$
PrWin Tx_NP,cf2,ln3,"N",tg1$

x=TotLpz(0)                       'azerar totalizador 
call SigLstRod
PrWin FP
End sub


'===================================================================================
Sub RxEntSai_CabIni
'===================================================================================
fx=PrtOri("L")
FimDoc=176
LinPer=FimDoc+18
end sub


Sub RxEntSai_Cab    'entrada e saida de trablhadores
SigCabNorOpcTit=2               'alterar origem do titulo

Titulo$="Entradas e saida de trabalhadores ( "+Memtxt$(11)+" )"

Call SigLstCab

esp=19                                      'espaco para valor
Lin1=0
Lin2=4


'posicao das colunas
Col1=1                               'numero
Col2=Col1+10                             'nome
Col3=Col2+65                             'situação
Col4=Col3+24                             'data
Col5=Col4+esp                             'demissao
Col6=Col5+esp                             'habilitacoes
Col7=Col6+26                             'duracao trabalho
Col8=Col7+25                             'sit emprego

colmax=270

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

call EstCabIde                            'identificar estabelecimento

'listar titulos
ajt=0
PrWIN TX_CTR,  Col1,Lin2,Col3,Lin2,"Trabalhador"

PrWIN TX_N,  Col3,Lin2,"Situação"

PrWIN TX_N,  Col4,Lin1,"Data"
PrWIN TX_N,  Col4,Lin2,"MM/DD"

PrWIN TX_N,  Col5+3,Lin1,"Data"
PrWIN TX_N,  Col5,Lin2,"nascimento"

PrWIN TX_N,  Col6,Lin1,"Habilitações"
PrWIN TX_N,  Col6+3,Lin2,"(código)"

PrWIN TX_N,  Col7+3,Lin1,"Duração"
PrWIN TX_N,  Col7+3,Lin2,"Trabalho"

'PrWIN TX_N,  Col8+3,Lin1,"Situação"
'PrWIN TX_N,  Col8+3,Lin2,"Emprego"




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


PrWIN FON  ,   8,   1                          'activar fonte
PrWIN COR_T,CorLin                              'cor de linhas
InicioEscrita=36
end Sub


'-----------------------------------------------------------------------------------
Sub RxEntSai_Lin         'linha de valores
'-----------------------------------------------------------------------------------
PrWIN AJT_B,  Margem, InicioEscrita+Doc_CntLin*4        'posicao base

PrWin Tx_N   ,Col1,0,    Gpe_Mst_Trb$
PrWin Tx_DMX ,Col2,0,Col3-Col2,  Gpe_Mst_Nome$

dta=FrmDt$("A4",Gpe_Mst_DtAdmi)
dts=FrmDt$("A4",Gpe_Ru_DtSaida)
dtl=gpeoplcon("ANO")

escreve=1
if dta=dtl then
  txa$="Entrou"
  if Gpe_Mst_SitEmp =12 then
    txa$="Entrou ( Prazo )"
  end if
  txdt$=FrmDt$("M/D",Gpe_Mst_DtAdmi) '+FrmDt$("MES3",Gpe_Mst_DtAdmi)
end if

if dts=dtl then
  txa$="Saiu"
  txdt$=FrmDt$("M/D",Gpe_Ru_DtSaida) '+FrmDt$("MES3",Gpe_Ru_DtSaida)
end if

if dta=dts then
  txa$="Entrou>Saiu"
  txdt$=FrmDt$("M/D",Gpe_Mst_DtAdmi)+">"+FrmDt$("M/D",Gpe_Ru_DtSaida)
  escreve=2
end if

if escreve=1 then
  PrWin Tx_N   ,Col3,0,txa$
  PrWin Tx_NP  ,Col4,0,"N",txDt$
else
  PrWin FON, 7
  PrWin Tx_N   ,Col3,0,txa$
  PrWin Tx_NP  ,Col4-3,0,"N",txDt$
  PrWin FON, 8
end if

PrWin Tx_N   ,Col5,0, FrmDt$("",Gpe_Mst_DtNasc)

hab$=GpeTabCon$("HAB",Gpe_Mst_Habil$,"ABRV")
if len(hab$)>8 then
  PrWin FON, 7
  PrWin Tx_N   ,Col6+4,0, hab$
  PrWin FON, 8
Else
  PrWin Tx_N   ,Col6+4,0, hab$
end if


if Gpe_Mst_DurTrb$ ="1" then
  txd$="Tempo completo"
else
  txd$="Tempo parcial"
end if
PrWin Tx_N   ,Col7,0, txd$




end Sub


'-----------------------------------------------------------------------------------
Sub RxEntSai_FimAjt
'-----------------------------------------------------------------------------------
if memtxt$(99)="FIMFRC" then
  call RxEntSai_Fim
else
  PrWIN COR_T,CorTraco                            'cor de linhas
  PrWIN AJT_B,Margem,FimDoc                       'posicao base
  PrWIN GR_LI,     0,  0, ColMax, 0                  'linha
  PrWIN COR_T,     CorTotGer                      'cor para totais
  PrWIN TX_N, Col6-90,  2,"( Listagem a continuar )"
  PrWin FP
end if
End sub


'-----------------------------------------------------------------------------------
Sub RxEntSai_Fim
'-----------------------------------------------------------------------------------
ln1=0
ln2=4
ln3=8

cf1=200
cf2=cf1+40

tg0$=FrmVal$(memnum(50),21,3)
tg1$=FrmVal$(memnum(57),21,8.2)

th0$=FrmVal$(memnum(60),21,3)
th1$=FrmVal$(memnum(67),21,8.2)

tm0$=FrmVal$(memnum(70),21,3)
tm1$=FrmVal$(memnum(77),21,8.2)

aj=0
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,Fimdoc                       'posicao base
PrWIN GR_LI,     0,  0, ColMax, 0             'linha
PrWIN AJT_B,Margem,Fimdoc+2                     'posicao base
PrWIN COR_T,     CorTotGer                      'cor para totais

PrWIN TX_N, cf1,  ln1,"Total Homens  ("+th0$+" registos ) "
PrWIN TX_N, cf1,  ln2,"Total Mulheres ("+tm0$+" registos ) "
PrWIN TX_N, cf1,  ln3,"Total Geral       ("+tg0$+" registos) "

x=TotLpz(0)                       'azerar totalizador 
call SigLstRod
PrWin FP
End sub

##


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





