'Nome       : FREMUN.STD
'Tipo       : LST
'Data       : 2009/04/12
'Versao     : 1.5c
'Descricao  : Folha de remuneracoes

'------------------------------------------------------------------------------
'#VER - Historia de modificacoes
'------------------------------------------------------------------------------
'- Versao : 1.0  2000/01/20 ---------------------------------------------------
'Versao base

'- Versao : 1.0a 2000/02/08 ---------------------------------------------------
'Correcao nos totais

'- Versao : 1.0b 2000/06/27 ---------------------------------------------------
'Formatar valores consoante moeda da empresa

'- Versao : 1.0c 2000/11/29 ---------------------------------------------------
'No resumo, apresenta totais mais descriminados
'Impressao no formato grafico

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

'- Versao : 1.1  2002/02/20 ---------------------------------------------------
'Alteracao nos ficheiros a usar nas inclusoes

'- Versao : 1.2  2003/10/16 ---------------------------------------------------
'Colocar totais acumulados e nao totais por folha

'- Versao : 1.3  2004/07/14 ---------------------------------------------------
'Por defeito inlcuir funcionarios com total de recibo a zero

'- Versao : 1.4  2004/11/24 ---------------------------------------------------
'Nao identificava o estabelecimento correctamente havendo varias paginas
'Encurtar largura da folha dos funcionarios

'- Versao : 1.5  2005/07/06 ---------------------------------------------------
'Colocar ordenacao por funcionario e por seccao
'Apresentar total TSU dos funcionarios

'- Versao : 1.5a ????/??/?? ---------------------------------------------------
'Nao estava a imprimir a listagem ordenada por seccao

'- Versao : 1.5b 2009/03/30 ---------------------------------------------------
'Permitir listar apenas resumo ( exemplo na listagem por trabalhador grafico)

'- Versao : 1.5c 2010/04/12 ---------------------------------------------------
'Apresentar o nome da seccao na listagem por seccao


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


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


'-----------------------------------------------------------------------------
' Configuracao do documento
'-----------------------------------------------------------------------------
#DOC
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=Fremun,por Estabelecimento

'formato
Saida/Impressora           [DocSai]=1
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a zero      [DocEsp]=LSTZER=1
Listar resumo              [DocEsp]=LstRes=1
Ordenacao                  [DocEsp]=ORD=QPS

'funcoes de listagem
Listar cabecalho            [FxCAB]=Frm_Cab
Listar linhas               [FxLIN]=Frm_Lin
Listar fim                  [FxFIM]=Frm_Fim
##


#DOC
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=Fremun,por Secção

'formato
Saida/Impressora           [DocSai]=1
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a zero      [DocEsp]=LSTZER=1
Listar resumo              [DocEsp]=LstRes=1
Ordenacao                  [DocEsp]=ORD=SECCAO

'funcoes de listagem
Listar cabecalho            [FxCAB]=Frm_Cab
Listar linhas               [FxLIN]=Frm_Lin
Listar fim                  [FxFIM]=Frm_Fim
##


#DOC
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=Fremun,por Trabalhador

'formato
Saida/Impressora           [DocSai]=1
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Listar valores a zero      [DocEsp]=LSTZER=1
Listar resumo              [DocEsp]=LstRes=1
Ordenacao                  [DocEsp]=ORD=COD
listar continuo            [DocEsp]=LstCnt=1

'funcoes de listagem
Listar cabecalho            [FxCAB]=Frm_Cab
Listar linhas               [FxLIN]=Frm_Lin
Listar fim                  [FxFIM]=Frm_Fim
##


'-----------------------------------------------------------------------------
' Impressao grafica
'-----------------------------------------------------------------------------
#DOC
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=Fremun_G,por Estabelecimento

'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 zero      [DocEsp]=LSTZER=1
Listar resumo              [DocEsp]=LstRes=1
Ordenacao                  [DocEsp]=ORD=QPS

'funcoes de listagem
Listar cabecalho            [FxCAB]=Frm_CabG
Listar linhas               [FxLIN]=Frm_LinG
Listar fim                  [FxFIM]=Frm_FimG
##


#DOC
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=Fremun_G,por Seccao

'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 zero      [DocEsp]=LSTZER=1
Listar resumo              [DocEsp]=LstRes=1
Ordenacao                  [DocEsp]=ORD=SECCAO

