'Nome       : CGA.Std
'Tipo       : LST
'Data       : 2005/07/14
'Versao     : 1.1
'Descricao  : Caixa geral aposentacoes

'------------------------------------------------------------------------------
'#VER - Historia de modificacoes
'------------------------------------------------------------------------------
'- Versao : 1.0  2003/06/11 ---------------------------------------------------
'Versao base


'- Versao : 1.1  2005/??/?? ---------------------------------------------------
'Permitir relação unica


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


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


'-----------------------------------------------------------------------------
' Configuracao do documento
'-----------------------------------------------------------------------------
#DOC
Tipo                       [DocTip]=CGA
Nome                       [DocNom]=RDN,Regime normal

'formato
Saida/Impressora           [DocPrt]=SPI
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Directorio ficheiros       [DocEsp]=Spidir=Spi\CGA
tipo suporte informatico   [DocEsp]=SpiTip=RD
Tipo mov. automatico       [DocEsp]=TipMva=11
nome para ficheiro         [DocEsp]=SpiFic=[DT4][MES].Cga


'funcoes de listagem
Listar cabecalho            [FxCAB]=SpiRelCab
Listar linhas               [FxLIN]=SpiRelLin
Listar fim                  [FxFIM]=SpiRelFim
##


#DOC
Tipo                       [DocTip]=CGA
Nome                       [DocNom]=RDNcnf,Regime normal - listagem conferencia

'formato
Saida/Impressora           [DocPrt]=SPI
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Directorio ficheiros       [DocEsp]=Spidir=Spi\CGA
tipo suporte informatico   [DocEsp]=SpiTip=RD
Tipo mov. automatico       [DocEsp]=TipMva=11
nome para ficheiro         [DocEsp]=SpiFic=[DT4][MES].Cga
Nao Apresentar no menu     [DocEsp]=MnuInv=0


'funcoes de listagem
Listar cabecalho            [FxCAB]=SpiRelCabCnf
Listar linhas               [FxLIN]=SpiRelLinCnf
Listar fim                  [FxFIM]=SpiRelFimCnf
##


#DOC
Tipo                       [DocTip]=CGA
Nome                       [DocNom]=RDA,Regime acumulação

'formato
Saida/Impressora           [DocPrt]=SPI
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Directorio ficheiros       [DocEsp]=Spidir=Spi\CGA
tipo suporte informatico   [DocEsp]=SpiTip=RD
Tipo mov. automatico       [DocEsp]=TipMva=10
nome para ficheiro         [DocEsp]=SpiFic=[DT4][MES]_acm.Cga


'funcoes de listagem
Listar cabecalho            [FxCAB]=SpiRelCab
Listar linhas               [FxLIN]=SpiRelLin
Listar fim                  [FxFIM]=SpiRelFim
##


#DOC
Tipo                       [DocTip]=CGA
Nome                       [DocNom]=RDAcnf,Regime acumulacao - conferencia

'formato
Saida/Impressora           [DocPrt]=SPI
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Directorio ficheiros       [DocEsp]=Spidir=Spi\CGA
tipo suporte informatico   [DocEsp]=SpiTip=RD
Tipo mov. automatico       [DocEsp]=TipMva=10
nome para ficheiro         [DocEsp]=SpiFic=[DT4][MES]_acm.Cga
Nao Apresentar no menu     [DocEsp]=MnuInv=0


'funcoes de listagem
Listar cabecalho            [FxCAB]=SpiRelCabCnf
Listar linhas               [FxLIN]=SpiRelLinCnf
Listar fim                  [FxFIM]=SpiRelFimCnf
##



#DOC
Tipo                       [DocTip]=CGA_GUIA
Nome                       [DocNom]=PAG,Guia de pagamento

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=
Listar linhas               [FxLIN]=GuiaLin
Listar fim                  [FxFIM]=
##




#DOC
Tipo                       [DocTip]=CGA
Nome                       [DocNom]=RDN,Relação unica

'formato
Saida/Impressora           [DocPrt]=SPI
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Directorio ficheiros       [DocEsp]=Spidir=Spi\CGA
tipo suporte informatico   [DocEsp]=SpiTip=RD
Tipo mov. automatico       [DocEsp]=TipMva=10,11
nome para ficheiro         [DocEsp]=SpiFic=[DT4][MES]_completo.Cga


