'Nome       : EncCmv.std
'Tipo       : LST
'Data       : 2005/08/07
'Versao     : 2.0
'Descricao  : Listagem de Comissoes de Vendedor

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   2000/11/15 --------------------------------------------------
'Versao base

'- Versao : 1.0a  2001/03/06 --------------------------------------------------
'Listagem com discriminacao de documentos e artigos incluidos

'- Versao : 1.0b  2001/05/23 --------------------------------------------------
'Permitir listar comissao linha a linha de artigo

'- Versao : 2.0   2005/??/?? --------------------------------------------------
'Ajustes no aspecto
'Correccao de comando SQL (Variavel da data Dtl -> Dt)


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


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


'==============================================================================
#SQL - Comandos SQL
'==============================================================================
'Base de dados           [BD]=EmpFic$("EMP","Cemp,Emp_Dat.mdb")
Base de dados           [BD]=EmpFic$("EMP","Enc,Enc.mdb")

Conferencia de comissoes  [Cmd]=CmvCnf=+
   +SELECT Vnd,[Tdoc$],[Ndoc$],DocPag,ComDoc,Dt,[ComTip$] FROM EncCmvDoc +
   +WHERE [Tdoc$]='{Opc_Tdoc}' +
   +AND [Ndoc$]>='{Opc_Ndoc.Ini}' AND [Ndoc$]<='{Opc_Ndoc.Fim}' +
   +AND [Dt]>='{Opc_Dtl.Ini}' AND [Dt]<='{Opc_Dtl.Fim}' +
   +AND Vnd>={Opc_Vnd.Ini} AND Vnd<={Opc_Vnd.Fim} +
   +ORDER By Vnd,[Tdoc$],[Ndoc$] 
##


'==============================================================================
#DOC - Conferencia de comissoes
'==============================================================================
Tipo                       [DocTip]=SQL
Nome                       [DocNom]=CmvCnf,Conferência de comissões

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Cnf_Cab
Listar linhas               [FxLIN]=Cnf_Lin; Sbt01,2; Sbt02,2; Sbt03,2
Listar fim                  [FxFIM]=Cnf_Fim

'controlo de listagem SQL
Gerador de dados a listar  [SQLDat]=CmvCnf
Subtotalizadores           [SQLSbt]=Vnd

'diversos
'parametros especificos
'Dados a listar            [DocEsp]=
##


'==============================================================================
#DOC - Mapa de comissoes
'==============================================================================
Tipo                       [DocTip]=MapCom
Nome                       [DocNom]=MapCom,Mapa de Comissões

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Mco_Cab
Listar linhas               [FxLIN]=Mco_Lin; Sbt01,2; Sbt02,2; Sbt03,2
Listar fim                  [FxFIM]=Mco_Fim

'diversos
'parametros especificos
'Dados a listar            [DocEsp]=
##


'==============================================================================
#DOC - Mapa de comissoes - discriminado
'==============================================================================
Tipo                       [DocTip]=MapCom
Nome                       [DocNom]=MpcDis,Mapa de Comissões (DIS)

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

'funcoes de listagem
Listar cabecalho            [FxCAB]=Mco_Cab
Listar linhas               [FxLIN]=Mco_Lin; Sbt01,2; Sbt02,2; Sbt03,2;+
                                   +DisDoc; DisDocIni,0; DisDocFim;+
                                   +DisArt; DisArtIni,0; DisArtFim
Listar fim                  [FxFIM]=Mco_Fim

'diversos
parametros especificos
Discriminar                 [DocEsp]=CmvDis=DOC,ART
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'MemTxt$(1)    - titulo

'MemTxt$(11)   - numero do vendedor
'MemTxt$(12)   - nome do vendedor

'MemTxt$(21)   - tipo de comissao

'MemTxt$(31)   - tipo de documento
'MemTxt$(32)   - numero de documento
'MemTxt$(33)   - numero de documento formatado

'documento incluido
'MemTxt$(51)   - tipo de documento
'MemTxt$(52)   - numero de documento
'MemTxt$(53)   - numero de documento formatado

'artigo
'MemTxt$(61)   - codigo do artigo
'MemTxt$(62)   - nome do artigo
'MemTxt$(63)   - desconto

'documento
'MemNum(11)    - vendedor
'MemNum(12)    - data do documento

'MemNum(20)    - numero de ordem
'MemNum(21)    - total do documento
'MemNum(22)    - valor pago
'MemNum(23)    - total da comissao
'MemNum(24)    - comissao do documento

'MemNum(40)    - numero de documentos
'MemNum(41)    - comissao dos documentos
'MemNum(42)    - premio de recebimento
'MemNum(43)    - comissao total

