'Nome       : GtsMab.std
'Tipo       : LST
'Data       : 2007/06/03
'Versao     : 1.0
'Descricao  : GTS - Listagens de Movimentos em Aberto

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0c  2007/??/?? --------------------------------------------------
'Versao base


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Especifico 1                      [EspOp1]=Opcao 1
##


'==============================================================================
#DOC - Relatorio de cobrancas (Diario)
'==============================================================================
Tipo                       [DocTip]=MabDia
Nome                       [DocNom]=MabDia_Xls,Relatório de Cobranças (XLS)

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

'especifico do documento
Opcao especifica           [DocEsp]=OpcEsp=???

'funcoes de listagem
Base para documento         [FxDOC]=MabCobXls
Listar cabecalho            [FxCAB]=MabCobXls_Cab
Listar linhas               [FxLIN]=MabCobXls_Lin,0; Ajt,0; Deb,0; Cre,0; Pre,0; Sep,0; GrpIde,0; GrpTot,0
Listar fim                  [FxFIM]=MabCobXls_Fim

Matriz auxiliar            [DocMat]=GtsMabCob.xls
##


'==============================================================================
#VAR - Definicao de variaveis
'==============================================================================
'MemTxt$(1)    - titulo

'variaveis
Tit132   = TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",Memtxt$(1))
Pag      = Doc_CntPag

DataExt  = FrmVal$(Sig_DtHoje,45,0)
##


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



'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------------->'Comentario (58)
'---------------------------------------------------->'Comentario (55)
'------------------------------------------------->'Comentario (52)
'---------------------------------------------->'Comentario (49)
'------------------------------------------->'Comentario (46)
'---------------------------------------->'Comentario (43)
'------------------------------------->'Comentario (40)


'==============================================================================
'= COM = Funcoes comuns =======================================================
'==============================================================================
Sub Lst_AJT
'nada a executar
end sub


'==============================================================================
'= XLS - Funcoes comuns =======================================================
'==============================================================================
Sub MabXls_DocIni 'inicializar documento
'msgbox "","DocIni"

call XlsComDoc_IniMat                              'inicializar documento por matriz

'preparacao especifica
res = XlsWks("Valores")                            'activar worksheet

'preparar cabecalho
empNum$ = Emp_Inf_Cod$                             'numero da empresa
empNom$ = Emp_Inf_Nome$                            'nome da empresa
lstTit$ = MemTxt$(1)                               'titulo da listagem
lstTip$ = MemTxt$(2)                               'tipo da listagem
lstDt$  = FrmDt$("EXT", Sig_DtHoje)                'data para listagem

ide$    = Memtxt$(1)                               'identificacao
ideCab$ = ide$                                     'identificacao de cabecalho

docIde$ = DocOpc$("DocIde")                        'identificacao do documento
docNom$ = DocOpc$("DocNom")                        'nome do documento

ideCab$ = docIde$                                  'identificacao
lstTip$ = docNom$                                  'tipo

res = XlsIdeLst("Emp_Num", empNum$)                'numero da empresa
res = XlsIdeLst("Emp_Nom", empNom$)                'nome da empresa
res = XlsIdeLst("Lst_Tit", ideCab$)                'titulo da listagem
res = XlsIdeLst("Lst_Tipo", lstTip$)               'tipo da listagem
res = XlsIdeLst("Lst_Data", lstDt$)                'data

call XlsComLin_Ini                                 'iniciar linhas
end sub


Sub MabXls_DocFim 'terminar documento
'res = XlsWksAct("A", 1)                            'activar worksheet
call XlsComDoc_Fim                                 'terminar/mostrar documento
end sub


'==============================================================================
'= DIA = Diario ===============================================================
'==============================================================================
'------------------------------------------------------------------------------
'==============================================================================
'- MabCobXls - Relatorio de cobrancas - XLS -----------------------------------
'==============================================================================
Sub MabCobXls_DocIni 'inicializar documento
xlsOpcNfi$ = "RND:GtsMabCob.xls"                   'nome do ficheiro a gerar
xlsOpcWks$ = ""                                    'nome da woorksheet
call MabXls_DocIni                                 'inicializar documento
call CobXlsCom_AcmLpzTot                           'limpar acumuladores totais

