;** Rm_0170 ********************************************************************
;* Resumo de Vendas por Familia/Grupo/Produto                                  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 24/04/1998 por Anivel Augusto Rodrigues
;Ultima Alteracao: 08/09/2004 por Jos‚ Luˇs Ameno da Silva
;Motivo Alteracao: PrivDir
;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: 16/02/2017 por Rafael Matos
;Motivo Alteracao: Ajustes Processa()                
;Ultima Alteracao: 18/01/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes chamada principal RM_3070

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc RM_0170_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)
               Then {Ask} {\\Sistemas\\Estoque\\Itens}
                    Moveto [Codigo do Item         ] Example "cite"
                    Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
                    Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
         EndIf
         {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If VSDGGERENCIA<>""
           Then Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA.."
        EndIf   
         {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
         Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
         Moveto [Nome Fantasia Empresa  ] Check
         Moveto [Numero do Documento    ] Example "ndoc"
         Moveto [Serie do Documento     ] Example "sdoc"
         Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
         Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
         Moveto [Codigo do Representante] Example "crep"
         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 [Tipo do Item           ] Check         
         If IsBlank(VSDGFAMI) And
            IsBlank(VSDGGRP)
            Then Moveto [Codigo do Item ] Check
            Else Moveto [Codigo do Item ] Example "cite" Check
         EndIF
         Moveto [Descricao do Item      ] Check
         Moveto [Unidade Fiscal         ] 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

         {Ask} {Answer}
         Moveto [Codigo da Empresa      ] Example "cemp"
         Moveto [Nome Fantasia Empresa  ] Example "nemp"
         Moveto [Tipo do Item           ] Example "tite"
         Moveto [Codigo do Item         ] Example "cite"
         Moveto [Descricao do Item      ] Example "dite"
         Moveto [Unidade Fiscal         ] Example "unid"
         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 [Nome Fantasia Empresa  ] Example "nemp"
         Moveto [Tipo do Item           ] Example "tite"
         Moveto [Codigo do Item         ] Example "cite"
         Moveto [Descricao do Item      ] Example "dite"
         Moveto [Unidade Fiscal         ] Example "unid"
         Moveto [Vendas_Quantidade      ] Example "qtde"
         Moveto [Vendas_Preco Total     ] Example "ptot" TypeIn"-" Example "vdes"
         Do_It!
         ClearAll
EndIf

;****** Devolucoes - Estoque ***************************************************
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
   Then If Not IsBlank(VSDGFAMI) or
    	   Not IsBlank(VSDGGRP)
		   Then {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item   ] Example "cite"
                Moveto [Codigo da Familia] TypeIn "~VSDGFAMI.."
                Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
       EndIf
       {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If VSDGGERENCIA<>""
           Then Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA.."
        EndIf   
       {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter
       Moveto [Numero do Lancamento   ] Example "nlan"
       Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
       Moveto [Data de Entrada        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
       Moveto [Tipo de Operacao       ] TypeIn "D"
       Moveto [Codigo do Representante] Example "crep"
       Moveto [Nome Fantasia Empresa  ] Check
       {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
       Moveto [Numero do Lancamento   ] Example "nlan"
       Moveto [Tipo do Item           ] Check
       If IsBlank(VSDGFAMI) And
          IsBlank(VSDGGRP)
          Then Moveto [Codigo do Item         ] Check
          Else Moveto [Codigo do Item         ] Example "cite" Check
       EndIF
       Moveto [Descricao do Item      ] Check
       Moveto [Unidade Fiscal         ] 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"
       Do_It!
       ClearAll

        {Ask} {Answer}
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] Example "nemp"
        Moveto [Tipo do Item           ] Example "tite"
        Moveto [Codigo do Item         ] Example "cite"
        Moveto [Descricao do Item      ] Example "dite"
        Moveto [Unidade Fiscal         ] Example "unid"
        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 [Nome Fantasia Empresa  ] Example "nemp"
        Moveto [Tipo do Item           ] Example "tite"
        Moveto [Codigo do Item         ] Example "cite"
        Moveto [Descricao do Item      ] Example "dite"
        Moveto [Unidade Fiscal         ] Example "unid"
        Moveto [Devolucoes_Quantidade  ] Example "qtde"
        Moveto [Devolucoes_Preco Total ] Example "ptot" TypeIn"-" Example "vdes"
        Do_It!
        ClearAll
EndIf


;****** Devolucoes - Vendas ****************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then If Not IsBlank(VSDGFAMI) or
			 Not IsBlank(VSDGGRP)
		     Then {Ask} {\\Sistemas\\Estoque\\Itens}
                  Moveto [Codigo do Item   ] Example "cite"
                  Moveto [Codigo da Familia] TypeIn "~VSDGFAMI.."
                  Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
        EndIf
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If VSDGGERENCIA<>""
           Then Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA.."
        EndIf   
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
        Moveto [Nome Fantasia Empresa  ] Check
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
	    Moveto [Descricao da Destinacao] TypeIn "..DEVOL.."
        Moveto [Codigo do Representante] Example "crep"
		Moveto [Tipo Movimento Estoque ] TypeIn "E"
        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 [Tipo do Item           ] Check
				If IsBlank(VSDGFAMI) And
					 IsBlank(VSDGGRP)
           Then Moveto [Codigo do Item         ] Check
           Else Moveto [Codigo do Item         ] Example "cite" Check
				EndIF
        Moveto [Descricao do Item      ] Check
        Moveto [Unidade Fiscal         ] 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

       {Ask} {Answer}
       Moveto [Codigo da Empresa      ] Example "cemp"
       Moveto [Nome Fantasia Empresa  ] Example "nemp"
       Moveto [Tipo do Item           ] Example "tite"
       Moveto [Codigo do Item         ] Example "cite"
       Moveto [Descricao do Item      ] Example "dite"
       Moveto [Unidade Fiscal         ] Example "unid"
       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 [Nome Fantasia Empresa  ] Example "nemp"
       Moveto [Tipo do Item           ] Example "tite"
       Moveto [Codigo do Item         ] Example "cite"
       Moveto [Descricao do Item      ] Example "dite"
       Moveto [Unidade Fiscal         ] Example "unid"
       Moveto [Devolucoes_Quantidade  ] Example "qtde"
       Moveto [Devolucoes_Preco Total ] Example "ptot" TypeIn"-" Example "vdes"
       Do_It!
       ClearAll
EndIf

EndProc   ; (RM_0170_Seleciona)

;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc RM_0170_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} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Tipo do Item           ] Check
Moveto [Codigo do Item         ] Check
Moveto [Descricao do Item      ] Check
Moveto [Unidade Fiscal         ] Check
Moveto [Codigo                 ] Check
Moveto [Nome Fantasia EmitDest ] Check
Moveto [Codigo do Representante] Check
Moveto [Nome Fantasia Represent] Check
Moveto [Tipo de Pagamento      ] Check
Moveto [Codigo da Marca        ] Check
Moveto [Descricao da Marca     ] Check
Moveto [Vendas_Quantidade      ] TypeIn "Calc Sum as \"Vendas_Quantidade\""
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as \"Vendas_Preco Total\""
Moveto [Devolucoes_Quantidade  ] TypeIn "Calc Sum as \"Devolucoes_Quantidade\""
Moveto [Devolucoes_Preco Total ] TypeIn "Calc Sum as \"Devolucoes_Preco Total\""
Do_It!
ClearAll

Empty Tabela

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Nome Fantasia Empresa  ] Example "nemp"
Moveto [Tipo do Item           ] Example "tpitem"
Moveto [Codigo do Item         ] Example "coditem"
Moveto [Descricao do Item      ] Example "descitem"
Moveto [Unidade Fiscal         ] Example "un"
Moveto [Codigo                 ] Example "clie"
Moveto [Nome Fantasia EmitDest ] Example "nomclie"
Moveto [Codigo do Representante] Example "rep"
Moveto [Nome Fantasia Represent] Example "nomrep"
Moveto [Tipo de Pagamento      ] Example "tppg"
Moveto [Codigo da Marca        ] Example "marca"
Moveto [Descricao da Marca     ] Example "nommarca"
Moveto [Vendas_Quantidade      ] Example "vndqtd"
Moveto [Vendas_Preco Total     ] Example "vndpreco"
Moveto [Devolucoes_Quantidade  ] Example "devqtd"
Moveto [Devolucoes_Preco Total ] Example "devpreco"
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Nome Fantasia Empresa  ] Example "nemp"
Moveto [Tipo do Item           ] Example "tpitem"
Moveto [Codigo do Item         ] Example "coditem"
Moveto [Descricao do Item      ] Example "descitem"
Moveto [Unidade Fiscal         ] Example "un"
Moveto [Codigo                 ] Example "clie"
Moveto [Nome Fantasia EmitDest ] Example "nomclie"
Moveto [Codigo do Representante] Example "rep"
Moveto [Nome Fantasia Represent] Example "nomrep"
Moveto [Tipo de Pagamento      ] Example "tppg"
Moveto [Codigo da Marca        ] Example "marca"
Moveto [Descricao da Marca     ] Example "nommarca"
Moveto [Vendas_Quantidade      ] Example "vndqtd"
Moveto [Vendas_Preco Total     ] Example "vndpreco"
Moveto [Devolucoes_Quantidade  ] Example "devqtd"
Moveto [Devolucoes_Preco Total ] Example "devpreco"
Do_It!
ClearAll

EndProc    ;  (RM_0170_Processa)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_0170_Principal()

AGUARDE("Aguarde, gerando o relat˘rio")
Tabela=Cria_Temp(PrivDir())
Empty "\\Base\\Sistemas\\Vendas\\Rm_0140"
Copy "\\Base\\Sistemas\\Vendas\\Rm_0140" Tabela

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

If Not IsEmpty(Tabela)
   then RM_0170_Processa()
        IMPRIREL(Tabela,"2")
   Else MENSAGEM("N„o existem registros a processar")
EndIf

Delete Tabela

EndProc

;-- Chamada principal ----------------------------------------------------------
RM_0170_Principal()

Release Vars Tabela
Release Procs RM_0170_Principal,RM_0170_Seleciona, RM_0170_Processa