'Nome       : RECIBO.STD
'Tipo       : LST
'Data       : 2008/02/14
'Versao     : 1.4e
'Descricao  : Recibos de vencimento

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0b 2000/01/25 ---------------------------------------------------
'Versao base

'- Versao : 1.0c 2000/01/26 ---------------------------------------------------
'Nao imprimia bem 2 recibos seguidos
'Nao limpava os totais

'- Versao : 1.0d 2000/02/09 ---------------------------------------------------
'Mostrar numero de apolice
'Mostrar taxa de codigo

'- Versao : 1.0e 2000/06/28 ---------------------------------------------------
'Formatar valores consoante moeda da empresa

'- Versao : 1.0f 2000/09/07 ---------------------------------------------------
'Disponibilizar valor unitario

'- Versao : 1.0g 2000/11/20 ---------------------------------------------------
'Mostrar valor unitario
'Impressao em modo grafico
'Os totais sao disponibilizados pelo programa

'- Versao : 1.0h 2000/12/04 ---------------------------------------------------
'Formatar valores consoante decimais indicados pelo programa

'- Versao : 1.0h 2000/12/27 ---------------------------------------------------
'Alterar opcao de ajustar papel para 0

'- Versao : 1.1  2002/02/20 ---------------------------------------------------
'Ajustes diversos

'- Versao : 1.2  2002/07/18 ---------------------------------------------------
'Mostrar observacoes

'- Versao : 1.3  2002/12/04 ---------------------------------------------------
'Exemplo para discriminar codigos de movimento
'Colocar contribuinte da empresa

'- Versao : 1.4  2003/01/22 --------------------------------------------------
'Colocar as observacoes do impresso grafico antes dos totais

'- Versao : 1.4a 2003/07/14 --------------------------------------------------
'Prever recibos com 2 folhas (impressao grafica)

'- Versao : 1.4b 2004/07/03 --------------------------------------------------
'colocar original/duplicado na impressao grafica

'- Versao : 1.4c 2005/10/21 --------------------------------------------------
'correcção ortográfica

'- Versao : 1.4d 2007/12/04 --------------------------------------------------
'Funcoes alteradas
' - Rec_FimGAjt, compatibilizar com impressao grafica pdf

'- Versao : 1.4e 2008/02/14 --------------------------------------------------
'No recibo pre-impresso, apresentar valor unitário nos abonos e descontos


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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RECIBO
Nome                       [DocNom]=Recibo,Recibo (papel branco)
Vias                       [DocVia]=Original

'formato
Saida/Impressora           [DocSai]=1
Linhas por pagina          [DocLpg]=10
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=36L
Ajustar pagina             [DocApg]=1
Juntar seccoes             [DocEsp]=JunSec=1
'Juntar seccoes             [DocEsp]=JunSec=0
'Cod a discriminar seccoes  [DocEsp]=CmvDisSec="710,720"
'Discriminar acumuladores   [DocEsp]=CmvDisAcm=1

'funcoes de listagem
Listar cabecalho            [FxCAB]=Rec_Cab
Listar linhas               [FxLIN]=Rec_Lin; Des ; Abo ; Ajt
Listar fim                  [FxFIM]=Rec_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RECIBO
Nome                       [DocNom]=RecPre,Recibo (Pré-Impresso)

'formato
Saida/Impressora           [DocSai]=1
Linhas por pagina          [DocLpg]=9
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=24L
Ajustar pagina             [DocApg]=1
Juntar seccoes             [DocEsp]=JunSec=1
'Juntar seccoes             [DocEsp]=JunSec=0
'Cod a discriminar seccoes  [DocEsp]=CmvDisSec="710,720"

'funcoes de listagem
Listar cabecalho            [FxCAB]=RecP_Cab
Listar linhas               [FxLIN]=RecP_Lin; Des ; Abo ; Ajt
Listar fim                  [FxFIM]=RecP_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=RECIBO
Nome                       [DocNom]=Recibo_G,Recibo (papel branco)
Vias                       [DocVia]=Original

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=11
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=36L
Ajustar pagina             [DocApg]=0
Juntar seccoes             [DocEsp]=JunSec=1
'Juntar seccoes             [DocEsp]=JunSec=0
'Cod a discriminar seccoes  [DocEsp]=CmvDisSec="710,720"

