'Nome       : PosResCxGrf.std
'Tipo       : LST
'Data       : 2014/06/05
'Versao     : 1.0
'Descricao  : POS - Resumo de caixa (grafico)

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   2014/06/05 --------------------------------------------------
'Versao base


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'diversos
Limites a listar                  [EspLim]=?
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Nome                       [DocNom]=RCX
Vias                       [DocVia]=Original
Tipo                       [DocTip]=
Dados especificos          [DocEsp]=ESP1,FAC

'formato
Impressora                 [DocPrt]=
'Impressora                 [DocPrt]=PR01
Linhas por pagina          [DocLpg]=100
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Base para documento         [FxDOC]=PosDoc
Listar cabecalho            [FxCAB]=PosCab
Listar linhas               [FxLIN]=PosLin; +
                                   +GrpIni; GrpDis;   GrpFim; +
                                   +MpgIni; MpgDis,0; MpgFim; MpgEnt,0; +
                                   +ArtIni; ArtDis;   ArtFim; +
                                   +FmaIni; FmaDis;   FmaFim; +
                                   +IvaIni; IvaDis;   IvaFim;

Listar fim                  [FxFIM]=PosFim
##


'==============================================================================
#DOC_X - Configuracao do documento - Modo Grafico
'==============================================================================
Nome                       [DocNom]=RCX
Vias                       [DocVia]=Original
Tipo                       [DocTip]=
Dados especificos          [DocEsp]=ESP1,FAC

