VARIAVEL Z_AAMM   = RIGHT(DTOC(S_DATUAL),2)+SUBSTR(DTOC(S_DATUAL),4,2)
VARIAVEL Z_MOVE   = ""
VARIAVEL Z_FAT    = ""
VARIAVEL z_vgpre  = {}
VARIAVEL z_ngpre  = 0
VARIAVEL Z_CLI    = 0
VARIAVEL Z_UNIDS  = 0
VARIAVEL Z_TOTVND = 0
VARIAVEL Z_TOTCST = 0
VARIAVEL Z_LSTPRD = "N"
VARIAVEL Z_NOME   = ""

T08,10,20,70,Parametros
T2,2,Ano e Mes .....:,4,z_aamm,9999
T4,2,Cliente........:,4,z_cli,9999
T5,2,Listo Produtos ?,1,z_lstprd,!

COMANDO ANTES SetAliasAaMm(Z_AAMM)
COMANDO ANTES Z_MOVE = wse_mov
COMANDO ANTES Z_FAT  = wsf_Fat
COMANDO ANTES DbGoto(z_cli)
COMANDO ANTES Z_NOME = alltrim(sccrcli->cr_nome)
REPITA ENQUANTO Z_CLI=RECN()

VARIAVEL Z_NPEDS = 0
VARIAVEL Z_TOTFAT = 0
VARIAVEL Z_TOTDSC = 0

ARQUIVO (Z_FAT)
FILTRO z_cli=FCLI .AND. fg_fat<>"C"
COMANDO DURANTE Z_NPEDS = Z_NPEDS + 1
COMANDO DURANTE Z_TOTFAT = Z_TOTFAT + FVAL
COMANDO DURANTE Z_TOTDSC = Z_TOTDSC + FDESCONTO

ARQUIVO (Z_MOVE)
OUTROARQ SE_PROD SEIP_C PCOD

FILTRO z_cli=mcodforc .and. mfges="S"

COMANDO DURANTE Z_pcod = pcod
COMANDO DURANTE Se_Prod->(DbSeek(Z_Pcod))
COMANDO DURANTE z_gpreco = Ascan(z_vgpre, {|x| x[1]=Upper(Se_prod->Pgpreco) } )
COMANDO DURANTE z_nil    = if(z_gpreco=0,Aadd(z_vgpre,{Upper(Se_prod->Pgpreco),"",0,0,0} ),"")
COMANDO DURANTE z_gpreco = if(z_gpreco=0,len(z_vgpre),z_gpreco)

COMANDO DURANTE z_custo = mvalor/MarkUpPrd(se_prod->pgpreco)
COMANDO DURANTE z_vgpre[z_gpreco,3] = z_vgpre[z_gpreco,3] + mquant
COMANDO DURANTE z_vgpre[z_gpreco,4] = z_vgpre[z_gpreco,4] + mvalor
COMANDO DURANTE z_vgpre[z_gpreco,5] = z_vgpre[z_gpreco,5] + z_custo
COMANDO DURANTE Z_UNIDS  = Z_UNIDS  + mquant
COMANDO DURANTE Z_TOTVND = Z_TOTVND + mvalor
COMANDO DURANTE Z_TOTCST = Z_TOTCST + z_custo
FILTROIMP Z_LSTPRD="S"
C[Sistema]            Em [Date()], as [Time()]hs   Ref.AnoMes:[z_aamm]
CCompras do Cliente [z_cli 9999] por Grupos de Preco
C[repl("-",80)]
CCod     Descricao                               GP Quant   Venda   Custo   
C[repl("-",80)]
D [PCOD] [se_prod->pdesc @s40] [se_prod->pgpreco] [z_gpreco 99] [mvalor 999,999.99] [z_custo 999,999.99]

ARQUIVO SE_GPRE
COMANDO ANTES DBGOTOP()
COMANDO DURANTE z_gpreco = Ascan(z_vgpre, {|x| x[1]=upper(grupo) } )
COMANDO DURANTE Z_unds  = if(z_gpreco>0, z_vgpre[z_gpreco,3], 0)
COMANDO DURANTE Z_venda = if(z_gpreco>0, z_vgpre[z_gpreco,4], 0)
COMANDO DURANTE Z_custo = if(z_gpreco>0, z_vgpre[z_gpreco,5], 0)
COMANDO DURANTE Z_margem= z_venda - z_custo

C[Sistema]            Em [Date()], as [Time()]hs   Ref.AnoMes:[z_aamm]
CCompras do Cliente [z_cli 9999] por Grupos de Preco
C[repl("-",80)]
CGrupo de Precos         Unidades     Venda     Custo   Margem
C[repl("-",80)]
FILTROIMP z_unds+z_venda+z_custo>0
D[grupo] [descricao]        [z_unds 999,999]   [z_venda 999,999]   [z_custo 999,999] [z_margem 999,999]

ULTPAG

ULTPAG *** Numero de Pedidos Efetuados: [z_npeds @E 999,999]
ULTPAG *** Total de Unidades Compradas: [z_unids @E 999,999]
ULTPAG *** Valor Total dos Pedidos....: [z_totfat @E 999,999]
ULTPAG *** Descontos Diretos no Cupom.: [z_totdsc @E 999,999]
ULTPAG *** Valor Total das Vendas ....: [z_totvnd @E 999,999]
ULTPAG *** Valor Total de Custo ......: [z_totcst @E 999,999]
ULTPAG *** Margem Bruta Total ........: [z_totvnd-z_totcst-z_totdsc @E 999,999]
