'Nome       : CtaAprDoc.std
'Tipo       : LST
'Data       : 2016/03/17
'Versao     : 1.0
'Descricao  : CTA - Documento de apuramento

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


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Especifico 1                      [EspOp1]=Opcao 1
'Especifico 2                      [EspOp2]=Opcao 2
'Limites a listar                  [EspLim]=?
##


'==============================================================================
#DOC_x - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=CtaApr
Nome                       [DocNom]=CtaApr,Por conta

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=TXT_Cab
Listar linhas               [FxLIN]=TXT_Lin; Tot,2; Rza,2
Listar fim                  [FxFIM]=TXT_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=CtaApr
Nome                       [DocNom]=CtaApr,Documento de Apuramento

'formato
Saida/Impressora           [DocPrt]=PAG_W
'Linhas por pagina          [DocLpg]=55
'Linhas por pagina          [DocLpg]=40
Linhas por pagina          [DocLpg]=50

Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Base para documento         [FxDOC]=GraAprDoc
Listar cabecalho            [FxCAB]=GraAprDoc_Cab
Listar linhas               [FxLIN]=GraAprDoc_Lin; GrpIni,1,5; GrpFim,1,5
Listar fim                  [FxFIM]=GraAprDoc_Fim
##


'==============================================================================
#VAR - Definicao de variaveis
'==============================================================================
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)

'- dados a listar -------------------------------------------------------------
'Linha de Movimento
vaNdo    = FrmNdo$("06",Cta_Mov_Tdoc$,Cta_Mov_Ndoc$)  'numero de documento
vaDes    = Cta_Mov_Descr$                             'descricao
vaDtm    = FrmDt$("",Cta_Mov_Dtl)                     'data do movimento
vaDtv    = FrmDt$("",Cta_Mov_Dtv)                     'data de vencimento
vlVmv    = FrmMoe$("",16,CTA_MOV_Vl)                  'formatar valor

gerDeb   = vuDeb$                                     'geral - debito
gerCre   = vuCre$                                     'geral - credito

anlDeb   = vuDeb$                                     'analitica - debito
anlCre   = vuCre$                                     'analitica - credito

'totais
t0GerDeb = FrmMoe$("",14,acmGerDeb)                   'geral - total a debito
t0GerCre = FrmMoe$("",14,acmGerCre)                   'geral - total a credito

t0CcuDeb = FrmMoe$("",14,acmCcuDeb)                   'CCU - total a debito
t0CcuCre = FrmMoe$("",14,acmCcuCre)                   'CCU - total a credito

t0FcxDeb = FrmMoe$("",14,acmFcxDeb)                   'FCX - total a debito
t0FcxCre = FrmMoe$("",14,acmFcxCre)                   'FCX - total a credito

##


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


'==============================================================================
#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
Call SigLstIni
end sub


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


Sub Lst_AJT 'ajuste
'nada a excutar
end sub


'-----------------------------------------------------------------------------
'- [VAR] - Variaveis ---------------------------------------------------------
'-----------------------------------------------------------------------------
Sub Com_Prp_VarDoc 'preparar variaveis - documento
vuDocTit$ = VarCom$("APR.DOC.TIT")                    'titulo do documento
end sub


Sub Com_Prp_VarMov 'preparar variaveis - movimento
'documento
'vuDocNum  = VarCom("APR.DOC.IDR")                     'numero sequencial
'vuDocIdr  = VarCom("APR.DOC.IDR")                     'IDR
vuDocDoc$ = VarCom$("APR.DOC.DOC")                    'documento
vuDocDtu$ = VarCom$("APR.DOC.DTU")                    'data
vuDocUsa$ = VarCom$("APR.DOC.USA")                    'usa/situacao
vuDocObs$ = VarCom$("APR.DOC.OBS")                    'observacoes

'periodo
vuPerNum  = VarCom("APR.PER.NUM")                     'numero
vuPerIde$ = VarCom$("APR.PER.IDE")                    'identificacao

'grupo
vuGrpChv$ = VarCom$("APR.GRP.CHV")                    'chave
vuGrpTpr$ = VarCom$("APR.GRP.TPR")                    'tipo de registo
vuGrpIde$ = VarCom$("APR.GRP.IDE")                    'identificacao
end sub


Sub Com_AcmIni 'inicializar acumuladores
acmGerDeb = 0                                         'geral - debito
acmGerCre = 0                                         'geral - credito