'funcoes de listagem
Listar cabecalho            [FxCAB]=Frm_CabG
Listar linhas               [FxLIN]=Frm_LinG
Listar fim                  [FxFIM]=Frm_FimG
##


#DOC
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=Fremun_G,por Trabalhador

'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 zero      [DocEsp]=LSTZER=1
Listar resumo              [DocEsp]=LstRes=1
Ordenacao                  [DocEsp]=ORD=COD
listar continuo            [DocEsp]=LstCnt=1

'funcoes de listagem
Listar cabecalho            [FxCAB]=Frm_CabG
Listar linhas               [FxLIN]=Frm_LinG
Listar fim                  [FxFIM]=Frm_FimG
##

#DOC
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=FremunRes_G,por Trabalhador ( resumo)

'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 zero       [DocEsp]=LSTZER=1
Listar apenas resumo        [DocEsp]=LstApenasRes=1
Listar resumo              [DocEsp]=LstRes=1
Ordenacao                  [DocEsp]=ORD=COD
listar continuo            [DocEsp]=LstCnt=1

'funcoes de listagem
Listar cabecalho            [FxCAB]=Frm_ResCabG
Listar linhas               [FxLIN]=Frm_ResLinG
Listar fim                  [FxFIM]=Frm_ResFimG
##


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

Est         = GpeCodFrm$("EST",Gpe_Mst_Est$)
EstNome     = GpeTabCon$("EST",Gpe_Mst_Est$,"NOME")

Sec         = GpeCodFrm$("SEC",Gpe_Mst_sec$)
SecNome     = GpeTabCon$("SEC",Gpe_Mst_sec$,"DESC")


Trb         = Gpe_Mst_Trb$
Nome        = Gpe_Mst_Nome$

Vbase       = GpeFrmMoe$("",10,GpeAcmLst("V","REM","VB"))
Vpago       = GpeFrmMoe$("",10,GpeAcmLst("V","REM","VP"))
OutAbo      = GpeFrmMoe$("",10,GpeAcmLst("V","REM","OABN"))
Tsu         = GpeFrmMoe$("",8,GpeAcmLst("V","REM","TSU"))
Irs         = GpeFrmMoe$("",8,GpeAcmLst("V","REM","IRS"))
OutDes      = GpeFrmMoe$("",8,GpeAcmLst("V","REM","ODSC"))
Liq         = GpeFrmMoe$("",10,GpeAcmSal("SAL"))

TVbase      = GpeFrmMoe$("",11,Total(Vbase))
TVpago      = GpeFrmMoe$("",11,Total(Vpago))
TOutAbo     = GpeFrmMoe$("",11,Total(OutAbo))
TTsu        = GpeFrmMoe$("",9,Total(Tsu))
TIrs        = GpeFrmMoe$("",9,Total(Irs))
TOutDes     = GpeFrmMoe$("",9,Total(OutDes))
TLiq        = GpeFrmMoe$("",11,Total(Liq))



'- Resumo ------------
CmvC        = Gpe_Cmv_Cod$
CmvN        = Gpe_Cmv_Descr$
CmvQ        = FrmVal$(GpeLstCmvTot("Q",Gpe_Cmv_Cod$),20,8.2)
CmvV        = GpeFrmMoe$("",11,GpeLstCmvTot("V",Gpe_Cmv_Cod$))

CmvVTA      = GpeFrmMoe$("",11,GpeLstCmvTot("TA"))
CmvVTD      = GpeFrmMoe$("",11,GpeLstCmvTot("TD"))
CmvVTF      = GpeFrmMoe$("",11,GpeLstCmvTot("TF"))
CmvVL       = GpeFrmMoe$("",11,GpeLstCmvTot("TL"))
CmvVT       = GpeFrmMoe$("",11,GpeLstCmvTot("TG"))
CmvTsu      = GpeFrmMoe$("",11,GpeLstCmvTot("V",51))
CmvTsuTrb   = GpeFrmMoe$("",11,GpeLstCmvTot("V",710))

TotVbB      = GpeFrmMoe$("",11,GpeLstCmvTot("V",110)+GpeLstCmvTot("V",230))
TotVbP      = GpeFrmMoe$("",11,GpeLstCmvTot("V",110)+GpeLstCmvTot("V",230)-GpeLstCmvTot("TF"))
TotOA       = GpeFrmMoe$("",11,GpeLstCmvTot("TA")-GpeLstCmvTot("V",110)-GpeLstCmvTot("V",230))
##


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