'formato
Impressora                 [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=100
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Base para documento         [FxDOC]=PosDocG
Listar cabecalho            [FxCAB]=PosCabG
Listar linhas               [FxLIN]=PosLinG; +
                                   +GrpIni; GrpDis;   GrpFim; +
                                   +MpgIni; MpgDis,0; MpgFim; MpgEnt,0; +
                                   +ArtIni; ArtDis;   ArtFim; +
                                   +FmaIni; FmaDis;   FmaFim; +
                                   +IvaIni; IvaDis;   IvaFim;

Listar fim                  [FxFIM]=PosFimG
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Pag      = Doc_CntPag                                       'pagina

vcDtExt  = FrmVal$(Sig_DtHoje,45,0)                         'data em extenso
vcDt     = FrmDt$("",Sig_DtHoje)                            'data
vcHr     = DataTms$("H")                                    'hora
vcUtz    = SigUtz$("SIG")                                   'utilizador do SIG
vcUtzWin = SigUtz$("WIN")                                   'utilizador do windows
vcUtzMaq = SigUtz$("MAQ")                                   'utilizador do SIG - maquina

'dados da empresa 
vaEmpIde = vuEmpIde$                                        'empresa
vaEmpMor = vuEmpMor$                                        'morada
vaEmpLoc = vuEmpLoc$                                        'localidade
vaEmpCpo = vuEmpCpo$                                        'codigo postal
vaEmpTel = vuEmpTel$                                        'telefone
vaEmpFax = vuEmpFax$                                        'fax
vaEmpNif = vuEmpNif$                                        'nif
vaEmpNju = vuEmpNju$                                        'natureza juridica
vaEmpReg = vuEmpReg$                                        'numero de registo
vaEmpCps = vuEmpCps$                                        'capital social

'dados do registo de caixa
vaRcxTer = vuRcxTer$                                        'terminal
vaRcxOpe = vuRcxOpe$                                        'operador

'vendedor/operador
vaVnd    = NumTxt$(vuRcxVnd,2)                              'numero
vaVndNom = EmpTabCon$("Vend",vuRcxVnd,"Nome")               'nome

'- (61) --------------------------------------------------->'Comentario
'abertura/fecho
vaRcxAbr  = vuAbrDt$+"  "+vuAbrHr$                          'abertura
vaRcxFec  = vuFecDt$+"  "+vuFecHr$                          'fecho

'grupo de documentos
vaGrpIde = vuGrpTdo$+" - "+vuGrpDes$                        'identificacao do grupo
vaGrpCnt = "["+NumTxt$(vuGrpCnt,4)+"]"                      'numero de registos
vaGrpVto = FrmNum$(10.2,vuGrpVto)                           'valor total

vaGrpDt  = vuGrpDt$                                         'data
vaGrpHr  = vuGrpHr$                                         'hora
vaGrpTms = vuGrpTms$                                        'time stamp
vaGrpTsr = mid$(vuGrpTms$,6)                                'time stamp - reduzida
vaGrpDoc = vuGrpTdo$+" "+FrmNdo$("46",vuGrpTdo$,vuGrpNdo$)  'documento
vaGrpNdo = FrmNdo$("46",vuGrpTdo$,vuGrpNdo$)                'numero de documento
vaGrpVdo = FrmNum$(10.2,vuGrpVdo)                           'valor do documento

'modos de pagamento
vaMpgNum = vuMpgNum                                         'numero
vaMpgMoe = vuMpgMoe                                         'moeda
vaMpgDes = vuMpgDes$+":"                                    'descricao
vaMpgVal = FrmNum$(10.2,vuMpgVal)                           'valor

vaMpgVto = FrmNum$(10.2,vuMpgVto)                           'valor total
vaMpgScx = FrmNum$(10.2,vuMpgScx)                           'valor de saldo de caixa

'pagamento por entidade
vaEntIde = vuEntIde$                                        'identificadaor (entidade)
vaEntDes = vuEntDes$+":"                                    'descricao
vaEntVal = FrmNum$(10.2,vuEntVal)                           'valor


'- dados a listar -------------------------------------------------------------
vObs     = usaObs$                                          'observacaoes

'valores - documento
vaDocQua = FrmNum$(06.2,vuDocQua)                           'quantidade
vaDocVto = FrmNum$(10.2,vuDocVto)                           'valor total
vaDocPag = FrmNum$(10.2,vuDocPag)                           'valor a pagar
vaDocTro = FrmNum$(10.2,vuDocTro)                           'valor de troco

'valores - movimento
vaMovQua = FrmNum$(06.3,vuMovQua)                           'quantidade
vaMovPrc = FrmNum$(06.2,vuMovPrc)                           'preco
vaMovVto = FrmNum$(10.2,vuMovVto)                           'valor

'conta
vaCtCod  = CTA_MST_Ct$                                      'codigo da conta
vaCtNom  = CTA_MST_Nome$                                    'nome

'armazem
vaArzCod = arzCod$                                          'codigo
vaArzCov = arzCov$                                          'codigo formatado
vaArzNom = arzNom$                                          'nome

'vendedor
vaVndCod = vndCod$                                          'codigo
vaVndCov = vndCov$                                          'codigo formatado
vaVndNom = vndNom$                                          'nome


'- artigos --------------------------------------------------------------------
vaArtNum = FrmNum$(06.0,vuArtNum)                           'numero/contagem

vaArtCod = vuArtCod$                                        'codigo do artigo
vaArtDes = vuArtDes$                                        'descricao do artigo

vaArtNrg = FrmNum$(06.0,vuArtNrg)                           'numero de registos
vaArtQua = FrmNum$(06.3,vuArtQua)                           'quantidade
vaArtPrc = FrmNum$(06.2,vuArtPrc)                           'preco
vaArtVto = FrmNum$(10.2,vuArtVto)                           'valor

toArtNrg = FrmNum$(06.0,TotCnt("vaArtCod",0))               'numero de registos - total
s1ArtNrg = FrmNum$(06.0,TotCnt("vaArtCod",1))               'numero de registos - subtotal 1
s2ArtNrg = FrmNum$(06.0,TotCnt("vaArtCod",2))               'numero de registos - subtotal 2

'total de quantidade
toArtQua = FrmNum$(10.2,Total("vaArtQua",0))                'quantidade - total
s1ArtQua = FrmNum$(10.2,Total("vaArtQua",1))                'quantidade - subtotal 1
s2ArtQua = FrmNum$(10.2,Total("vaArtQua",2))                'quantidade - subtotal 2

'total de valor
toArtVto = FrmNum$(10.2,Total("vaArtVto",0))                'valor - total
s1ArtVto = FrmNum$(10.2,Total("vaArtVto",1))                'valor - subtotal 1
s2ArtVto = FrmNum$(10.2,Total("vaArtVto",2))                'valor - subtotal 2


'- familia de artigos ---------------------------------------------------------
vaFmaNum = FrmNum$(06.0,vuFmaNum)                           'numero/contagem

vaFmaCod = vuFmaCod$                                        'codigo da familia
vaFmaDes = vuFmaDes$                                        'descricao da familia

vaFmaNrg = FrmNum$(06.0,vuFmaNrg)                           'numero de registos
vaFmaQua = FrmNum$(06.3,vuFmaQua)                           'quantidade
vaFmaPrc = FrmNum$(06.2,vuFmaPrc)                           'preco
vaFmaVto = FrmNum$(10.2,vuFmaVto)                           'valor

toFmaNrg = FrmNum$(06.0,TotCnt("vaFmaCod",0))               'numero de registos - total
s1FmaNrg = FrmNum$(06.0,TotCnt("vaFmaCod",1))               'numero de registos - subtotal 1
s2FmaNrg = FrmNum$(06.0,TotCnt("vaFmaCod",2))               'numero de registos - subtotal 2

'total de quantidade
toFmaQua = FrmNum$(10.2,Total("vaFmaQua",0))                'quantidade - total
s1FmaQua = FrmNum$(10.2,Total("vaFmaQua",1))                'quantidade - subtotal 1
s2FmaQua = FrmNum$(10.2,Total("vaFmaQua",2))                'quantidade - subtotal 2

'total de valor
toFmaVto = FrmNum$(10.2,Total("vaFmaVto",0))                'valor - total
s1FmaVto = FrmNum$(10.2,Total("vaFmaVto",1))                'valor - subtotal 1
s2FmaVto = FrmNum$(10.2,Total("vaFmaVto",2))                'valor - subtotal 2


'- IVA ------------------------------------------------------------------------
vaIvaNum = FrmNum$(06.0,vuIvaNum)                           'numero/contagem

vaIvaCod = FrmNum$(02.0,vuIvaCod)                              'codigo de IVA
vaIvaTax = FrmNum$(03.0,vuIvaTax)                              'taxa de IVA
vaIvaCtx = FrmNum$(04.0,vuIvaCod)+FrmNum$(04.0,vuIvaTax)+"%"   'codigo+taxa de IVA

vaIvaNrg = FrmNum$(06.0,vuIvaNrg)                           'numero de registos
vaIvaInc = FrmNum$(07.2,vuIvaInc)                           'incidencia
vaIvaIva = FrmNum$(07.2,vuIvaIva)                           'valor de IVA
vaIvaVto = FrmNum$(07.2,vuIvaVto)                           'valor

toIvaNrg = FrmNum$(06.0,TotCnt("vaIvaCod",0))               'numero de registos - total
s1IvaNrg = FrmNum$(06.0,TotCnt("vaIvaCod",1))               'numero de registos - subtotal 1
s2IvaNrg = FrmNum$(06.0,TotCnt("vaIvaCod",2))               'numero de registos - subtotal 2

'valor de incidencia
toIvaInc = FrmNum$(07.2,Total("vaIvaInc",0))                'incidencia - total
s1IvaInc = FrmNum$(07.2,Total("vaIvaInc",1))                'incidencia - subtotal 1
s2ArtInc = FrmNum$(07.2,Total("vaIvaInc",2))                'incidencia - subtotal 2

'valor de IVA
toIvaIva = FrmNum$(07.2,Total("vaIvaIva",0))                'valor de IVA - total
s1IvaIva = FrmNum$(07.2,Total("vaIvaIva",1))                'valor de IVA - subtotal 1
s2ArtIva = FrmNum$(07.2,Total("vaIvaIva",2))                'valor de IVA - subtotal 2

'total de valor
toIvaVto = FrmNum$(07.2,Total("vaIvaVto",0))                'valor - total
s1IvaVto = FrmNum$(07.2,Total("vaIvaVto",1))                'valor - subtotal 1
s2IvaVto = FrmNum$(07.2,Total("vaIvaVto",2))                'valor - subtotal 2


'- diversos -------------------------------------------------------------------
'contagem
toNrg    = FrmNum$(9.0,TotCnt("vaArtCod",0))                'numero de registos - total
s1Nrg    = FrmNum$(9.0,TotCnt("vaArtCod",1))                'numero de registos - subtotal 1
s2Nrg    = FrmNum$(9.0,TotCnt("vaArtCod",2))                'numero de registos - subtotal 2

'valor total
toMovVto = FrmNum$(10.2,Total("vaMovVto",0))                'valor - total
s1MovVto = FrmNum$(10.2,Total("vaMovVto",1))                'valor - subtotal 1
s2MovVto = FrmNum$(10.2,Total("vaMovVto",2))                'valor - subtotal 2
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario

'        10        20        30        40
'123456789.123456789.123456789.123456789.


'=============================================================================
'- Comum ---------------------------------------------------------------------
'=============================================================================
Sub FxIni 'funcao de inicializacao
'nada a executar
end sub


Sub FxFim 'funcao de finalizacao
'nada a executar
end sub


Sub Lst_AJT 'ajuste
'nada a executar
end sub


'-----------------------------------------------------------------------------
'- [VAR] - Variaveis ---------------------------------------------------------
'-----------------------------------------------------------------------------
Sub PrpVar_Emp 'preparar variaveis da empresa
vuEmpIde$ = Emp_Inf_Nome$                                   'empresa
vuEmpMor$ = Emp_Inf_Morada$                                 'morada
vuEmpLoc$ = Emp_Inf_Local$                                  'localidade
vuEmpCpo$ = Emp_Inf_Cpost$                                  'codigo postal
vuEmpTel$ = Emp_Inf_Telef$                                  'telefone
vuEmpFax$ = Emp_Inf_Fax$                                    'fax
vuEmpNif$ = Emp_Inf_Contrib$                                'nif
vuEmpNju$ = Emp_Inf_NatJur$                                 'natureza juridica
vuEmpReg$ = Emp_Inf_NumReg$                                 'numero de registo
vuEmpCps$ = FrmNum$(10.2,Emp_Inf_CapSoc)                    'capital social
end sub


'==============================================================================
' Resumo de Caixa - Modo Texto
'==============================================================================
'-----------------------------------------------------------------------------
'Documento
'-----------------------------------------------------------------------------
Sub PosDoc_DocIni 'inicializar documento
'msgbox "", "DOC","INI"

call PrpVar_Com                                             'preparar variaveis comuns
end sub


Sub PosDoc_DocFim 'terminar documento
'msgbox "", "DOC","FIM"
end sub


Sub PosDoc_LinIni 'inicio de linhas
'msgbox "", "LIN","INI"
end sub


Sub PosDoc_LinFim 'fim de linhas
'msgbox "", "LIN","FIM"
end sub


'-------------------------------------------------------------------------
'cabecalho do documento
'-------------------------------------------------------------------------
Sub PosCab 'cabecalho do documento
call PrpVar_Emp                                             'preparar variaveis da empresa
'- (61) --------------------------------------------------->'Comentario

vuRcxTer$ = VarCom$("Rcx_Ter")                              'terminal
vuRcxOpe$ = VarCom$("Rcx_Ope")                              'operador
vuRcxVnd  = VarCom("Rcx_Vnd")                               'vendedor

vuAbrDt$  = VarCom$("Abr_Dt")                               'abertura - data
vuAbrHr$  = VarCom$("Abr_Hr")                               'abertura - hora
vuFecDt$  = VarCom$("Fec_Dt")                               'fecho    - data
vuFecHr$  = VarCom$("Fec_Hr")                               'fecho    - hora

print vuEmpIde$                                             'nome da empresa
'print PrtCmd$("[16CPILN]");                                 'tipo de letra
print                                                       'separar
print vuEmpMor$                                             'morada
print vuEmpLoc$                                             'local
print vuEmpCpo$                                             'codigo postal
?Contribuinte: @vaEmpNif                #
?Telefone: @vaEmpTel   Fax: @vaEmpFax   #

print                                                       'separar
?========================================
?                                       #
?            Resumo de Caixa            #
?                                       #
?========================================
print                                                       'separar

? Data: @vcDtExt                        #
? Hora: @vcHr      Utz: @vcUtz          #
?----------------------------------------
? Term: @vaRcxTer                       #
? Oper: @vaVnd @vaVndNom                #
?----------------------------------------
? Abertura: @vaRcxAbr                   #
? Fecho:    @vaRcxFec                   #
?========================================
print                                                       'separar
end sub


'-------------------------------------------------------------------------
'fim do documento
'-------------------------------------------------------------------------
Sub PosFim 'total do documento
?========================================
?                                       #
? Conferido:                            #
?                                       #
?========================================

'- (61) --------------------------------------------------->'Comentario
for i = 1 to 5 
print                                                       'listar separacao
next

print PrtCmd$("[CorAva]")                                   'avanco e corte de papel
'print PrtCmd$("[CorPar]")                                   'corte parcial de papel

'res = PrExeIme("LS", "CMD", "[CorAva]")                     'avanco e corte de papel
end sub


'-------------------------------------------------------------------------
'linha do documento
'-------------------------------------------------------------------------
Sub PosLinAjt 'ajuste de linhas
print                                                       'linha de separacao
end sub


Sub PosLinNor 'artigos tipo normal
call PrpVar_Mov                                             'preparar variaveis do movimento

?@vaPosNom                  @vaPosLiq   #
end sub


'------------------------------------------------------------------------------
'#GRP - Grupo de documentos
'------------------------------------------------------------------------------
Sub PosLinGrpIni 'inicio de grupo
vuGrpTdo$ = VarCom$("Grp_Tdo")                              'tipo de documento
vuGrpDes$ = VarCom$("Grp_Des")                              'descricao
vuGrpCnt  = 0                                               'limpar contador
vuGrpVto  = 0                                               'limpar totalizador

?========================================
?@vaGrpIde                              #
?========================================
end sub


Sub PosLinGrpFim 'fim de grupo
vuGrpTip$ = VarCom$("Grp_Tip")                              'tipo do grupo

usaTot = 1                                                  'assume usar total
if vuGrpTip$ = "CNF" then                                   'conferencia ?
   usaTot = 0                                               'nao usar total
end if

if usaTot = 1 then                                          'listar totais ?
?----------------------------------------
? Total: @vaGrpCnt          @vaGrpVto   #
print 
else                                                        'separar
?----------------------------------------
? Total: @vaGrpCnt                      #
  print                                                     'linha de separacao
end if
end sub


Sub PosLinGrpDis 'discriminar grupo
vuGrpTms$ = VarCom$("Grp_Tms")                              'time stamp
vuGrpDt$  = VarCom$("Grp_Dt")                               'data
vuGrpHr$  = VarCom$("Grp_Hr")                               'hora
vuGrpSit$ = VarCom$("Grp_Sit")                              'situacao do documento
vuGrpNdo$ = VarCom$("Grp_Ndo")                              'numero documento
vuGrpVdo  = VarCom("Grp_Vdo")                               'valor

'@vaGrpDoc                  @vaGrpVdo   #
?@vaGrpTsr      @vaGrpNdo   @vaGrpVdo   #
'MM/DD HH:MM:SS 123,456/2012 1,234,567.00

if vuGrpSit$ = "ANL" then                                   'anulado ?
?                               (Anulado)
else 
   vuGrpCnt  = vuGrpCnt + 1                                 'contar
   vuGrpVto  = vuGrpVto + vuGrpVdo                          'acumular valor
end if
end sub


'------------------------------------------------------------------------------
'#MPG - Modos de pagamento
'------------------------------------------------------------------------------

Sub PosLinMpgIni 'inicio de pagamentos
?========================================
?          Modos de pagamento           #
?========================================
end sub


Sub PosLinMpgFim 'fim de pagamentos
vuMpgVto  = VarCom("Mpg_Vto")                               'valor total
vuMpgScx  = VarCom("Mpg_Scx")                               'saldo de caixa

?----------------------------------------
? Total:                    @vaMpgVto   #
print                                                       'separar

?----------------------------------------
? Saldo de caixa:           @vaMpgScx   #
?----------------------------------------
print                                                       'separar
end sub


Sub PosLinMpgDis 'discriminar pagamento
vuMpgNum  = VarCom$("Mpg_Num")                              'numero
vuMpgMoe  = VarCom("Mpg_Moe")                               'moeda
vuMpgDes$ = VarCom$("Mpg_Des")                              'descricao
vuMpgVal  = VarCom("Mpg_Val")                               'valor

if vuMpgVal > 0 then                                        'ha valor ?
?@vaMpgDes                  @vaMpgVal   #
end if
end sub


Sub PosLinMpgEnt 'discriminar entidade
vuEntNum  = VarCom$("Ent_Num")                              'numero
vuEntIdx  = VarCom$("Ent_Idx")                              'indice
vuEntMpg$ = VarCom$("Ent_Mpg")                              'modo de pagamento
vuEntTip$ = VarCom$("Ent_Tip")                              'tipo de entidade
vuEntIde$ = VarCom$("Ent_Ide")                              'identificador (entidade)
vuEntDes$ = VarCom$("Ent_Des")                              'descricao
vuEntVal  = VarCom("Ent_Val")                               'valor

'if vuEntVal > 0 then                                        'ha valor ?
if vuEntIde$ <> "#" then                                    'listar ?
?    @vaEntIde           @vaEntVal      #
end if
end sub


'------------------------------------------------------------------------------
'#ART - Artigos
'------------------------------------------------------------------------------
Sub PosLinArtIni 'inicio de artigos
?========================================
?          Resumo por Artigo            #
?========================================
end sub


Sub PosLinArtFim 'fim de artigos
?----------------------------------------
? Total:                    @toArtVto   #
print                                                       'separar
end sub


Sub PosLinArtDis 'discriminar artigo
vuArtNum  = VarCom("Art_Num")                               'numero/contagem

vuArtCod$ = VarCom$("Art_Cod")                              'codigo do artigo
vuArtDes$ = VarCom$("Art_Des")                              'descricao do artigo

vuArtNrg  = VarCom("Art_Nrg")                               'numero de registos
vuArtQua  = VarCom("Art_Qua")                               'quantidade
vuArtPrc  = VarCom("Art_Prc")                               'preco
vuArtVto  = VarCom("Art_Vto")                               'valor

?@vaArtDes         @vaArtQua@vaArtVto   #
end sub


'------------------------------------------------------------------------------
'#FMA - Familias de artigos
'------------------------------------------------------------------------------
Sub PosLinFmaIni 'inicio de familias de artigos
?========================================
?     Resumo por Familias de Artigo     #
?========================================
end sub


Sub PosLinFmaFim 'fim de familias de artigos
?----------------------------------------
? Total:                    @toFmaVto   #
print                                                       'separar
end sub


Sub PosLinFmaDis 'discriminar familia de artigos
vuFmaNum  = VarCom("Fma_Num")                               'numero/contagem

vuFmaCod$ = VarCom$("Fma_Cod")                              'codigo da familia de artigos
vuFmaDes$ = VarCom$("Fma_Des")                              'descricao da familia de artigos

vuFmaNrg  = VarCom("Fma_Nrg")                               'numero de registos
vuFmaQua  = VarCom("Fma_Qua")                               'quantidade
vuFmaPrc  = VarCom("Fma_Prc")                               'preco
vuFmaVto  = VarCom("Fma_Vto")                               'valor

?@vaFmaDes         @vaFmaQua@vaFmaVto   #
end sub


'------------------------------------------------------------------------------
'#IVA - Resumo de IVA
'------------------------------------------------------------------------------
Sub PosLinIvaIni 'inicio de IVA
?========================================
?            Resumo de IVA              #
?========================================
?   Taxa   Incidencia    IVA      Total #
?----------------------------------------
end sub


Sub PosLinIvaFim 'fim de IVA
?----------------------------------------
? Total:   @toIvaInc @toIvaIva @toIvaVto#
print                                                       'separar
end sub


Sub PosLinIvaDis 'discriminar taxa
vuIvaNum  = VarCom("Iva_Num")                               'numero/contagem

vuIvaCod  = VarCom("Iva_Cod")                               'codigo de IVA
vuIvaTax  = VarCom("Iva_Tax")                               'taxa de IVA

vuIvaNrg  = VarCom("Iva_Nrg")                               'numero de registos
vuIvaInc  = VarCom("Iva_Inc")                               'valor de incidencia
vuIvaIva  = VarCom("Iva_Iva")                               'valor de IVA
vuIvaVto  = VarCom("Iva_Vto")                               'valor total

?@vaIvaCtx @vaIvaInc @vaIvaIva @vaIvaVto#
end sub


'==============================================================================
' Resumo de Caixa - Modo Grafico
'==============================================================================
Sub PosDocG_DocIni 'inicializar documento
call PrpVar_Com                                             'preparar variaveis comuns
end sub


Sub PosDocG_DocFim 'terminar documento
'nada a executar
end sub


Sub PosDocG_LinIni 'inicio de linhas
'nada a executar
end sub


Sub PosDocG_LinFim 'fim de linhas
'nada a executar
end sub


'-------------------------------------------------------------------------
'cabecalho do documento
'-------------------------------------------------------------------------
Sub PosCabG 'cabecalho do documento
call PrpVar_Emp                                             'preparar variaveis da empresa

vuRcxTer$ = VarCom$("Rcx_Ter")                              'terminal
vuRcxOpe$ = VarCom$("Rcx_Ope")                              'operador
vuRcxVnd  = VarCom("Rcx_Vnd")                               'vendedor

vuAbrDt$  = VarCom$("Abr_Dt")                               'abertura - data
vuAbrHr$  = VarCom$("Abr_Hr")                               'abertura - hora
vuFecDt$  = VarCom$("Fec_Dt")                               'fecho    - data
vuFecHr$  = VarCom$("Fec_Hr")                               'fecho    - hora

Margem  =  0                                                'margem esquerda
MargemD = 63                                                'margem direita
coMax = MargemD
esp=30
InicioLinhas = 90                                           'inicio das linhas

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

'Dados da empresa
PrWIN AJT_B,  Margem, 21                                    'posicao base
PrWin FON, "BOLD+"                                          'activar bold
PrWIN FON, 12, 1
PrWIN TX_CTR, 0, 0, 63, 0,left$(vuEmpIde$,16)               'identificacao empresa
PrWin FON, "BOLD-"                                          'desactivar bold

PrWin FON, "BOLD+"                                          'activar bold
PrWIN FON, 10, 1
PrWIN TX_CTR, 0, 0, 63,13,mid$(vuEmpIde$,17,30)             'identificacao empresa
PrWin FON, "BOLD-"                                          'desactivar bold

PrWIN FON ,   8,   1                        	            'activar fonte
PrWIN TX_N, 1,13,"Morada :"                                 'morada - titulo
PrWIN TX_N,22,13,vuEmpMor$                                  'morada da empresa
PrWIN TX_N, 1,17,"Localidade :"                             'localidade - titulo
PrWIN TX_N,22,17,vuEmpLoc$                                  'localidade da empresa
PrWIN TX_N, 1,21,"Código Postal :"                          'codigo postal - titulo
PrWIN TX_N,22,21,vuEmpCpo$                                  'codigo postal da empresa
PrWIN TX_N, 1,25,"Contribuinte Nº :"                        'contribuinte - titulo
PrWIN TX_N,22,25,@vaEmpNif                                  'contribuinte da empresa
PrWIN TX_N, 1,29,"Telefone :"                               'telefone - titulo
PrWIN TX_N,22,29,@vaEmpTel                                  'telefone

PrWIN GR_CX,  0, 33, 63, 72, 2                              'caixa envolvente
PrWIN TX_N, 20, 34,"Resumo de Caixa"                        'titulo da listagem
PrWIN GR_LI,  0, 38, 63, 38, 2                              'linha horizontal de separacao

PrWIN TX_N, 1, 40,"Data :"                                  'data - titulo
PrWIN TX_N,10, 40,@vcDtExt                                  'data
PrWIN TX_N, 1, 44,"Hora :"                                  'hora - titulo
PrWIN TX_N,10, 44,@vcHr                                     'hora
PrWIN TX_N,31, 44,"Utilizador :"                            'utilizador - titulo
PrWIN TX_N,44, 44,@vcUtz                                    'utilizador

PrWIN GR_LI, 0, 48, coMax, 48, 2                            'linha horizontal de separacao

PrWIN TX_N, 1, 50,"Terminal :"                              'terminal - titulo
PrWIN TX_N,22, 50,@vaRcxTer                                 'terminal
PrWIN TX_N, 1, 54,"Operador :"                              'operador - titulo
PrWIN TX_N,22, 54,@vaVnd                                    'codigo do operador
PrWIN TX_N,40, 54,@vaVndNom                                 'nome do operador

PrWIN GR_LI, 0, 58, coMax, 58, 2                            'linha horizontal de separacao

PrWIN TX_N, 1, 60,"Abertura :"                              'abertura - titulo
PrWIN TX_N,22, 60,@vaRcxAbr                                 'abertura
PrWIN TX_N, 1, 64,"Fecho    :"                              'fecho - titulo
PrWIN TX_N,22, 64,@vaRcxFec                                 'fecho
end sub


'-------------------------------------------------------------------------
'linha do documento
'-------------------------------------------------------------------------
Sub DocLinPos 'posicionar linha
pyLin = InicioLinhas + Doc_CntLin * 3                       'posicao Y da linha
PrWIN AJT_B,   Margem, pyLin                                'posicao base
end Sub


Sub DocLinPos_Adi 'posicionar linha adicional
tmp = CntLin("INC", 1)                                      'incrementar contador linhas
call DocLinPos                                              'posicionar linha
end Sub


Sub PosLinGAjt 'ajuste de linhas
'nada a executar                                            'linha de separacao
end sub


'------------------------------------------------------------------------------
'#GRP - Grupo de documentos
'------------------------------------------------------------------------------
Sub PosLinGGrpIni 'inicio de grupo
vuGrpTdo$ = VarCom$("Grp_Tdo")                              'tipo de documento
vuGrpDes$ = VarCom$("Grp_Des")                              'descricao
vuGrpCnt  = 0                                               'limpar contador
vuGrpVto  = 0                                               'limpar totalizador

call DocLinPos_Adi                                          'posicionar linha

PrWIN GR_CX, 0, 1, coMax, 5, 2                              'caixa envolvente
PrWIN TX_N,  1, 1.5,@vaGrpIde                               'identificacao grupo
end sub


Sub PosLinGGrpFim 'fim de grupo
vuGrpTip$ = VarCom$("Grp_Tip")                              'tipo do grupo

usaTot = 1                                                  'assume usar total
if vuGrpTip$ = "CNF" then                                   'conferencia ?
   usaTot = 0                                               'nao usar total
end if

if usaTot = 1 then                                          'listar totais ?
   call DocLinPos_Adi
   PrWIN TX_N,  1, 1,"Total :"                              'identificacao grupo
   PrWIN TX_NP,22, 1,"N",@vaGrpCnt                          'contador grupo
   PrWIN TX_NP,40, 1,"N",@vaGrpVto                          'total
else
   call DocLinPos_Adi
   PrWIN TX_N,  1, 1,"Total :"                              'identificacao grupo
   PrWIN TX_NP,22, 1,"N",@vaGrpCnt                          'contador grupo
end if
end sub


Sub PosLinGGrpDis 'discriminar grupo
vuGrpTms$ = VarCom$("Grp_Tms")                              'time stamp
vuGrpDt$  = VarCom$("Grp_Dt")                               'data
vuGrpHr$  = VarCom$("Grp_Hr")                               'hora
vuGrpSit$ = VarCom$("Grp_Sit")                              'situacao do documento
vuGrpNdo$ = VarCom$("Grp_Ndo")                              'numero documento
vuGrpVdo  = VarCom("Grp_Vdo")                               'valor

call DocLinPos                                              'posicionar

PrWIN TX_N,  1, 3,@vaGrpTsr                                 'dia/hora
PrWIN TX_NP,22, 3,"N",@vaGrpNdo                             'numero documentos
PrWIN TX_NP,40, 3,"N",@vaGrpVdo                             'valor

if vuGrpSit$ = "ANL" then                                   'anulado ?
   PrWIN TX_N, 40, 6,"(Anulado)"                            'sim
else 
   vuGrpCnt  = vuGrpCnt + 1                                 'contar
   vuGrpVto  = vuGrpVto + vuGrpVdo                          'acumular valor
end if
end sub


'------------------------------------------------------------------------------
'#MPG - Modos de pagamento
'------------------------------------------------------------------------------
Sub PosLinGMpgIni 'inicio de pagamentos
call DocLinPos_Adi                                     'posicionar linha
PrWIN GR_CX, 0, 1, coMax, 4, 2                         'caixa envolvente
PrWIN TX_CTR,1, 1, coMax, 4,"Modos de Pagamento"       'titulo da listagem
end sub


Sub PosLinGMpgFim 'fim de pagamentos
vuMpgVto  = VarCom("Mpg_Vto")                          'valor total
vuMpgScx  = VarCom("Mpg_Scx")                          'saldo de caixa

call DocLinPos_Adi                                     'posicionar linha
PrWIN TX_N,  1, 1,"Total :"                            'titulo
PrWIN TX_NP,40, 1,"N",@vaMpgVto                        'valor total

call DocLinPos_Adi                                     'posicionar linha (separacao)
call DocLinPos_Adi                                     'posicionar linha
PrWIN TX_N,  1, 1,"Saldo de Caixa :"                   'titulo
PrWIN TX_NP,40, 1,"N",@vaMpgScx                        'saldo de caixa
call DocLinPos_Adi                                     'posicionar linha
end sub


Sub PosLinGMpgDis 'discriminar pagamento
vuMpgNum  = VarCom$("Mpg_Num")                         'numero
vuMpgMoe  = VarCom("Mpg_Moe")                          'moeda
vuMpgDes$ = VarCom$("Mpg_Des")                         'descricao
vuMpgVal  = VarCom("Mpg_Val")                          'valor

'msgbox "","MPG",vuMpgNum+" "+VuMpgDes$

if vuMpgVal > 0 then                                   'ha valor ?
   'call DocLinPos                                      'posicionar linha
   call DocLinPos_Adi                                  'posicionar linha

   'msgbox "","MPG/LIN",DOC_CntLin

   PrWIN TX_N,  1, 1,@vaMpgDes                         'modo pagamento discriminado
   PrWIN TX_NP,40, 1,"N",@vaMpgVal                     'valor
end if
end sub


Sub PosLinGMpgEnt 'discriminar entidade
vuEntNum  = VarCom$("Ent_Num")                         'numero
vuEntIdx  = VarCom$("Ent_Idx")                         'indice
vuEntMpg$ = VarCom$("Ent_Mpg")                         'modo de pagamento
vuEntTip$ = VarCom$("Ent_Tip")                         'tipo de entidade
vuEntIde$ = VarCom$("Ent_Ide")                         'identificador (entidade)
vuEntDes$ = VarCom$("Ent_Des")                         'descricao
vuEntVal  = VarCom("Ent_Val")                          'valor

if vuEntIde$ <> "#" then                               'listar ?
   'call DocLinPos                                      'posicionar linha
   call DocLinPos_Adi                                  'posicionar linha

   PrWIN TX_N,  1, 1,@vaEntIde                         'entidade
   PrWIN TX_NP,40, 1,"N",@vaEntVal                     'valor
end if
end sub


'------------------------------------------------------------------------------
'#ART - Artigos
'------------------------------------------------------------------------------
Sub PosLinGArtIni 'inicio de artigos
call DocLinPos_Adi                                         'posicionar linha
PrWIN GR_CX, 0, 1, coMax, 4, 2                             'caixa envolvente
PrWIN TX_CTR,1, 1, coMax, 4,"Resumo por Artigo"            'titulo da listagem
end sub


Sub PosLinGArtFim 'fim de artigos
call DocLinPos_Adi                                         'posicionar linha
PrWIN TX_N,  1, 1,"Total :"                                'titulo
PrWIN TX_NP,40, 1,"N",@toArtVto                            'total dos artigos
call DocLinPos_Adi                                         'posicionar linha
end sub


Sub PosLinGArtDis 'discriminar artigo
vuArtNum  = VarCom("Art_Num")                              'numero/contagem

vuArtCod$ = VarCom$("Art_Cod")                             'codigo do artigo
vuArtDes$ = VarCom$("Art_Des")                             'descricao do artigo

vuArtNrg  = VarCom("Art_Nrg")                              'numero de registos
vuArtQua  = VarCom("Art_Qua")                              'quantidade
vuArtPrc  = VarCom("Art_Prc")                              'preco
vuArtVto  = VarCom("Art_Vto")                              'valor

call DocLinPos                                             'posicionar linha

PrWIN TX_N,  1, 1,@vaArtDes                                'entidade
PrWIN TX_NP,22, 1,"N",@vaArtQua                            'quantidades
PrWIN TX_NP,40, 1,"N",@vaArtVto                            'valor total
end sub


'------------------------------------------------------------------------------
'#FMA - Familias de artigos
'------------------------------------------------------------------------------
Sub PosLinGFmaIni 'inicio de familias de artigos
call DocLinPos                                                 'posicionar linha

PrWIN GR_CX,  1, 1, coMax, 4, 2                                'caixa envolvente
PrWIN TX_CTR, 1, 1, coMax, 4,"Resumo por Famílias de Artigo"   'titulo da listagem
end sub


Sub PosLinGFmaFim 'fim de familias de artigos
call DocLinPos                                             'posicionar linha

PrWIN TX_N,  1, 3,"Total :"                                'titulo
PrWIN TX_NP,40, 3,"N",@toFmaVto                            'total dos artigos
call DocLinPos_Adi                                         'posicionar linha
end sub


Sub PosLinGFmaDis 'discriminar familia de artigos
vuFmaNum  = VarCom("Fma_Num")                              'numero/contagem

vuFmaCod$ = VarCom$("Fma_Cod")                             'codigo da familia de artigos
vuFmaDes$ = VarCom$("Fma_Des")                             'descricao da familia de artigos

vuFmaNrg  = VarCom("Fma_Nrg")                              'numero de registos
vuFmaQua  = VarCom("Fma_Qua")                              'quantidade
vuFmaPrc  = VarCom("Fma_Prc")                              'preco
vuFmaVto  = VarCom("Fma_Vto")                              'valor

call DocLinPos                                             'posicionar linha

PrWIN TX_N,  1, 1,@vaFmaDes                                'familia
PrWIN TX_NP,22, 1,"N",@vaFmaQua                            'quantidades
PrWIN TX_NP,40, 1,"N",@vaFmaVto                            'valor total
end sub


'------------------------------------------------------------------------------
'#IVA - Resumo de IVA
'------------------------------------------------------------------------------
Sub PosLinGIvaIni 'inicio de IVA
call DocLinPos_Adi                                        'posicionar linha

PrWIN GR_CX,  1, 1, coMax, 4, 2                           'caixa envolvente
PrWIN TX_CTR, 1, 1, coMax, 4,"Resumo do IVA"              'titulo da listagem
PrWIN GR_CX,  1, 4, coMax, 8, 2                           'caixa envolvente
PrWIN TX_CTR, 1, 4, coMax, 8,"Taxa      Incidência            IVA                Total"                          'titulo da listagem
end sub


Sub PosLinGIvaFim 'fim de IVA
call DocLinPos_Adi                                   'posicionar linha

PrWIN TX_N,  1, 1,"Total"                            'titulo
PrWIN TX_NP,12, 1,"N",@toIvaInc                      'total incidencias
PrWIN TX_NP,29, 1,"N",@toIvaIva                      'total IVA
PrWIN TX_NP,45, 1,"N",@toIvaVto                      'total
call DocLinPos_Adi                                   'posicionar linha
end sub


Sub PosLinGIvaDis 'discriminar taxa
vuIvaNum  = VarCom("Iva_Num")                        'numero/contagem

vuIvaCod  = VarCom("Iva_Cod")                        'codigo de IVA
vuIvaTax  = VarCom("Iva_Tax")                        'taxa de IVA

vuIvaNrg  = VarCom("Iva_Nrg")                        'numero de registos
vuIvaInc  = VarCom("Iva_Inc")                        'valor de incidencia
vuIvaIva  = VarCom("Iva_Iva")                        'valor de IVA
vuIvaVto  = VarCom("Iva_Vto")                        'valor total

call DocLinPos_Adi                                   'posicionar linha
PrWIN TX_N,  1, 2,@vaIvaCtx                          'taxa
PrWIN TX_NP,12, 2,"N",@vaIvaInc                      'incidencias
PrWIN TX_NP,29, 2,"N",@vaIvaIva                      'IVA
PrWIN TX_NP,45, 2,"N",@vaIvaVto                      'total
end sub


'-------------------------------------------------------------------------
'fim do documento
'-------------------------------------------------------------------------
Sub PosFimG 'total do documento
FimDoc = pyLin + 6                                       'posicao final do documento (relativa a ultima linha)
PrWIN AJT_B, Margem, FimDoc                              'posicao base

call DocLinPos_Adi                                       'incrementar/posicionar linha
PrWIN GR_CX, 0, 1, coMax, 8, 2                           'caixa envolvente
PrWIN TX_N,1, 4,"Conferido :"                            'titulo da listagem

PrWin FP                                                 'fim de pagina
end sub

##

