'Nome       : CtaCtb.std
'Tipo       : LST
'Data       : 2012/07/22
'Versao     : 1.0
'Descricao  : CTA - Tabela de contabilizacao

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   ____/__/__ --------------------------------------------------
'Versao base


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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=TAB
Nome                       [DocNom]=TAB,Tabela

'formato
Saida/Impressora           [DocPrt]=
Linhas por pagina          [DocLpg]=50
Colunas por linha          [DocCol]=120
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=

'funcoes de listagem
Listar cabecalho            [FxCAB]=TabCtb_Cab
Listar linhas               [FxLIN]=TabCtb_Lin; +
                                   +Mco,0; McoFim,0; +
                                   +Zpa,0; ZpaFim,0; +
                                   +Grp,0; GrpFim,0; +
                                   +Tpv,0; TpvFim,0; +
                                   +Ctb,0; CtbFim,0
Listar fim                  [FxFIM]=TabCtb_Fim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Tipo     = MemTxt$(1)
Pag      = Doc_CntPag
Tit080   = TxTit$("TT=10CPI, LD, PT=40C",Memtxt$(1))
Tit132   = TxTit$("TT=16CPI, LD, PT=66C",Memtxt$(1))
DataExt  = FrmVal$(Sig_DtHoje,45,0)

vaObs    = usaObs$                              'observacaoes

'- dados a listar -------------------------------------------------------------
'conta
vaCtuCod = CTA_MST_Ct$                          'codigo da conta
vaCtuNom = CTA_MST_Nome$                        'nome

'valores
vaDocDtu = FrmDt$("",docDtu)                    'data
vaDocVto = FrmNum$(12.2,docVto)                 'valor

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