'colunas a usar
coCod = 2                                          'codigo
coNom = 3                                          'nome
coTdo = 4                                          'tipo de documento
coNdo = 5                                          'numero de documento
coDes = 6                                          'descricao do documento
coDte = 7                                          'data de emissao
coDtv = 8                                          'data de vencimento
coNdv = 9                                          'numero de dias de vencimento
coDeb = 10                                         'valor a debito
coCre = 11                                         'valor a credito
coScc = 12                                         'saldo da conta
coTps = 13                                         'tipo de saldo da conta
coObs = 14                                         'observacoes
end sub


Sub MabCobXls_IncLin 'incrementar linhas
call XlsComLin_IncRep                              'incrementar linha + repor formato normal

'zon$= XlsZon$(liUsa, coNom)                        'zona do nome
zon$= XlsZon$(liUsa, coCod, liUsa, coNom)          'zona de identificacao
res = XlsAli(zon$, "<")                            'alinhamento
end sub


Sub MabCobXls_DocFim 'terminar documento
call MabCobXls_LinTotGer                           'totais gerais
call MabXls_DocFim                                 'terminar/mostrar documento
end sub


Sub MabCobXls_Fim 'terminar
'call MabXls_DocFim                                 'terminar/mostrar documento
end sub


Sub MabCobXls_Lin 'linha de valores
'nada a executar
end sub


Sub MabCobXls_LinGrpIde 'linha de identificacao de grupo (conta)
call CobXlsCom_AcmZer                              'limpar acumuladores
'call XlsComLin_IncRep                              'incrementar linha + repor formato normal
call MabCobXls_IncLin                              'incrementar linha

memCt$ = Cta_Mst_Ct$                               'guardar conta

res = XlsLst(liUsa, coCod, Cta_Mst_Ct$)            'codigo da conta
res = XlsLst(liUsa, coNom, Cta_Mst_Nome$)          'nome da conta
res = XlsLst(liUsa, coDes, Cta_Ang_Contacto$)      'contacto
res = XlsLst(liUsa, coObs, Cta_Ang_Telef$)         'telefone

zon$= XlsZon$(liUsa, coCod, liUsa, coObs)          'zona para border
res = XlsEnvZon(zon$, "T,B", "C", "M", 1)          'desenhar border
end sub


Sub MabCobXls_LinDeb 'linha de valor a debito
call CobXlsCom_AcmDeb                              'acumular documento a debito
call MabCobXls_LinExe                              'executar listagem da linha

preAcm = 0                                         'limpar acumulador de prestacaoes
end sub


Sub MabCobXls_LinCre 'linha de valor a credito
call CobXlsCom_AcmCre                              'acumular documento a credito
call MabCobXls_LinExe                              'executar listagem da linha

preAcm = 0                                         'limpar acumulador de prestacaoes
end sub


Sub MabCobXls_LinPre 'linha de valor de prestacao
call MabCobXls_IncLin                              'incrementar linha

tdo$    = Gts_Pre_Tdoc$                            'tipo de documento
ndo$    = Gts_Pre_Ndoc$                            'numero de documento

pNpr$   = TxtCv$(Gts_Pre_PreNpr)                   'numero de prestacoes
pNum$   = TxtCv$(Gts_Pre_PreNum)                   'numero da prestacao
pTxi$   = "(" +pNpr$ + "/" + pNum$ + ")"           'informacao de prestacoes

dtv$    = FrmDt$("", Gts_Pre_Dtv)                  'data de vencimento
vPre    = Gts_Pre_Vmn                              'valor da prestacao
ndv$    = FrmNdo$("46", tdo$, ndo$)                'numero do documento formatado
nda$    = trim$(ndv$)                              'numero do documento formatado/ajustado

vObs$   = tdoc$ + " " + nda$ + " " + pTxi$         'observacoes

preAcm = preAcm + vPre                             'acumular valor de prestacoes