'funcoes de listagem
Listar cabecalho            [FxCAB]=SpiRelCab
Listar linhas               [FxLIN]=SpiRelLin
Listar fim                  [FxFIM]=SpiRelFim
##


#DOC
Tipo                       [DocTip]=CGA
Nome                       [DocNom]=RDNcnf,Relação unica - listagem conferencia

'formato
Saida/Impressora           [DocPrt]=SPI
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Directorio ficheiros       [DocEsp]=Spidir=Spi\CGA
tipo suporte informatico   [DocEsp]=SpiTip=RD
Tipo mov. automatico       [DocEsp]=TipMva=10,11
nome para ficheiro         [DocEsp]=SpiFic=[DT4][MES]_completo.Cga
Nao Apresentar no menu     [DocEsp]=MnuInv=0


'funcoes de listagem
Listar cabecalho            [FxCAB]=SpiRelCabCnf
Listar linhas               [FxLIN]=SpiRelLinCnf
Listar fim                  [FxFIM]=SpiRelFimCnf
##




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

'cabecalho
Folha        = FrmVal$(Doc_CntPag,21,3.0)
DatAno       = left$(FrmVal$(Sig_DtHoje,44,0),4)
DatDia       = right$(FrmVal$(Sig_DtHoje,44,0),2)
DatMes       = FrmVal$(Sig_DtHoje,46,0)

'empresa
EmpCont      = Emp_Inf_Contrib$
EmpNome      = Emp_Inf_Nome$
EmpMorada    = Emp_Inf_Morada$
EmpLocal     = Emp_Inf_Local$
EmpCPost     = Emp_Inf_CPost$
EmpDistrito  = Emp_Inf_Dist$
EmpConcelho  = Emp_Inf_Conc$
EmpFreguesia = Emp_Inf_Freg$
EmpTelef     = Emp_Inf_Telef$
EmpFax       = Emp_Inf_Fax$

EmpAssocPtr  = Emp_Inf_AssPtr$
EmpActiv     = Emp_Inf_Activ$
EmpNatJur    = Emp_Inf_NatJur$
EmpFormGes   = Emp_Inf_FormGes$
EpNumPes     = Emp_Inf_NumPes
EpACon       = FrmDt$("A4",Emp_Inf_DtConst)

EmpCapSoc    = FrmVal$(Emp_Inf_CapSoc,21,10.2)
EpCpScN      = FrmVal$(Emp_Inf_CapSocNac,21,3.1)
EpCpScE      = FrmVal$(Emp_Inf_CapSocEst,21,3.1)
EpCpScP      = FrmVal$(Emp_Inf_CapsocPub,21,3.1)
EmpVendas    = FrmMoe$("",12,Emp_Inf_VolVend)


CrssNb          = Gpe_Mst_CrssNb$


c1         = memtxt$(1)           
c2         = memtxt$(2)           
c3         = memtxt$(3)           
c4         = memtxt$(4)           
c5         = memtxt$(5)           
c6         = memtxt$(6)           
c7         = memtxt$(7)           
'c8         = memtxt$(8)
c8         = left$(memtxt$(8),4)+"/"+mid$(memtxt$(8),5,2)+"/"+mid$(memtxt$(8),7)


c9         = memtxt$(9)           
c10        = memtxt$(10)           
c11        = memtxt$(11)           
c12        = memtxt$(12)           
c13        = memtxt$(13)           
c14        = memtxt$(14)           
c15        = memtxt$(15)           
c16        = memtxt$(16)           


regime    = memtxt$(99)
ficherio  = memtxt$(98)


'Guia pagamento
TotPag    = GpeFrmMoe$("",10,MemNum(10))
SerCod    = numspi$(left$(Emp_Inf_obs$,6),6)
SerDescr  = TxTamAjt$(Emp_Inf_Nome$,60)

DataV1    = MemTxt$(21)
Valor1    = GpeFrmMoe$("",10,MemNum(21))
Valor2    = GpeFrmMoe$("",10,MemNum(22))
Valor3    = GpeFrmMoe$("",10,MemNum(23))

##

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


'===================================================================================
'  Suporte Informatico
'===================================================================================
Sub SpiIni'prepara suporte informatico
fic$=MemTxt$(11)                                   'ficheiro a usar
x=FicPrp(1, "O:160", fic$)                         'preparar ficheiro
x=FicAbr(1)                                        'abrir ficheiro
'fx=msgbox("ABR",fic$)
end sub