'documento incluido
'MemNum(50)    - contador de documentos
'MemNum(51)    - data do documento
'MemNum(52)    - valor do documento
'MemNum(53)    - 
'MemNum(54)    - factor de comissao
'MemNum(55)    - comissao total
'MemNum(56)    - comissao do documento

'artigo
'MemNum(60)    - contador de artigos
'MemNum(61)    - quantidade
'MemNum(62)    - preco
'MemNum(63)    - valor
'MemNum(64)    - factor de comissao
'MemNum(65)    - comissao total
'MemNum(66)    - comissao do documento

'campos a listar
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)

CntL     = FrmNum$( 3.0,CntLin("CON"))

'conferencia de comissoes
Tdo      = SqlCmp$("Tdoc$")
Ndo      = SqlCmp$("Ndoc$")
Doc      = FrmNdo$("46",SqlCmp$("Tdoc$"),SqlCmp$("Ndoc$"))
dtDoc    = FrmDt$("",SqlCmp("Dt"))
tip      = SqlCmp$("ComTip$")

vDoc     = FrmNum$(12.1,SqlCmp("DocPag"))
vCom     = FrmNum$(12.1,SqlCmp("ComDoc"))
nDoc     = FrmNum$( 5.0,TotCnt("vDoc",1)+1)

vDoc_T0  = FrmNum$(12.1,Total(vDoc,0))
vDoc_T1  = FrmNum$(12.1,Total(vDoc,1))
vDoc_T2  = FrmNum$(12.1,Total(vDoc,2))

nDoc_T0  = FrmNum$( 5.0,TotCnt("vDoc",0))
nDoc_T1  = FrmNum$( 5.0,TotCnt("vDoc",1))
nDoc_T2  = FrmNum$( 5.0,TotCnt("vDoc",2))

vCom_T0  = FrmNum$(12.1,Total(vCom,0))
vCom_T1  = FrmNum$(12.1,Total(vCom,1))
vCom_T2  = FrmNum$(12.1,Total(vCom,2))

'mapa de comissoes
mcVnd    = MemNum(11)
mcVndNum = MemTxt$(11)
mcVndNom = MemTxt$(12)
mcVndIde = MemTxt$(11)+" - "+MemTxt$(12)
mcDt     = FrmDt$("",MemNum(12))
mcTdo    = MemTxt$(31)
mcNdo    = MemTxt$(32)
mcDoc    = FrmNdo$("46",MemTxt$(31),MemTxt$(32))
mcTip    = MemTxt$(21)
mcT      = MemTxt$(21)

diTdo    = MemTxt$(51)
diNdo    = MemTxt$(52)
diDoc    = FrmNdo$("46",MemTxt$(51),MemTxt$(52))
diDtd    = FrmDt$("",MemNum(51))
diVld    = FrmNum$(12.1,MemNum(52))
diComP   = FrmNum$( 3.1,MemNum(54)*100)
diComT   = FrmNum$(12.1,MemNum(55))
diComD   = FrmNum$(12.1,MemNum(56))

aCod     = MemTxt$(61)
aCof     = StcCodFrm$(MemTxt$(61))
aNom     = left$(MemTxt$(62),25)
aDes     = MemTxt$(63)
aQu      = FrmNum$(12.1,MemNum(61))
aPr      = FrmNum$(12.1,MemNum(62))
aVl      = FrmNum$(12.1,MemNum(63))
aComP    = FrmNum$( 3.1,MemNum(64)*100)
aComT    = FrmNum$(12.1,MemNum(65))
aComD    = FrmNum$(12.1,MemNum(66))

mcNDoc   = FrmNum$( 5.0,MemNum(20))
mcDocT   = FrmNum$(12.1,MemNum(21))
mcDocP   = FrmNum$(12.1,MemNum(22))
mcComT   = FrmNum$(12.1,MemNum(23))
mcComD   = FrmNum$(12.1,MemNum(24))

mcComDoc = FrmNum$(12.1,MemNum(41))
mcComPrm = FrmNum$(12.1,MemNum(42))
mcComTot = FrmNum$(12.1,MemNum(43))

'percentagens
iCmP     = FrmNum$( 3.1,MemNum(54)*100)
aCmP     = FrmNum$( 3.1,MemNum(64)*100)