'funcoes de listagem
Listar cabecalho            [FxCAB]=Rec_CabG
Listar linhas               [FxLIN]=Rec_LinG; Des ; Abo 
Listar fim                  [FxFIM]=Rec_FimG
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
DocNum   =FrmVal$(MemNum(1),20,-5.0)
Tipo     =MemTxt$(1)
Pag      =Doc_CntPag
DataExt  =FrmVal$(Sig_DtHoje,45,0)
DataRec  =FrmVal$(Sig_DtHoje,42,0)

NomEmp   =Emp_Inf_Nome$
Local    =Emp_Inf_Local$
Ctrb     =Emp_Inf_Contrib$

TrbC     =Gpe_Mst_Trb$
TrbNome  =Gpe_Mst_Nome$
TrbCat   =GpeTabCon$("CAT",Gpe_Mst_Categ,"ABRV")
TrbCont  =Gpe_Mst_Ctrb$
TrbCrss  =Gpe_Mst_CrssNb$
TrbLpg   =Gpe_Mst_Est$
'GpeTabCon$("EST",Gpe_Mst_Est$,"NOME")
TrbVbase =GpeFrmMoe$("",10,Gpe_Mst_Vbase)

'linha
Cm       =Gpe_Cmv_Cod$
Desc     =Gpe_Cmv_Descr$
Desc16   =left$(Gpe_Cmv_Descr$,30)
Desc27   =left$(Gpe_Cmv_Descr$,27)
Tx       =FrmVal$(MemNum(20),20,2.2)
HorDias  =GpeFrmT$("?","####.00 ",MemNum(22))
Quant    =right$(GpeFrmT$("?","###.00",MemNum(22)),8)

Abo      =GpeFrmMoe$("",10,MemNum(21))
Des      =GpeFrmMoe$("",10,MemNum(21))

'totais
TotAbo   =GpeFrmMoe$("",10,MemNum(31))
TotDes   =GpeFrmMoe$("",10,MemNum(32))
TotRec   =GpeFrmMoe$("",13,MemNum(31)-MemNum(32))

Obs      =GpeObs$(5)
Seguro   =GpeTabCon$("SEG",Gpe_Mst_CodSeg,"NOME")+"  Apolice n."+GpeTabCon$("SEG",Gpe_Mst_CodSeg,"AP_NUM")
Seguro16 =GpeTabCon$("SEG",Gpe_Mst_CodSeg,"NOME")+" , Apolice n."+GpeTabCon$("SEG",Gpe_Mst_CodSeg,"AP_NUM")
TotEur   =FrmVal$(MoeCnv("N",Total(Abo)-Total(Des),Emp_Inf_Moeda,2),21,12.2)
Abv      =EmpTabCon$("MOEDA",Emp_Inf_Moeda,"ABRV")

VUnit    =GpeFrmMoe$("Z=E",10,MemNum(23))

'totais (todos os processamentos)
IncIrs   =GpeFrmMoe$("",13,MemNum(11))
AcmIrs   =GpeFrmMoe$("",13,MemNum(12))
##


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


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

'-----------------------------------------------------------------------------
' Formato do documento
'-----------------------------------------------------------------------------
'- Recibos (Papel branco) ----------------------------------------------------
SUB Rec_Cab
Print PrtCmd$("[16CPILD]");
?@NomEmp                                                                     #
Print PrtCmd$("[10CPILN]");
?@Local                                                    #                       
?Contribuinte: @Ctrb                                           #
?                                                     RECIBO DE REMUNERACOES #
?
?Empregado    : @Trbc  @TrbNome                                              #
?Categoria    : @TrbCat                                                      #
?Contribuinte : @TrbCont                                                     #
?No Ben.S.Soc.: @TrbCrss                                                     #
?Venc. Base   : @TrbVbase                                                    #
?
?@DataExt                                            #
?================================================================================
?|           Descricao            Taxa | Quant | Unitario |Descontos |  Abonos  |
?================================================================================
end sub

SUB Rec_LinAjt 'ajuste de  linhas
?|                                     |       |          |          |          |
end sub

SUB Rec_LinDes  'linha para descontos
?|@Cm @Desc27                     @Tx  |@Quant |@Vunit    |@Des      |          |
end sub