'-----------------------------------------------------------------------------
' Programa/Funcoes
'-----------------------------------------------------------------------------
#PGM
SUB Lst_AJT
end sub

'-----------------------------------------------------------------------------
' Formato do documento
'-----------------------------------------------------------------------------
Sub Frm_Cab
FxDiv LstIde,10CPI,1
Print PrtCmd$("[10CPILN]");
?
?
if MemTxt$(2)="LR" then         
   Call Frm_CabRes             'listar resumo
else                           
   Call Frm_CabLst             'listagem normal
end If
End Sub


Sub Frm_Lin
if MemTxt$(2)="LR" then         
   Call Frm_LinRes             'listar resumo
else                           
   Call Frm_LinLst             'listagem
End If
End Sub


Sub Frm_Fim
if MemTxt$(2)="LR" then         
   Call Frm_FimRes             'listar resumo
Else                           
   Call Frm_FimLst             'listagem
End If
End Sub


'-----------------------------------------------------------------------------
' Folha de remuneracoes
'-----------------------------------------------------------------------------
Sub Frm_CabLst
?Data : @Data                                                     Pagina : @Pag
?
Print PrtCmd$("[16CPILD]");
?                       Folha de Remuneracoes
Print PrtCmd$("[10CPILN]");
?


if memtxt$(100)="QPS" then       'estabelecimento
?Estabelecimento : @Est     @EstNome                                            #
end if

if memtxt$(100)="SECCAO" then  'seccao
?Seccao : @Sec     @SEcNome                                            #
end if

if memtxt$(100)="COD" then       'ordenado por trabalhador
'?Ordenado por funcionario
end if


Print PrtCmd$("[16CPILN]");
?==================================================================================================================================
?Emp                 Nome                         V.Base      V.Pago    Out.Abonos    T.S.U.    I.R.S.      Out.Desc.  Liquido    |
?==================================================================================================================================
end Sub


Sub Frm_LinLst
?@Trb  @Nome                                    @Vbase      @Vpago      @OutAbo     @Tsu      @Irs          @OutDes    @Liq       |
End Sub


Sub Frm_FimLst
?==================================================================================================================================
?                     Total   :                @TVbase     @TVpago     @TOutAbo    @TTsu     @TIrs        @TOutDes    @TLiq       |
?==================================================================================================================================
if MemTxt$(3)="FIM" then 
  fx=totlpz(0)
end if

FxDiv LstPer,SP
End Sub


'-----------------------------------------------------------------------------
' Resumo por codigo
'-----------------------------------------------------------------------------
Sub Frm_CabRes
?Data : @Data                                                     Pagina : @Pag
?
Print PrtCmd$("[16CPILD]");
?                  Folha de Remuneracoes - Resumo
Print PrtCmd$("[10CPILN]");
?
?===============================================================================
?Codigo          Descricao                   Quantidade               Valor
?===============================================================================
End Sub


Sub Frm_LinRes
?@CmvC  @CmvN                               @CmvQ                 @CmvV        #
End Sub

Sub Frm_FimRes
?===============================================================================
?
?       Total de Abonos (Bruto)          :                        @CmvVTA      #
?-------------------------------------------------------------------------------
?       Total de Vencimento Base (Bruto) :                        @TotVbB      #
?       Total de Faltas                  :                        @CmvVTF      #
?       Total de Vencimento Base Pago    :                        @TotVbP      #
?       Total de Outros Abonos           :                        @TotOA       #
?-------------------------------------------------------------------------------
?       Total de Abonos (Liquido)        :                        @CmvVL       #
?       Total de Descontos               :                        @CmvVTD      #
?-------------------------------------------------------------------------------
?       Total Liquido (Abonos-Descontos) :                        @CmvVT       #
?
?
?       Total TSU - Encargos Patronais   :                        @CmvTsu      #
?       Total TSU - Encargos Funcionario :                        @CmvTsuTrb   #
?===============================================================================
FxDiv LstPer,SP
End Sub


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