acmFcxDeb = 0                                         'fluxos de caixa - debito
acmFcxCre = 0                                         'fluxos de caixa - credito

acmCcuDeb = 0                                         'centro de custo - debito
acmCcuCre = 0                                         'centro de custo - credito
end sub


Sub Com_AcmPrp 'preparar acumulacao do movimento
if CTA_Mov_Tv$ = "C" then                             'credito ?
   vMovDeb = 0                                        'valor a debito
   vMovCre = CTA_Mov_Vl                               'valor a credito
else
   vMovDeb = CTA_Mov_Vl                               'valor a debito
   vMovCre = 0                                        'valor a credito
end if

'valores de DEBUG
'vMovDeb = 123456789.45
'vMovCre = 123456789.45

movGerDeb = 0                                         'geral - debito
movGerCre = 0                                         'geral - credito

movFcxDeb = 0                                         'fluxo de caixa - debito
movFcxCre = 0                                         'fluxo de caixa - credito

movCcuDeb = 0                                         'centro de custo - debito
movCcuCre = 0                                         'centro de custo - credito

usaCtGer  = 0                                         'anular uso de contabilidade geral
usaCtAnl  = 0                                         'anular uso de contabilidade analitica

tx1$ = left$(CTA_MOV_Ct$, 1)                          'separar 1 digito da conta
if tx1$ = "0" then                                    'fluxo de caixa ?
   movTip = "FCX"                                     'tipo de movimento
   movFcxDeb = vMovDeb                                'fluxo de caixa - debito
   movFcxCre = vMovCre                                'fluxo de caixa - credito
   usaCtAnl  = 1                                      'activar uso de contabilidade analitica
else
   if tx1$ = "9" then                                 'centro de custo ?
      movTip = "CCU"                                  'tipo de movimento
      movCcuDeb = vMovDeb                             'centro de custo - debito
      movCcuCre = vMovCre                             'centro de custo - credito
      usaCtAnl  = 1                                   'activar uso de contabilidade analitica
   else
      movTip = "GER"                                  'tipo de movimento
      movGerDeb = vMovDeb                             'geral - debito
      movGerCre = vMovCre                             'geral - credito
      usaCtGer  = 1                                   'activar uso de contabilidade geral
    end if
end if
end sub


Sub Com_AcmExe 'acumular dados do movimento
acmGerDeb = acmGerDeb + movGerDeb                     'geral - debito
acmGerCre = acmGerCre + movGerCre                     'geral - credito

acmFcxDeb = acmFcxDeb + movFcxDeb                     'fluxos de caixa - debito
acmFcxCre = acmFcxCre + movFcxCre                     'fluxos de caixa - credito

acmCcuDeb = acmCcuDeb + movCcuDeb                     'centro de custo - debito
acmCcuCre = acmCcuCre + movCcuCre                     'centro de custo - credito
end sub


'-----------------------------------------------------------------------------
'- [TXT] - Listar em modo texto ----------------------------------------------
'-----------------------------------------------------------------------------
'nao ha


'-----------------------------------------------------------------------------
'- [GRA] - Listar em modo grafico --------------------------------------------
'-----------------------------------------------------------------------------
Sub GraLinPos 'posicionar linha
posY = posBasLin + Doc_CntLin * 4                     'posicao Y
PrWIN AJT_B, posMrgEsq, posY                          'posicao base
end Sub


Sub GraLstRpe 'listar rodape
py = 8                                                'posicao Y
PrWIN GR_LI,  0, py, posMrgDir, py                    'linha
call SigLstRod                                        'listar rodape

PrWin FON,"BOLD+"                                     'activar BOLD
PrWin FON,"ITAL+"                                     'activar ITALICO
end sub


'==============================================================================
'- [TXT] - Listar em modo texto -----------------------------------------------
'==============================================================================
'nao ha


'==============================================================================
'- [GRA] - Listar em modo grafico ---------------------------------------------
'==============================================================================
'------------------------------------------------------------------------------
'- [APR/DOC] - Documento de apuramento ----------------------------------------
'------------------------------------------------------------------------------
Sub GraAprDoc_DocIni 'inicializar documento
'msgbox "","DOC","INI"

posBasLin  =  60                                      'posicao base de linhas
posMrgEsq  = Margem                                   'margem esquerda
posMrgDir  = 190                                      'margem direita

'titulos
titLin1 =   2                                         'titulo - linha 1
titLin2 =   5                                         'titulo - linha 2