SUB Rec_LinAbo 'linha para abonos
?|@Cm @Desc27                          |@Quant |@Vunit    |          |@Abo      |
end sub


SUB Rec_Fim
?================================================================================
?| Assinatura                          | Totais         |@TotDes    |@TotAbo    |
?|                                     |========================================|
?|                                     | Total a Receber   @Abv | @TotRec       |
?| @Obs                                |                                        |
?|===============================================================================
?@Seguro                                                                    #
Print PrtCmd$("[SP]");
x=totlpz(0)
end sub


'- Recibos (Pre-impresso) ----------------------------------------------------
SUB RecP_Cab
Print PrtCmd$("[16CPILD]");
?@NomEmp                                               #
Print PrtCmd$("[10CPILN]")
?@TrbC @TrbNome                             @DataRec                  #
?
?@TrbCont     @TrbCrss                  @TrbCat       @TrbVBase                #
?
Print PrtCmd$("[16CPILD]")
end sub


SUB RecP_LinAjt
?
end sub


SUB RecP_LinDes
?@Cm   @Desc16                          @Tx      @Quant    @VUNIT               @Des                       #
end sub


SUB RecP_LinAbo
?@Cm   @Desc16                          @Tx      @Quant    @VUNIT                               @Abo       #
end sub


SUB RecP_Fim
?@Seguro16                                                   #
?                                                                               @TotDes         @TotAbo      #
?
?                                                                                        @Abv   @TotRec      #
?
?                                                                                             #
Print PrtCmd$("[SP]");
x=totlpz(0)
end sub


'- Recibos (Papel branco - Impressao grafica ) ----------------------------------
SUB FxIni 'funcao de inicializacao
Call SigLstIni
End sub


SUB Rec_CabG
Call MeioPaginaA4                'marcador para meio da pagina
Base1=0

'comentar a situacao que nao interessa
Base2=0                           '1 recibo por folha
Base2=148                         '2 recibos por folha

Base=Base1
RcVia$="Original"
Call Cabecalho

Base=Base2
RcVia$="Duplicado"
Call Cabecalho
End SUb


SUB Rec_LinGAbo  'linha para abonos
Base=Base1
Call Abono
Base=Base2
Call Abono
End Sub


SUB Rec_LinGDes  'linha para descontos
Base=Base1
Call Desconto
Base=Base2
Call Desconto
End Sub


SUB Rec_FimG
Base=Base1
Call Final
Base=Base2
Call Final
PrWin FP
End Sub

SUB Rec_FimGAjt
if MemTxt$(99)="FIMFRC" then      'fim pagina a pedido do programa
  call Rec_FimG                    'fim pagina normal
else
 Base=Base1
 Call FinalAjt
 Base=Base2
 Call FinalAjt
 PrWin FP
end if
End Sub


Sub Cabecalho    'cabecalho do recibo grafico
PrWIN AJT_B,  Margem, Base+ 5                            'posicao base
PrWIN COR_T,  CorEmpMorada                         'cor para morada
PrWIN FON,  FntEmpMorada                           'activar fonte
PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,     0,   0,@EmpNome                    'designacao
PrWin FON, "BOLD-"                                 'desactivar bold
PrWIN TX_N,     0,   5,@EmpLocal                   'localidade
PrWIN TX_N,     0,   10,"Contribuinte:"            'contrib
PrWIN TX_N,    25,   10,@Ctrb                      'contrib


PrWIN FON,  10                                      'activar fonte
PrWIN COR_T,  CorTitLst                             'cor para titulos
PrWin FON, "BOLD+"                                  'activar bold
crm=130
PrWin TX_N, crm,5,"RECIBO DE REMUNERAÇÕES"
PrWIN COR_T,  CorLin                                'cor para linhas
PrWin FON, "BOLD-"                                 'desactivar bold
PrWin TX_N, crm+30,10,RcVia$

'Dados do empregado
PrWIN AJT_B,  Margem, Base+15                       'posicao base
PrWIN FON,  10                                      'activar fonte
PrWIN COR_T,  CorTitLst                             'cor para titulos
PrWin TX_N, 0,5,"Empregado"
PrWin TX_N, 0,10,"Categoria"
PrWin TX_N, 0,15,"Contribuinte"
PrWin TX_N, 0,20,"Seg.Social"
PrWin TX_N, 0,25,"Vencimento Base"
PrWIN TX_N ,    0, 35,"Data :"                      'data

