;** RM_3056C *******************************************************************
;* Resumo de Vendas por Atendente//NOF/Item/Cliente                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 25/11/2003 por Karen Lauar Nery
;Ultima Alteracao: 11/04/2005 por Davi Pereira Carrano
;Motivo Alteracao: Retirando o Atendente
;Ultima Alteracao: 15/12/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: TOTALIZA EMPRESAS
;Ultima Alteracao: 10/07/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro na ask do NotaI "Situacao_Item"
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 17/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_EMPRESATE   
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT              
;Ultima Alteracao: 11/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes agrupado RM_3056    
;Ultima Alteracao: 11/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes substituido RM_3058    

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc RM_3056C_Seleciona()
ClearAll

;****** Vendas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then
        if not isblank(VSDGFAMI)  or
           Not IsBlank(VSDGGRP)   or
           Not IsBlank(VSDGMARCA)  
           then
                {Ask} TypeIn "\\Sistemas\\Estoque\\Itens" Enter
                Moveto [Codigo do Item         ] Example "cit"
                Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
        endif

        {Ask} TypeIn "\\Sistemas\\Cadastro\\Usuarios" Enter
        Moveto [Chapa                  ] Example "usu"
        Moveto [Nome                   ] Check

        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Codigo                 ] Check 
        Moveto [Razao Social           ] Check
        Moveto [Numero do Documento    ] Check
        Moveto [Tipo do Documento      ] Check
        Moveto [Data de Emissao        ] Check 


         Moveto [Codigo do Documento    ] TypeIn "~VSDGTPDOCTO.."
         Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
         Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
         Moveto [Cidade                 ] TypeIn CIDADE
         Moveto [UF                     ] TypeIn "~VSDGESTADO.."
         Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"

         Moveto [Condicao de Pagamento  ] TypeIn "~VSDGCONDPGTO.."
         Moveto [Forma de Pagamento     ] TypeIn "~VSDGTPPAGTO.."
         Moveto [Numero_Carregamento    ] TypeIn "~VSDGNCARREG.."
         Moveto [Codigo_Usuario         ] Check Example "usu" TypeIn ",~VSDGCHAPA.."

         Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
         Moveto [Tipo Movimento Estoque ] TypeIn "S"
         Moveto [Situacao               ] TypeIn "Not C"

        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"

        Moveto [Codigo do Item         ] Check 
        if not isblank(VSDGFAMI)  or
           Not IsBlank(VSDGGRP)   or
           Not IsBlank(VSDGMARCA)   
           then
                Moveto [Codigo do Item         ] Example "cit" TypeIn ", ~VSDGITEM.."
           else Moveto [Codigo do Item         ]               TypeIn   "~VSDGITEM.."
        endif

        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
        Moveto [Preco Total            ] TypeIn "Calc Sum as Preco Total"
        Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll

        RM_3056C_Adiciona_Dados("VENDAS")
EndIf

EndProc   ; (Seleciona)

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc RM_3056C_Adiciona_Dados(Tipo)

If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo                 ] Example "ccli"
Moveto [Razao Social           ] Example "ncli"
Moveto [Numero do Documento    ] Example "nof"
Moveto [Tipo do Documento      ] Example "tpd"
Moveto [Codigo_Usuario         ] Example "cusu"
Moveto [Nome                   ] Example "nusu"
Moveto [Data de Emissao        ] Example "dat"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] Example "dite"
Moveto [Quantidade             ] Example "qtde"
Moveto [Preco Total            ] Example "ptot"
Moveto [Valor Desconto Total   ] Example "vdes"
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo                 ] Example "ccli"
Moveto [Razao Social           ] Example "ncli"
Moveto [Numero do Documento    ] Example "nof"
Moveto [Tipo do Documento      ] Example "tpd"
Moveto [Codigo_Usuario         ] Example "cusu"
Moveto [Nome_Usuario           ] Example "nusu"
Moveto [Data de Emissao        ] Example "dat"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] Example "dite"
Switch
  Case Tipo="VENDAS":
       Moveto [Vendas_Quantidade      ] Example "qtde"
       Moveto [Vendas_Preco Total     ] Example "ptot" TypeIn"-" Example "vdes"