'titulos - linha 1
tit1C01 =   2
tit1C02 =  50
tit1C03 = 104                                         'geral
tit1C04 = 148                                         'analitica

'titulos - linha 2
tit2C01 =   0                                         'contagem
tit2C02 =   5                                         'conta
tit2C03 =  25                                         'nome da conta
tit2C04 =  80                                         'data
tit2C05 = 100                                         'geral - debito
tit2C06 = 126                                         'geral - credito
tit2C07 = 149                                         'analitica - debito
tit2C08 = 175                                         'analitica - credito

'linhas
linC01  =   0.5                                       'contagem
linC02  =   1                                         'conta
linC03  =  22                                         'nome da conta
linC04  =  77                                         'data
linC05  =  94                                         'geral - debito
linC06  = 118                                         'geral - credito
linC07  = 142                                         'analitica - debito
linC08  = 167                                         'analitica - credito
linC09  = posMrgDir                                   'final

'totais
totC01  =   1                                         'contagem
totC02  =   2                                         'conta
totC03  =  22                                         'nome da conta
totC04  =  77                                         'data
totC05  =  94                                         'geral - debito
totC06  = 118                                         'geral - credito
totC07  = 142                                         'analitica - debito
totC08  = 167                                         'analitica - credito
totC09  = posMrgDir                                   'final

'diversos
call Com_AcmIni                                       'inicializar acumuladores
end sub


Sub GraAprDoc_Cab 'cabecalho da pagina
call Com_Prp_VarDoc                                   'preparar variaveis - documento

SigCabNorOpcTit = 2                                   'tipo de titulo
Titulo$ = vuDocTit$                                   'titulo

Call SigLstCab

PrWin Ajt_B, posMrgEsq,  26                           'activar posicao base
PrWIN GR_LI, 0,  0, posMrgDir,  0                     'linha
call Com_Prp_VarMov                                   'preparar variaveis - movimento

'- dados -
PrWin Ajt_B, posMrgEsq,  26                           'activar posicao base
py = 5                                                'posicao Y
PrWIN TX_N,  25, py,"Documento:"                      'identificacao
PrWIN TX_N,  45, py,vuDocDoc$                         'valor

py = 5                                                'posicao Y
PrWIN TX_N, 115, py,"Data:"                           'identificacao
PrWIN TX_N, 130, py,vuDocDtu$                         'valor

vTmp$ = vuPerIde$                                     'valor a listar
py = 10                                               'posicao Y
PrWIN TX_N,  25, py,"Periodo:"                        'identificacao
PrWIN TX_N,  45, py,vTmp$                             'valor

'colunas
PrWIN COR_T,  CorTitLst                               'cor de titulo
PrWIN FON,   9,   1                                   'activar fonte
PrWin Ajt_B, posMrgEsq,  50                           'activar posicao base

PrWIN FON,"BOLD+"                                     'activar fonte BOLD

'titulo - linha 1
PrWIN TX_N,tit1C03,titLin1,"Contabilidade Geral"      'identificar
PrWIN TX_N,tit1C04,titLin1,"Fluxo Caixa / Centro Custo"

'titulo - linha 2
'PrWIN TX_N, tit2C01, titLin2,"N"
PrWIN TX_N, tit2C02, titLin2,"Conta"
PrWIN TX_N, tit2C03, titLin2,"Descrição"
PrWIN TX_N, tit2C04, titLin2,"Data"
PrWIN TX_N, tit2C05, titLin2,"Débito"
PrWIN TX_N, tit2C06, titLin2,"Crédito"
PrWIN TX_N, tit2C07, titLin2,"Débito"
PrWIN TX_N, tit2C08, titLin2,"Crédito"
PrWIN FON,"BOLD-"

PrWIN COR_T,CorTraco                                  'cor de linhas
PrWIN GR_LI, 0,  0, posMrgDir,  0                     'linha
PrWIN GR_LI, 0, 10, posMrgDir, 10                     'linha

PrWIN FON,   8,   1                                   'activar fonte
PrWIN COR_T, CorLin                                   'cor de linhas
end sub


Sub GraAprDoc_LinGrpIni 'linha - inicio de grupo
'msgbox "","LIN","GRP/INI"
call Com_Prp_VarMov                                   'preparar variaveis - movimento

tmp = CntLin("INC", 1)                                'contar linha
call GraLinPos                                        'posicionar linha

vTmp$ = vuGrpTpr$ + " - " + vuGrpIde$                 'valor a listar
py = 0                                                'posicao Y
PrWIN TX_N,  25, py,vTmp$                             'valor
end sub