col=30                                              'coluna
PrWIN COR_T,  CorLin                                'cor para linhas
PrWin TX_N,    Col,5,@TrbC
PrWin TX_N,    col+12,5,@TrbNome
PrWin TX_N,    Col,10,@TrbCat
PrWin TX_N,    Col,15,@TrbCont
PrWin TX_N,    Col,20,@TrbCrss
PrWin TX_NP,   Col,25,"N",@TrbVbase
PrWIN TX_N,     11,35,@DataExt                       'listar data

Col1=3
Col2=10
esp=24
Col3=70                'taxa
Col4=Col3+(esp*1)      'quantidade
Col5=Col3+(esp*2)
Col6=Col3+(esp*3)
Col7=Col3+(esp*4)
Col8=MargemD-10

InicioEscrita=55
PrWIN AJT_B,  Margem, Base+InicioEscrita+1         	'posicao base

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

Lin=2
PrWIN COR_T,  CorTitLst                        'cor de titulo
PrWIN FON  ,   10,   1                        	'activar fonte
PrWIN TX_CTR,  Col1,Lin,Col3,Lin,"Descrição"
PrWIN TX_N,    Col3,Lin,"Taxa"
PrWIN TX_N,    Col4,Lin,"Quantidade"
PrWIN TX_N,    Col5,Lin,"Valor Unitário"
PrWIN TX_N,    Col6+3,Lin,"Descontos"
PrWIN TX_N,    Col7+3,Lin,"Abonos"

PrWIN FON,  10                                  'activar fonte
PrWIN COR_T,  CorLin                            'cor para titulos

InicioEscrita=InicioEscrita+5
End sub


Sub Desconto
PrWIN AJT_B,  Margem, Base+InicioEscrita+Doc_CntLin*4          	'posicao base
PrWIN TX_N,     Col1,0,@Cm
PrWIN TX_DMX,   Col2,0,Col3-Col2,@desc
PrWIN TX_NP,    Col3,0,"N",@Tx
PrWIN TX_NP,    Col4,0,"N",@Quant
PrWIN TX_NP,    Col5,0,"N",@Vunit
PrWIN TX_NP,    Col6,0,"N",@Des
end sub


Sub Abono
PrWIN AJT_B,  Margem, Base+InicioEscrita+Doc_CntLin*4          	'posicao base
PrWIN TX_N,     Col1,0,@Cm
PrWIN TX_DMX,   Col2,0,Col3-Col2,@desc
PrWIN TX_NP,    Col3,0,"N",@Tx
PrWIN TX_NP,    Col4,0,"N",@Quant
PrWIN TX_NP,    Col5,0,"N",@Vunit
PrWIN TX_NP,    Col7,0,"N",@Des
End sub


Sub Final
FimDoc=110
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,Base+FimDoc+1                'posicao base
PrWIN GR_LI,     0,  0, Col8, 0            	'linha
PrWIN GR_LI,     Col5,  6, Col8, 6            	'linha
PrWIN GR_LI,     0,  13, col8, 13            	'linha
PrWIN FON,      10,  1                          'activar fonte

PrWIN COR_T, CorTotGer                          'cor de totais
PrWIN TX_N, Col5,    1,"Totais"
PrWIN TX_N, Col1,    2,"Assinatura"
PrWIN TX_N, Col5,    8,"Total a Receber"

PrWIN COR_T, CorLin                             'cor de totais

PrWIN TX_N,  Col1,  -4,@Obs

PrWIN TX_NP, Col6,   1,"N",@TotDes
PrWIN TX_NP, Col7,   1,"N",@TotAbo
PrWIN TX_N,  Col6+5, 8,@Abv
PrWIN TX_NP, Col7-6, 8,"N",@TotRec

PrWIN FON  ,   8,   1                           'activar fonte
PrWin TX_N,    5,   13,@Seguro                   'seguro
end sub


Sub FinalAjt
FimDoc=110
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,Base+FimDoc+1                 		'posicao base
PrWIN GR_LI,     0,  0, Col8, 0            	'linha

PrWIN COR_T, CorTotGer                            'cor de totais
PrWIN TX_N, Col5,    1,"Continua ..."
end sub
##


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