'res = XlsLst(liUsa, coTdo, docTdo$)                'tipo do documento
'res = XlsLst(liUsa, coNdo, docNum$)                'numero do documento
'res = XlsLst(liUsa, coDes, Cta_Pab_Descr$)         'descricao do documento
'res = XlsLst(liUsa, coDte, dte$)                   'data de emissao
'res = XlsLst(liUsa, coDtv, dtv$)                   'data de vencimento
'res = XlsLst(liUsa, coNdv, ndv)                    'dias de vencimento

'res = XlsLst(liUsa, coDeb, vgDeb)                  'valor - debito


res = XlsLst(liUsa, coDtv, dtv$)                   'data de vencimento
res = XlsLst(liUsa, coDeb, vPre)                   'valor
res = XlsLst(liUsa, coObs, vObs$)                  'observacoes
end sub


Sub MabCobXls_LinSep 'linha de separacao
call MabCobXls_IncLin                              'incrementar linha

tps$ = VarCom$("SepTip")                           'tipo de separacao

if tps$ = "PRE" then                               'prestacaoes ?
   res = XlsLst(liUsa, coCre, preAcm)              'valor das prestacoes
   zon$= XlsZon$(liUsa, coDtv, liUsa, coCre)       'zona para border
   res = XlsEnvZon(zon$, "T", "C", "F", 1)         'desenhar border
end if
end sub


Sub MabCobXls_LinExe 'executar listagem da linha
cntGrp = cntGrp + 1                                'limpar contador de grupo
'call XlsComLin_IncRep                              'incrementar linha + repor formato normal
call MabCobXls_IncLin                              'incrementar linha

docTdo$ = Cta_Pab_Tdoc$                            'tipo do documento
docNdo$ = Cta_Pab_Ndoc$                            'numero de documento
docNum$ = FrmNdo$("46", docTdo$, docNdo$)          'numero do documento formatado
docIde$ = docTip$ + "  " + docNum$                 'identificacao do documento

'docPag$ = GtsPabLigPag$("")                        'ligacao a pagamento

dte$    = FrmDt$("", Cta_Pab_Dtl)                  'data de emissao
dtv$    = FrmDt$("", Cta_Pab_Dtv)                  'data de vencimento

'res = TxtSepMul(MemTxt$(20), ")")                  'separar numero de dias
'ndv = 0 - ConNum(2)                                'dias de vencimento

if Cta_Pab_Dtv = 0 then                            'sem data de vencimento ?
   dtb = Cta_Pab_Dtl                               'data base a usar
else
   dtb = Cta_Pab_Dtv                               'data base a usar
end if
ndv = DataNdi(dtb, Sig_DtHoje)                     'numero de dias de vencimento

res = XlsLst(liUsa, coTdo, docTdo$)                'tipo do documento
res = XlsLst(liUsa, coNdo, docNum$)                'numero do documento
res = XlsLst(liUsa, coDes, Cta_Pab_Descr$)         'descricao do documento
res = XlsLst(liUsa, coDte, dte$)                   'data de emissao
res = XlsLst(liUsa, coDtv, dtv$)                   'data de vencimento
res = XlsLst(liUsa, coNdv, ndv)                    'dias de vencimento
res = XlsLst(liUsa, coObs, docPag$)                'observacoes

if vgDeb <> 0 then                                 'tem valor a debito ?
   res = XlsLst(liUsa, coDeb, vgDeb)               'valor - debito
end if

if vgCre <> 0 then                                 'tem valor a credito ?
   res = XlsLst(liUsa, coCre, vgCre)               'valor - credito
end if
End sub


Sub MabCobXls_LinGrpTot 'total do grupo (conta)
call CobXlsCom_Scc                                 'saldo da conta

totIde$ = "Subtotal: "                             'identificacao

call MabCobXls_LinTotExe                           'executar listagem da linha de totais
end sub


Sub MabCobXls_LinTotExe 'executar listagem da linha de totais
'call XlsComLin_IncRep                              'incrementar linha + repor formato normal
call MabCobXls_IncLin                              'incrementar linha

if vaScc < 0 then                                  'saldo credor ?
   tps$ = "C"                                      'tipo do saldo
else
   tps$ = "D"                                      'tipo do saldo
end if