tcNDoc   = FrmNum$( 5.0,MemNum(40))
tcDocT   = FrmNum$(12.1,total(mcDocT)
tcDocP   = FrmNum$(12.1,total(mcDocP))
tcComT   = FrmNum$(12.1,total(mcComT))
tcComD   = FrmNum$(12.1,total(mcComD))

'tcComDoc = FrmNum$(12.1,total(mcComDoc))
'tcComPrm = FrmNum$(12.1,total(mcComPrm))
'tcComTot = FrmNum$(12.1,total(mcComTot))
##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)

SUB FxIni 'inicializacao base
cnt=0                                           'limpar contador
end sub


SUB Lst_AJT 'ajuste
end sub


'- Conferencia de comissoes ---------------------------------------------------
SUB Cnf_CabIni 'inicializar documento
'cnt=cnt+1                                      'contar
end sub


SUB Cnf_Cab 'cabecalho
FxDiv LstIde,16CPI,0
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI","Conferência de Comissões")
?Data : @DataExt                                                  Folha No: @Pag#
?================================================================================
?         Documento                 Data             Valor       Comissão   Tipo#
?================================================================================
end sub


SUB Cnf_Lin 'linha
?@nDoc    @Tdo    @Doc           @DtDoc       @vDoc          @vCom           @tip
end sub


SUB Cnf_LinTit1 'titulo 1 (vendedor)
tmp=CntLin("MIN",5)                               'minimo de linhas
tmp=CntLin("INC",1)                               'contar linha
vnd$=SbtInf$("ACT",1)                         'vendedor
print tab(5) "Vendedor: " vnd$;               'identificar grupo
print " - " EmpTabCon$("VEND",vnd$,"NOME")    'nome do vendedor
end sub


SUB Cnf_LinSbt1 'sobtotal 1 (vendedor)
print tab(10) "Total do Vendedor: " SbtInf$("ANT",1);    'identificar subtotal
print tab(46) FrmNum$(12.1,Total("vDoc",1));
print tab(61) FrmNum$(12.1,Total("vCom",1))
print
tmp=CntLin("INC",2)          'contar linhas
x=TotLpz(1)                  'limpar totais
end sub


SUB Cnf_Fim 'totais
?================================================================================
?         Totais Gerais: @nDoc_T0             @vDoc_T0       @vCom_T0           #
?================================================================================
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub


SUB Cnf_FimAjt 'fim de pagina intermedia
?================================================================================
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub


'- Mapa de Comissoes ----------------------------------------------------------
SUB Mco_CabIni 'inicializar documento
'cnt=cnt+1                                      'contar
end sub


SUB Mco_Cab 'cabecalho
FxDiv LstIde,16CPI,0
'print TxTit$("TT=16CPI, LD, PT=66C, TL=16CPI",MemTxt$(1))
'FxDiv LstIde,10CPI,0
print TxTit$("TT=10CPI, LD, PT=40C, TL=10CPI",MemTxt$(1))
'?Vendedor: @mcVndN@mcVndIde                                                    #
?Vendedor: @mcVndIde                                                            #
?Data : @DataExt                                                  Folha No: @Pag#
?================================================================================
?         Documento                 Data             Valor       Comissão   Tipo#
?================================================================================
end sub


SUB Mco_Lin 'linha
?@mcNDoc  @mcTdo  @mcDoc         @mcDt        @mcDocP        @mcComD         @mcT
end sub


SUB Mco_Fim 'totais
?================================================================================
?         Totais Gerais: @tcNDoc              @tcDocP        @tcComD            #
?--------------------------------------------------------------------------------
?         Comissao de Documentos:                            @mcComDoc          #
?         Premios:                                           @mcComPrm          #
?         Comissão total:                                    @mcComTot          #
?================================================================================
x=TotLpz(0)                  'limpar totais
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub


SUB Mco_FimAjt 'fim de pagina intermedia
?================================================================================
FxDiv LstPer,SP
'Print PrtCmd$("[SP]");
end sub


SUB Mco_LinDisDocIni 'inicio de discriminar documentos
'tmp=CntLin("INC",1)                               'contar linha
'print "Inicio de Documento"
end sub


SUB Mco_LinDisDoc 'discriminar documentos
?@diNDoc  @diTdo  @diDoc         @diDtd       @diVld         @diComD        @iCmP
end sub


SUB Mco_LinDisDocFim 'fim de discriminar documentos
?
end sub


SUB Mco_LinDisArtIni 'inicio de discriminar artigos
'tmp=CntLin("INC",1)                               'contar linha
'print "Inicio de Artigos"
end sub


SUB Mco_LinDisArt 'discriminar artigos
?         @aCof        @aNom                  @aVl           @aComD         @aCmP
end sub


SUB Mco_LinDisArtFim 'fim de discriminar artigos
?
end sub
##