Sub GraAprDoc_LinGrpFim 'linha - fim de grupo
'msgbox "","LIN","GRP/FIM"
call Com_Prp_VarMov                                   'preparar variaveis - movimento

'tmp = CntLin("INC", 1)                               'contar linha
call GraLinPos                                        'posicionar linha

PrWIN GR_LI, 0        ,   0, posMrgDir, 0             'linha

'tmp = CntLin("INC", 1)                                'contar linha
end sub


Sub GraAprDoc_Lin 'linha
'msgbox "","LIN","LIN"
call Com_AcmPrp                                       'preparar acumulacao do movimento
call Com_AcmExe                                       'acumular dados do movimento

call GraLinPos                                        'posicionar linha

vlFrm$ = FrmMoe$("",14,CTA_MOV_Vl)                    'formatar valor

if CTA_Mov_Tv$ = "C" then                             'credito ?
   vuDeb$ = ""                                        'valor a debito
   vuCre$ = vlFrm$                                    'valor a credito
else
   vuDeb$ = vlFrm$                                    'valor a debito
   vuCre$ = ""                                        'valor a credito
end if

'- valores de DEBUG - INI
'vlFrm$ = FrmMoe$("",14,1234567890.45)                  'formatar valor
'vlFrm$ = FrmMoe$("",14,123456789.45)                  'formatar valor
'vuDeb$ = vlFrm$                                       'valor a debito
'vuCre$ = vlFrm$                                       'valor a credito
'usaCtGer = 1                                          'usar GER
'usaCtAnl = 1                                          'usar ANL
'- valores de DEBUG - FIM

'listar
PrWIN TX_N,  linC02,  0,CTA_MST_Ct$                   'listar conta
PrWIN TX_N,  linC03,  0,CTA_MST_Nome$                 'listar nome da conta
PrWIN TX_N,  linC04,  0,@vaDtm                        'listar data do movimento
'PrWIN TX_N,  linC04,  0,"2015/01/02"

if usaCtGer = 1 then                                  'contabilidade geral ?
   PrWIN TX_NP, linC05,  0,"N",@gerDeb                'listar debito
   PrWIN TX_NP, linC06,  0,"N",@gerCre                'listar credito
end if

if usaCtAnl = 1 then                                  'contabilidade analitica ?
   PrWIN TX_NP, linC07,  0,"N",@anlDeb                'listar debito
   PrWIN TX_NP, linC08,  0,"N",@anlCre                'listar credito
end if
end sub


Sub GraAprDoc_FimAjt 'fim de pagina intermedia
'TxTit$="Sub-total dos movimentos"
end sub


Sub GraAprDoc_Fim 'fim de listagem
'msgbox "","FIM","FIM"

'- (55) --------------------------------------------->'Comentario
txtit$ = "Total dos movimentos"                       'identificacao

PrWin FON,"BOLD+"                                     'activar BOLD
PrWin FON,"ITAL+"                                     'activar italico

PrWIN COR_T, CorTraco                                 'cor traco
PrWIN AJT_B, posMrgEsq, 264                           'posicao base
PrWIN GR_LI, 0        ,   0, posMrgDir, 0             'linha
PrWIN AJT_B, posMrgEsq, 265                           'posicao base
PrWIN COR_T, CorTotGer                                'cor azul
PrWIN FON, 8,  1                                      'activar fonte

PrWIN TX_N,  totC02,  0,    TxTit$                    'identificar
PrWIN TX_NP, totC05,  0,"N",@t0GerDeb                 'geral - total debito
PrWIN TX_NP, totC06,  0,"N",@t0GerDeb                 'geral - total credito

pxIde = totC04                                        'posicao X de identificacao

py = 0                                                'posicao Y
PrWIN TX_N,  pxIde,  py,    "GER/CCU"                 'identificar
PrWIN TX_NP, totC07, py,"N",@t0CcuDeb                 'CCU - total debito
PrWIN TX_NP, totC08, py,"N",@t0CcuCre                 'CCU - total credito

py = 3.5                                              'posicao Y
PrWIN TX_N,  pxIde,  py,   "FCX"                      'identificar
PrWIN TX_NP, totC07, py,"N",@t0FcxDeb                 'FCX - total debito
PrWIN TX_NP, totC08, py,"N",@t0FcxCre                 'FCX - total credito

call GraLstRpe                                        'listar rodape

PrWin FP                                              'terminar pagina
end sub

##


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