SUB SpiFim 'funcao de finalizacao
x=FicFec(1)                                        'fechar ficheiro
'fx=msgbox("FEC")
end sub



'===================================================================================
'  Relação descontos
'===================================================================================
'-----------------------------------------------------------------------------------
Sub SpiRelLinDef  'definicao de campos 
'-----------------------------------------------------------------------------------
fx=SpiRegIni("132")        'preparar registo

fx=SpiRegTpl("1,13","")
fx=SpiRegCmp( 6,"Numero do Serviço")
fx=SpiRegCmp( 6,"Data da Relação")
fx=SpiRegCmp( 1,"Tipo Registo")
fx=SpiRegCmp( 7,"Fixo")
fx=SpiRegCmp(60,"Nome Serviço")
fx=SpiRegCmp( 3,"Moeda")
fx=SpiRegCmp(77,"Reservado")


fx=SpiRegTpl("2,13","")
fx=SpiRegCmp( 6,"Numero do Serviço")
fx=SpiRegCmp( 6,"Data da Relação")
fx=SpiRegCmp( 1,"Tipo Registo")
fx=SpiRegCmp( 7,"Subscritor")
fx=SpiRegCmp(50,"Nome ")
fx=SpiRegCmp( 2,"Cod Situacao")
fx=SpiRegCmp( 1,"Cod Movimento")
fx=SpiRegCmp( 8,"Data Efeito")
fx=SpiRegCmp( 8,"Valor Remun",21,6.2)
fx=SpiRegCmp( 6,"Desconto",21,4.2)
fx=SpiRegCmp( 2,"Perdas Efectivas")
fx=SpiRegCmp( 4,"Horario parcial")
fx=SpiRegCmp( 2,"Diuturnidades")
fx=SpiRegCmp(25,"Categoria")
fx=SpiRegCmp( 3,"Nivel Vencimento")
fx=SpiRegCmp( 4,"Acrescimo tempo")
fx=SpiRegCmp(25,"Reservado")


fx=SpiRegTpl("3,13","")
fx=SpiRegCmp(  6,"Numero do Serviço")
fx=SpiRegCmp(  6,"Data da Relação")
fx=SpiRegCmp(  1,"Tipo Registo")
fx=SpiRegCmp(  7,"")
fx=SpiRegCmp(  6,"Registos")
fx=SpiRegCmp( 10,"Descontos",21,8.2)
fx=SpiRegCmp(124,"")

end sub

'===================================================================================
'  Gerar Suporte informatico
'===================================================================================
'-----------------------------------------------------------------------------------
Sub SpiRelCab  'listar cabecalho
'-----------------------------------------------------------------------------------
cgaNumServ$= numspi$(left$(Emp_Inf_obs$,6),6)
c1$        = CgaNumServ$
c2$        = NumSpi$(FrmDt$("AM",Sig_DtHoje),6)
c3$        = "1"
c4$        = "0000000"
c5$        = TxTamAjt$(Emp_Inf_Nome$,60)
c6$        = "EUR"
c7$        = TxTamAjt$("",77)

txr$=c1$+c2$+c3$+c4$+c5$+c6$+c7$                    'juntar campos
x=FicLinGrv(1, txr$)                                'registar

'Acumuladores/totalizadores
CntReg=1                                            'numero de linhas
TotDesco=0                                          'total descontos
End Sub


'-----------------------------------------------------------------------------------
Sub SpiRelLin  'listar linha 
'-----------------------------------------------------------------------------------
c1$        = CgaNumServ$
c2$        = NumSpi$(FrmDt$("AM",Sig_DtHoje),6)
c3$        = "2"
c4$        = NumSpi$(left$(Gpe_Mst_ObsQp$,7),7)
c5$        = TxTamAjt$(Gpe_Mst_Nome$,50)
c6$        = TxTamAjt$(MemTxt$(16),2)
c7$        = NumSpi$(MemTxt$(17),1)
c8$        = NumSpi$(MemTxt$(18),8)
c9$        = NumSpi$(MemNum(19),8,2)
c10$       = NumSpi$(MemNum(20),6,2)
c11$       = NumSpi$(MemNum(21),2)
c12$       = NumSpi$(MemNum(22),4,1)
c13$       = NumSpi$(MemNum(23),2)
c14$       = TxTamAjt$(MemTxt$(24),25)
c15$       = TxTamAjt$(MemTxt$(25),3)
c16$       = NumSpi$(Memnum(26),4,1)
c17$       = TxtTamAjt$("",25)