'-----------------------------------------------------------------------------
' Formato para listagem normal
'-----------------------------------------------------------------------------
Sub Frm_CabG
SigCabNorOpcTit=2                  'alterar origem do titulo
if MemTxt$(2)="LR" then         
   Titulo$="Folha de Remunerações - Resumo"
   Call SigCabNor
   Call Frm_CabResG             'listar resumo
else             
   Titulo$="Folha de Remunerações"
   Call SigCabNor              
   Call Frm_CabLstG             'listagem normal
end If
End Sub


Sub Frm_LinG
if MemTxt$(2)="LR" then         
   Call Frm_LinResG             'listar resumo
else                           
   Call Frm_LinLstG             'listagem
End If
End Sub


Sub Frm_FimG
if MemTxt$(2)="LR" then         
   Call Frm_FimResG             'listar resumo
Else                           
   Call Frm_FimLstG             'listagem
End If
End Sub

'-----------------------------------------------------------------------------
' formato para listar apenas resumo
'-----------------------------------------------------------------------------
Sub Frm_ResCabG
SigCabNorOpcTit=2                  'alterar origem do titulo
Titulo$="Folha de Remunerações - Resumo"
Call SigCabNor
Call Frm_CabResG             'listar resumo
End Sub


Sub Frm_ResLinG
Call Frm_LinResG             'listar resumo
End Sub


Sub Frm_ResFimG
Call Frm_FimResG             'listar resumo
End Sub

'-----------------------------------------------------------------------------
' Folha de remuneracoes
'-----------------------------------------------------------------------------
Sub Frm_CabLstG
esp=21
Col1=0
Col2=42
Col3=col2+(esp*1)
Col4=col2+(esp*2)
Col5=col2+(esp*3)
Col6=col2+(esp*4)
Col7=col2+(esp*5)
Col8=col2+(esp*6)
Col9=col2+(esp*7)

Lin=4
PrWIN AJT_B,  Margem, 30                    	'posicao base

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


if memtxt$(100)="QPS" then       'estabelecimento
PrWin TX_N, 0,0,"Estabelecimento :"
PrWIN COR_T,  0                                'cor de titulo
PrWin TX_N, 35,0,@Est
PrWin TX_N, 50,0,@EstNome
end if

if memtxt$(100)="SECCAO" then  'seccao
PrWin TX_N, 0,0,"Secção :"
PrWIN COR_T,  0                                'cor de titulo
PrWin TX_N, 35,0,@Sec
PrWin TX_N, 50,0,@SecNome
end if

if memtxt$(100)="COD" then       'ordenado por trabalhador
'PrWin TX_N, 0,0,"Ordenado por funcionario"
end if



PrWIN AJT_B,  Margem, 35                    	'posicao base
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI, 0, 3, MargemD, 3               	'linha
PrWIN GR_LI, 0, 7, MargemD, 7               	'linha

PrWIN COR_T,  CorTitLst                        'cor de titulo
PrWIN FON  ,   8,   1                        	'activar fonte
PrWIN TX_DMX, Col1,Lin,Col2-Col1,"Empregado"
PrWIN TX_N,   Col2,Lin,"Venc.Base"
PrWIN TX_N,   Col3,Lin,"Venc.Pago"
PrWIN TX_N,   Col4,Lin,"Out Abonos"
PrWIN TX_N,   Col5,Lin,"T. S. U."
PrWIN TX_N,   Col6,Lin,"I. R. S."
PrWIN TX_N,   Col7,Lin,"Out Desc"
PrWIN TX_N,   Col8,Lin,"Liquido"

PrWin COR_T, CorLin
end Sub


Sub Frm_LinLstG
PrWIN AJT_B,  Margem, 40+Doc_CntLin*4          	'posicao base
PrWIN TX_N,    Col1,0,@Trb
PrWIN TX_DMX,  Col1+10,0,Col2-Col1-10,@Nome
PrWIN TX_NP,   Col2,0,"N",@Vbase
PrWIN TX_NP,   Col3,0,"N",@Vpago
PrWIN TX_NP,   Col4,0,"N",@OutAbo
PrWIN TX_NP,   Col5,0,"N",@Tsu
PrWIN TX_NP,   Col6,0,"N",@IRS
PrWIN TX_NP,   Col7,0,"N",@OutDes
PrWIN TX_NP,   Col8,0,"N",@Liq
End Sub