EndSwitch
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc RM_3056C_Processa()

;***** Ajusta Dados ************************************
If VSDGEMPRESA="0000"
   Then {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] TypeIn "changeto 0000"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto TOTALIZA EMPRESAS"
        Do_It!
        ClearAll
   Else {Ask} {\\Sistemas\\Cadastro\\Empresas}
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] Example "nemp"
        {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto _nemp"
        Do_It!
        ClearAll
EndIf

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] Example "dite"
Moveto [Tipo do Item           ] Example "tite"
Moveto [Unidade Fiscal         ] Example "unf"
Moveto [Unidade Embalagem      ] Example "une"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] TypeIn "changeto _dite"
Moveto [Tipo do Item           ] TypeIn "changeto _tite"
Moveto [Unidade Fiscal         ] TypeIn "changeto _unf"
Moveto [Unidade Embalagem      ] TypeIn "changeto _une"
Do_It!
ClearAll

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item            ] Example "cite"
Moveto [Fator Conversao Embalagem ] Example "fce"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo do Item            ] Example "cite"
Moveto [Unidade Fiscal            ] Example "unf"
Moveto [Unidade Embalagem         ] TypeIn "not = " Example "unf"
Moveto [Vendas_Quantidade         ] Example "qtd"
Moveto [Vendas_Embalagem          ] TypeIn "changeto _qtd*_fce"
Do_It!
ClearAll

;***** Totaliza Dados ************************************
{Ask} TypeIn Tabela Enter Check
Moveto [Vendas_Quantidade      ] Check TypeIn "Calc Sum as VendasQuantidade"
Moveto [Vendas_Embalagem       ] Check TypeIn "Calc Sum as VendasEmbalagem"
Moveto [Vendas_Preco Total     ] Check TypeIn "Calc Sum as VendasPreco"
Moveto [Devolucoes_Quantidade  ] Check TypeIn "Calc Sum as DevolucoesQuantidade"
Moveto [Devolucoes_Preco Total ] Check TypeIn "Calc Sum as DevolucoesPreco"
Do_It!
ClearAll

Empty Tabela
Add "Answer" Tabela
ClearAll

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Vendas_Embalagem          ] TypeIn "<=0, changeto blank"
Moveto [Unidade Embalagem         ] TypeIn "changeto Blank"
Do_It!
ClearAll

;*** Totaliza Empresa *****
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [VendasPreco            ] Example "vp"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Total_Vendas_Empresa   ] TypeIn "changeto _vp"
Do_It!
ClearAll

;*** Totaliza Atendente ***
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Codigo_Usuario         ] Check
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo_Usuario         ] Example "crep"
Moveto [VendasPreco            ] Example "vp"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo_Usuario         ] Example "crep"
Moveto [Total_Vendas_Atendent  ] TypeIn "changeto _vp"
Do_It!
ClearAll

;*** Totaliza Item ***
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Codigo do Item         ] Check
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo do Item         ] Example "cite"
Moveto [VendasPreco            ] Example "vp"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Total_Vendas_Item      ] TypeIn "changeto _vp"
Do_It!
ClearAll

EndProc    ;  (Processa)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_3056C_Principal()

AGUARDE("Aguarde, gerando o relatĒrio")

Tabela=Cria_Temp(PrivDir())
Empty "\\Base\\Sistemas\\Vendas\\RM_3107"
Copy "\\Base\\Sistemas\\Vendas\\RM_3107" Tabela

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  RM_3056C_Seleciona()
EndWhile

If not IsEmpty(Tabela)
   Then
        RM_3056C_Processa()

        Switch
          Case VSDGCODMODELO="62"  : IMPRIREL(Tabela,"2")
          Case VSDGCODMODELO="62A" : IMPRIREL(Tabela,"4")
        EndSwitch

   Else MENSAGEM("No existem registros a processar")
EndIf

Delete Tabela
EndProc

;-- Chamada principal ----------------------------------------------------------
RM_3056C_Principal()

Release Vars Tabela
Release Procs RM_3056C_Principal, RM_3056C_Seleciona, RM_3056C_Adiciona_Dados, RM_3056C_Processa 