res = XlsLst(liUsa, coNom, totIde$)                'tipo de total
res = XlsLst(liUsa, coDeb, vaDeb)                  'valor - debito
res = XlsLst(liUsa, coCre, vaCre)                  'valor - credito
res = XlsLst(liUsa, coScc, vgScc)                  'saldo CC
res = XlsLst(liUsa, coTps, tps$)                   'saldo CC - tipo

'ajustar aspecto
zon$= XlsZonNum$("L", liUsa)                       'zona da linha
res = XlsFon(zon$, ",,I+")                         'activar fonte italico

'zon$= XlsZon$(liUsa, coNom)                        'zona do nome
zon$= XlsZon$(liUsa, coCod, liUsa, coNom)          'zona de identificacao
res = XlsAli(zon$, ">")                            'alinhamento

zon$= XlsZon$(liUsa, coCod, liUsa, coObs)          'zona para border
res = XlsEnvZon(zon$, "T,B", "C", "F", 1)          'desenhar border

'separar
'call XlsComLin_IncRep                              'incrementar linha + repor formato normal
call MabCobXls_IncLin                              'incrementar linha
End sub


Sub MabCobXls_LinTotGer 'totais gerais
call XlsComLin_Fim                                 'fim de linhas
liUsa = linFim                                     'linha a usar

if vtScc < 0 then                                  'saldo credor ?
   tps$ = "C"                                      'tipo do saldo
else
   tps$ = "D"                                      'tipo do saldo
end if

res = XlsLst(liUsa, coDeb, vtDeb)                  'valor - debito
res = XlsLst(liUsa, coCre, vtCre)                  'valor - credito
res = XlsLst(liUsa, coScc, vtScc)                  'saldo CC
res = XlsLst(liUsa, coTps, tps$)                   'saldo CC - tipo
end sub


'==============================================================================
'- CobXlsCom - Relatorio de cobrancas - Funcoes comuns ------------------------
'==============================================================================
Sub CobXlsCom_Scc 'saldo da conta
ct$ = memCt$                                       'conta do grupo
dt  = Sig_DtHoje                                   'data

vgScc = CtaCtSaldo("", dt, ct$)                    'saldo de conta
vaScc = vaScc + vgScc                              'acumular valor
vtScc = vtScc + vgScc                              'acumular valor
end sub


Sub CobXlsCom_AcmLpzTot 'limpar acumuladores totais
vtDoc = 0                                          'documentos
vtDeb = 0                                          'limpar debitos
vtCre = 0                                          'limpar creditos
vtScc = 0                                          'limpar saldo CC
end sub


Sub CobXlsCom_AcmDeb 'acumular documento a debito
vgDoc = Cta_Pab_Vl                                 'total dos documentos
vgDeb = Cta_Pab_Vl                                 'debito
vgCre = 0                                          'credito

vaDoc = vaDoc + vgDoc                              'acumular valor
vaDeb = vaDeb + vgDeb                              'acumular valor

vtDoc = vtDoc + vgDoc                              'acumular valor
vtDeb = vtDeb + vgDeb                              'acumular valor
end sub


Sub CobXlsCom_AcmCre 'acumular documento a credito
vgDoc = 0 - Cta_Pab_Vl                             'total dos documentos
vgDeb = 0                                          'debito
vgCre = Cta_Pab_Vl                                 'credito

vaDoc = vaDoc + vgDoc                              'acumular valor
vaCre = vaCre + vgCre                              'acumular valor

vtDoc = vtDoc + vgDoc                              'acumular valor
vtCre = vtCre + vgCre                              'acumular valor
end sub


Sub CobXlsCom_AcmZer 'limpar acumuladores
vaDoc = 0                                          'documentos
vaDeb = 0                                          'limpar debitos
vaCre = 0                                          'limpar creditos
vaScc = 0                                          'limpar saldo

memCt$ = ""                                        'limpar conta do grupo
cntGrp = 0                                         'limpar contador de grupo
end sub

##


'==============================================================================
#INC - Funcoes comuns
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
Funcoes comuns XLS                =[SIG_LST_DIR.XLS],XlsCom_Pgm.inc
##