'valores
toDocVto = FrmNum$(12.2,Total("vaDocVto",0))    'valor - total
s1DocVto = FrmNum$(12.2,Total("vaDocVto",1))    'valor - subtotal 1
s2DocVto = FrmNum$(12.2,Total("vaDocVto",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


Sub FxIni 'funcao de inicializacao
'nada a excutar
end sub


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


Sub Lst_AJT 'ajuste
'nada a excutar
end sub


'=============================================================================
'- Comum ---------------------------------------------------------------------
'=============================================================================
'-----------------------------------------------------------------------------
'- [VAR] - Variaveis ---------------------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Var_Con 'consultar variaveis
vuRcxTer$ = VarCom$("Rcx_Ter")                              'terminal
end sub


Sub Com_Var_Prp 'preparar variaveis
usaObs$ = ""                                       'anular observacoes
call Com_Var_Con                                   'consultar variaveis

'preparar valores
'call Com_Var_PrpTdo                                'preparar variaveis - tipo de documento
call Com_Var_PrpCtu                                'preparar variaveis - conta
end sub


'-----------------------------------------------------------------------------
'- [TXT] - Listar em modo texto ----------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Txt_Cab 'cabecalho - texto
'cabTit$ = "Titulo"
FxDiv LstIde,10CPI,0
'print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI",comCabTit$)
print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",comCabTit$)

?Data: @DataExt                                                                                                       Folha No: @Pag#
?====================================================================================================================================
'?  Documento          Data      Conta             Nome                                         Valor      Cert.    Observacoes      #
''123456789.12345   2010/01/02   123456789.12345   123456789.123456789.123456789.12345   -123,456,789.12   1234   123456789.123456789.
'?====================================================================================================================================

print
end sub


Sub Com_Txt_LinExe 'executar linha
'? @vDocNdv         @vaDocDtu    @vaCtuCod         @vaCtuNom                             @vaDocVto         @vaCer @vaObs             #
? @vDocNdv         @vaDocDtu    @vaCtuCod         @vaCtuNom                             @vaDocVto         @vhImp @vaObs             #
'123456789.12345   2010/01/02   123456789.12345   123456789.123456789.123456789.12345   -123,456,789.12   1234   123456789.123456789.
end sub


Sub Com_Txt_Fim 'terminar
?====================================================================================================================================
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub


Sub Com_Txt_LinTit1 'titulo 1
if titIde$ <> "" then                              'ha titulo ?
   tmp = CntLin("INC", 3)                          'contar linhas

   print string$(132,"-")                          'listar separador
   print tab(5) titIde$                            'listar 
   print string$(132,"-")                          'listar separador
end if

titIde$ = ""                                       'anular titulo
end sub


Sub Com_Txt_LinTit2 'titulo 2
if titIde$ <> "" then                              'ha titulo ?
   tmp = CntLin("INC", 1)                          'contar linhas
   print tab(5) titIde$                            'listar 
end if

titIde$ = ""                                       'anular titulo
end sub


Sub Com_Txt_LinSbt1 'subtotal 1
nrg = TotCnt("vDocNdv",1)                          'numero de registos

if nrg > 1 then                                    'listar numero ?
?           @s1Nrg                                                              #
   tmp=CntLin("INC", 1)                            'contar linhas
end if

tmp=CntLin("INC", 1)                               'contar linhas
print                                              'separar

x = TotLpz(1)                                      'limpar totais
end sub


Sub Com_Txt_LinSbt2 'subtotal 2
nrg = TotCnt("vDocNdv",2)                          'numero de registos

if nrg > 1 then                                    'listar numero ?
?           @s2Nrg                                                              #
   tmp=CntLin("INC", 1)                            'contar linhas
end if

if sepSbt2 = 1 then                                'separar subtotal 2 ?
   tmp=CntLin("INC", 1)                            'contar linhas
   print                                           'separar
end if

sepSbt2 = 1                                        'separar subtotal 2
x = TotLpz(2)                                      'limpar totais
end sub


'==============================================================================
'- [TXT] - Listar em modo texto -----------------------------------------------
'==============================================================================
'Listar linhas               [FxLIN]=TabCtb_Lin; Mco,0; Zpa,0; Grp,0; Ctb,0


'------------------------------------------------------------------------------
'- [TXT] - Documentos pendentes -----------------------------------------------
'------------------------------------------------------------------------------
Sub TabCtb_Cab 'cabecalho
'msgbox "","TAB", "CAB"

comCabTit$ = "Tabela de Contabilização"            'titulo

call Com_Txt_Cab                                   'listar
end sub


Sub TabCtb_Lin 'linha
'msgbox "","TAB", "LIN"

'call Com_Var_Prp                                   'preparar variaveis
'call Com_Txt_LinExe                                'executar linha
end sub


Sub TabCtb_Fim 'terminar
'msgbox "","TAB", "FIM"
call Com_Txt_Fim                                   'listar
end sub


Sub TabCtb_LinMco 'linha/modo de contabilizacao
'tmp = CntLin("MIN", 10)                             'minimo de linhas
tmp = CntLin("MIN", 49)                             'minimo de linhas (forcar nova pagina)

grpCod$ = VarCom$("McoCod")                         'codigo
grpDes$ = VarCom$("McoDes")                         'descricao
grpIde$ = grpCod$ + " - " + grpDes$                 'identificacao

'msgbox "","TAB", grpIde$

print string$(132,"=")                              'listar separador
print tab(5) grpIde$                                'listar 
print string$(132,"=")                              'listar separador

tmp = CntLin("INC", 3)                              'contar linhas
end sub


Sub TabCtb_LinMcoFim 'linha/fim de modo de contabilizacao
'tmp = CntLin("MIN", 10)                             'minimo de linhas
'print string$(132,"=")                              'listar separador
'print                                               'listar separacao
'tmp = CntLin("INC", 3)                              'contar linhas
end sub


Sub TabCtb_LinZpa 'linha/zona
tmp = CntLin("MIN", 10)                             'minimo de linhas

zpaCod$ = VarCom$("ZpaCod")                         'codigo
zpaDes$ = VarCom$("ZpaDes")                         'descricao
zpaIde$ = "ZONA: " + zpaCod$ + " - " + zpaDes$      'identificacao

print string$(132,"-")                              'listar separador
print tab(5) zpaIde$                                'listar 
print string$(132,"-")                              'listar separador

tmp = CntLin("INC", 2)                              'contar linhas
end sub


Sub TabCtb_LinZpaFim 'linha/fim de zona
'tmp = CntLin("MIN", 10)                             'minimo de linhas
'print string$(132,"-")                              'listar separador
'print                                               'listar separacao
'tmp = CntLin("INC", 3)                              'contar linhas
end sub


Sub TabCtb_LinTpv 'linha/tipo de valor
tmp = CntLin("MIN", 10)                             'minimo de linhas

tpvCod$ = VarCom$("TpvCod")                         'codigo
tpvDes$ = VarCom$("TpvDes")                         'descricao
tpvIde$ = tpvCod$ + " - " + tpvDes$                 'identificacao

print                                               'listar separacao
print tab(5) tpvIde$                                'listar 
print string$(132,"-")                              'listar separador

tmp = CntLin("INC", 2)                              'contar linhas
end sub


Sub TabCtb_LinTpvFim 'linha/fim de tipo de valor
'tmp = CntLin("MIN", 10)                             'minimo de linhas
'print string$(132,"-")                              'listar separador
'print                                               'listar separacao
'tmp = CntLin("INC", 3)                              'contar linhas
end sub


Sub TabCtb_LinGrp 'linha/grupo
tmp = CntLin("MIN", 10)                             'minimo de linhas

grpCod$ = VarCom$("GrpCod")                         'codigo
grpDes$ = VarCom$("GrpDes")                         'descricao
grpIde$ = "GRUPO: " + grpCod$ + " - " + grpDes$     'identificacao

print                                               'listar separacao
print tab(5) grpIde$                                'listar 
' 001     123456789+123456789+123456789+  123456789+123456789+123456789+123456789+  123456789+123456789+123456789+123456789+
'====================================================================================================================================
print string$(132,"-")                              'listar separador
? Codigo  Descricao                               Debito                                 Credito                                Obs.#
' 001       123456789+123456789+123456789+1234567 123456789+123456789+123456789+12345678 123456789+123456789+123456789+12345678
' <COD----> <DES--------------------------------> <DEB---------------------------------> <CRE---------------------------------> <--->
' <COD----> <DES--------------------------------> <DEB---------------------------------> <CRE---------------------------------> <OBS>

print string$(132,"-")                              'listar separador

tmp = CntLin("INC", 5)                              'contar linhas
end sub


Sub TabCtb_LinGrpFim 'linha/Fim de grupo
print                                               'listar separacao
print                                               'listar separacao

tmp = CntLin("INC", 2)                              'contar linhas
end sub


Sub x_TabCtb_LinTpv 'linha/tipo de valor
'tmp = CntLin("MIN", 10)                             'minimo de linhas
tmp = CntLin("INC", 1)                              'contar linhas

ctbIdx  = VarCom("CtbIdx")                          'indice
ctbNrg  = VarCom("CtbNrg")                          'numero do registo
ctbCod$ = VarCom$("CtbCod")                         'codigo
ctbDes$ = VarCom$("CtbDes")                         'descricao
ctbDeb$ = VarCom$("CtbDeb")                         'debito
ctbCre$ = VarCom$("CtbCre")                         'credito
ctbObs$ = VarCom$("CtbObs")                         'observacoes


if ctbNrg = 1 then                                  'primeira conta ?
   print tab(002) ctbCod$;                          'listar 
   print tab(012) ctbDes$;                          'listar 
   print tab(050) ctbDeb$;                          'listar 
   print tab(089) ctbCre$;                          'listar 
   print tab(128) ctbObs$                           'listar 
else
   print tab(002) ctbCod$;                          'listar 
   print tab(012) ctbDes$;                          'listar 
   print tab(050) ctbDeb$;                          'listar 
   print tab(089) ctbCre$;                          'listar 
   print tab(128) ctbObs$                           'listar 
end if

'tmp = CntLin("INC", 5)                              'contar linhas
end sub


Sub TabCtb_LinTpvFim 'linha/fim de tipo de valor
'nada a executar
end sub


Sub TabCtb_LinCtb 'linha/contabilizacao
'tmp = CntLin("MIN", 10)                             'minimo de linhas
tmp = CntLin("INC", 1)                              'contar linhas

ctbIdx  = VarCom("CtbIdx")                          'indice
ctbNrg  = VarCom("CtbNrg")                          'numero do registo
ctbCod$ = VarCom$("CtbCod")                         'codigo
ctbDes$ = VarCom$("CtbDes")                         'descricao
ctbDeb$ = VarCom$("CtbDeb")                         'debito
ctbCre$ = VarCom$("CtbCre")                         'credito
ctbObs$ = VarCom$("CtbObs")                         'observacoes

if ctbNrg = 1 then                                  'primeira linha da conta ?
   print tab(002) ctbCod$;                          'listar 
   print tab(012) ctbDes$;                          'listar 
   print tab(050) ctbDeb$;                          'listar 
   print tab(089) ctbCre$;                          'listar 
   print tab(128) ctbObs$                           'listar 
else
   print tab(002) ctbCod$;                          'listar 
   print tab(012) ctbDes$;                          'listar 
   print tab(050) ctbDeb$;                          'listar 
   print tab(089) ctbCre$;                          'listar 
   print tab(128) ctbObs$                           'listar 
end if

'tmp = CntLin("INC", 5)                              'contar linhas
end sub


Sub TabCtb_LinCtbFim 'linha/fim de contabilizacao
'nada a executar
end sub


##


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