Sub Frm_FimLstG
PrWIN AJT_B,  Margem, 265        	'posicao base

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,  CorTotGer
PrWIN TX_N,  30,2,"Totais ..."
PrWIN TX_NP,   Col2,2,"N",@TVbase
PrWIN TX_NP,   Col3,2,"N",@TVpago
PrWIN TX_NP,   Col4,2,"N",@TOutAbo
PrWIN TX_NP,   Col5,2,"N",@TTsu
PrWIN TX_NP,   Col6,2,"N",@TIRS
PrWIN TX_NP,   Col7,2,"N",@TOutDes
PrWIN TX_NP,   Col8,2,"N",@TLiq

if MemTxt$(3)="FIM" then 
  fx=totlpz(0)
end if

Call SigLstRod
PrWin FP
End Sub


'-----------------------------------------------------------------------------
' Resumo por codigo
'-----------------------------------------------------------------------------
Sub Frm_CabResG
Col1=2
Col2=20
Col3=90
Col4=160
Col5=MargemD
PrWIN AJT_B,  Margem, 27                    	'posicao base
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,  CorTitLst                        'cor de titulo
PrWIN FON  ,  11,   1                        	'activar fonte
PrWIN TX_CTR,  Col1,1,Col2,1,"Código"
PrWIN TX_CTR,  Col2,1,Col3,1,"Descrição"
PrWIN TX_CTR,  Col3,1,Col4,1,"Quantidade"
PrWIN TX_CTR,  Col4,1,Col5,1,"Valor"
PrWin COR_T ,  CorLin
End Sub


Sub Frm_LinResG
PrWIN AJT_B,  Margem,25+Doc_CntLin*4          	'posicao base
PrWIN TX_CTR,  Col1,2,Col2,2,@CmvC
PrWIN TX_N,    Col2,2,@CmvN
PrWIN TX_NP,   Col3,2,"N",@CmvQ
PrWIN TX_NP,   Col4,2,"N",@CmvV
End Sub


Sub Frm_FimResG
PrWIN AJT_B,  Margem, 215          	'posicao base
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI, 0, 3, MargemD, 3               	'linha
PrWIN GR_LI, 0, 55, MargemD, 55              	'linha


Col=50

Lin1=5
Lin2=10
Lin3=15
Lin4=20
Lin5=25
Lin6=30
Lin7=35
Lin8=40
Lin9=45
Lin10=50

PrWIN GR_LI, 0, Lin2, MargemD, 10               	'linha
PrWIN GR_LI, 0, Lin6, MargemD, 30               	'linha
PrWIN GR_LI, 0, Lin8, MargemD, 40               	'linha


PrWIN TX_N,    Col,Lin1,"Total de Abonos (Bruto)"
PrWIN TX_N,    Col,Lin2,"Total de Vencimento Base (Bruto)"
PrWIN TX_N,    Col,Lin3,"Total de Faltas"
PrWIN TX_N,    Col,Lin4,"Total de Vencimento Base Pago"
PrWIN TX_N,    Col,Lin5,"Total de Outros Abonos"
PrWIN TX_N,    Col,Lin6,"Total de Abonos (Liquido)"
PrWIN TX_N,    Col,Lin7,"Total de Descontos"
PrWIN TX_N,    Col,Lin8,"Total Líquido (Abonos-Descontos)"
PrWIN TX_N,    Col,Lin9,"Total TSU - Encargos Patronais"
PrWIN TX_N,   Col,Lin10,"Total TSU - Encargos Funcionario"

Col=Col4
PrWIN TX_NP,   Col,Lin1,"N",@CmvVTA 
PrWIN TX_NP,   Col,Lin2,"N",@TotVbB 
PrWIN TX_NP,   Col,Lin3,"N",@CmvVTF
PrWIN TX_NP,   Col,Lin4,"N",@TotVbP
PrWIN TX_NP,   Col,Lin5,"N",@TotOA
PrWIN TX_NP,   Col,Lin6,"N",@CmvVL
PrWIN TX_NP,   Col,Lin7,"N",@CmvVTD
PrWIN TX_NP,   Col,Lin8,"N",@CmvVT
PrWIN TX_NP,   Col,Lin9,"N",@CmvTsu
PrWIN TX_NP,  Col,Lin10,"N",@CmvTsuTrb
Call SigLstRod
PrWin FP
End Sub
##

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