txr$=c1$+c2$+c3$+c4$+c5$+c6$+c7$+c8$+c9$+c10$+c11$+c12$+c13$+c14$+c15$+c16$+c17$
x=FicLinGrv(1, txr$)                        'registar

'Contar/Acumular
CntReg=CntReg+1                             'registos
TotDesco=TotDesco+MemNum(20)                'total descontos

'fx=msgbox(totdesco,memnum(20))
End Sub


'-----------------------------------------------------------------------------------
Sub SpiRelFim  'listar linha 
'-----------------------------------------------------------------------------------
CntReg=CntReg+1               'contar registos

c1$        = CgaNumServ$
c2$        = NumSpi$(FrmDt$("AM",Sig_DtHoje),6)
c3$        = "3"
c4$        = "9999999
c5$        = NumSpi$(CntReg,6)
c6$        = NumSpi$(TotDesco,10,2)
c7$        = TxTamAjt$("",124)

txr$=c1$+c2$+c3$+c4$+c5$+c6$+c7$
'fx=msgbox(totdesco,c6$)
x=FicLinGrv(1, txr$)                                         'registar
End Sub


'===================================================================================
'  Listagem conferencia
'===================================================================================
Sub SpiRelCabCnf 'linha
FxDiv LstIde,16CPI,1
Print PrtCmd$("[10CPILN]");
'?
? Caixa geral aposentações - Conferência suporte informático -  @regime            #
'?                                                              @regime            #
?-----------------------------------------------------------------------------------
Print Tab(1) "Serviço : ";memtxt$(1);" - " ; memTxt$(5) 
Print Tab(1) "Data: " ;memTxt$(2);
Print Tab(60) "Valores em: " ;memTxt$(6)
Print PrtCmd$("[16CPILN]");
?------------------------------------------------------------------------------------------------------------------------------------
?              Funcionario                                                           |Diuturn|Sit|Tip|   Data   |  Valor   |Desconto|
? Categoria                      |Perdas|Acresc.tempo|Horario parcial| Nivel Vencim |  
?------------------------------------------------------------------------------------------------------------------------------------
end sub


Sub SpiRelLinCnf 'linha
lst=0

if MemTxt$(3)="2" then
?@c4        @c5                                                                      |@c13   |@c6|@c7|@c8       | @c9      | @c10   |
? @c14                            |@c11  | @c16      | @c12           | @c15         |
end if


if MemTxt$(3)="3" then
lst=1
?------------------------------------------------------------------------------------------------------------------------------------
rg$=frmval$(memtxt$(5)-2,21,6)
Print tab(80)  "Registos:"        ; rg$;
Print tab(105) "Total descontos:" ; memtxt$(6)
end if



if lst=0
  fx=CntAct("FRC",Doc_cntlin-1)
end if

end sub


Sub SpiRelFimCnf
?------------------------------------------------------------------------------------------------------------------------------------
FxDiv LstPer,SP
End sub


'===================================================================================
'  Guia de pagamento
'===================================================================================
Sub GuiaLin
?
?
?Total da Guia : @TotPag                      #
?
? Codigo servico : @SerCod                                                      #
?     Designacao : @SerDescr                                                    #
?
?
?
?                            IDENTIFICAÇÃO DAS VERBAS A ENTREGAR
?
?
?--------------------------------------------------------------------------------
?                                            |  Ano - Mes  |      Valor         |
?                                            ------------------------------------ 
?                    Quotas do Pessoal - 10% |  @DataV1    |   @Valor1          |
?--------------------------------------------------------------------------------
?               Contribuição da Entidade 10% |  @DataV2    |   @Valor2          |
?--------------------------------------------------------------------------------
? Contribuição da Entidade - Regime especial |  @DataV3    |   @Valor3          |
?--------------------------------------------------------------------------------
?
?      
?
?
?
?
?
?
?
?
?
?
?
FxDiv LstPer,SP
end sub







##





