;** RM_0246C *******************************************************************
;* Resumo das Operacoes ECF's - Produtos                                       *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 27/04/2002 por Anivel Augusto Rodrigues
;Ultima Alteracao: 08/09/2004 por Jos‚ Lu¡s Ameno da Silva
;Motivo Alteracao: PrivDir
;Ultima Alteracao: 19/10/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Cupom
;Ultima Alteracao: 10/07/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro na ask do NotaI "Situacao_Item"
;Ultima Alteracao: 20/08/2012 por Kamila Gomes e Bruno
;Motivo Alteracao: Ajustado report e ASK p/ quebrar por tipo de documento
;Ultima Alteracao: 06/09/2012 por Kamila Gomes        
;Motivo Alteracao: Ajustado filtro por tipo de documento
;Ultima Alteracao: 24/06/2016 por Bruno Carvalho
;Motivo Alteracao: Removido Link nos Report "RM_0242" e utilizado fun‡Æo Ajusta_Answer() e Adiciona_Dados_Tabela()
;Ultima Alteracao: 13/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 17/02/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes NFCE                   
;Ultima Alteracao: 11/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes agrupado RM_0246    
;Ultima Alteracao: 11/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes substituido RM_0242    

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

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaV")
   Then
        {Ask} {NotaC}
        Moveto [Codigo da Empresa      ] Example "cemp" Check TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento    ] Example "ndoc" Check
        Moveto [Serie do Documento     ] Example "sdoc" Check 
        Moveto [Codigo do Documento    ] TypeIn "~VSDGTPDOCTO.."

        switch
          case EXECUTOR_RM_0246A=true : ; todos tipos de documento
          
          otherwise:
            Moveto [Tipo do Documento      ] TypeIn "CUP.. or NFCE"
            If VSDGCODMODELO="01B"
               then Moveto [Situacao               ] TypeIn "Not C"
            Endif   
           
        endswitch

        Moveto [Nome Fantasia Empresa  ] Check
        Moveto [Tipo de Pagamento      ] TypeIn "V Or P"
        Moveto [Data de Emissao        ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Hora de Saida          ] Check
        Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. OR ..SAIDA.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        {Ask} {NotaI}
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        Moveto [Item do Documento      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Quantidade             ] Check
        Moveto [Preco Unitario         ] Check
        Moveto [Preco Total            ] Check
        Moveto [Valor Desconto Total   ] Check
        Moveto [Descricao da Cor_Tecido] Check
        Moveto [NCM                    ] Check
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Do_It!
        ClearAll
        
        For i From 1 To 2
          {Ask} {Answer} TypeIn "Fast Delete"
          If i=1
             Then Moveto [Data de Emissao        ] TypeIn "~VSDGDTINI"
                  Moveto [Hora de Saida          ] TypeIn "<~VSDGHRINI"
             Else Moveto [Data de Emissao        ] TypeIn "~VSDGDTFIM"
                  Moveto [Hora de Saida          ] TypeIn ">~VSDGHRFIM"
          EndIf
          Do_It!
          ClearAll
        EndFor
        
endif                           

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc RM_0246C_Adiciona_Dados()

If IsEmpty("Answer")
   Then Return
EndIf


EndProc

;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc RM_0246C_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 Check
Moveto [Codigo do Item        ] Example "_Ite"
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item        ] Example "_Ite"
Moveto [Codigo da Familia     ] Check
Moveto [Descricao da Familia  ] Check
Do_It!
ClearAll

Delete Tabela

Empty "\\Base\\Sistemas\\Vendas\\Rm_0242"
Copy "\\Base\\Sistemas\\Vendas\\Rm_0242"  Tabela

Adiciona_Dados_Tabela(TABELA)    
                               
;****** 2. Selecao *************************************************************
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Serie do Documento     ] Check
Moveto [Numero do Documento    ] TypeIn "calc Min, Calc Max"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa        ] Example "CodE" 
Moveto [Serie do Documento       ] Example "Seri"
Moveto [Min of Numero do Document] Example "Min"
Moveto [Max of Numero do Document] Example "Max"
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa        ] Example "CodE" 
Moveto [Serie do Documento       ] Example "Seri"
Moveto [Descricao da Cor_Tecido  ] TypeIn "Changeto " Example "Min"
Moveto [NCM                      ] TypeIn "Changeto " Example "Max"
Do_It!
ClearAll

EndProc    ;  (Processa)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_0246C_Principal()

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

Tabela=Cria_Temp(PrivDir())

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
 If IsTable("Answer")     Then Delete "Answer" EndIf
 RM_0246C_Seleciona()
 If Not IsTable("Answer") Then Loop EndIf
 If IsTable(Tabela)
    Then Add "Answer" Tabela
    Else Rename "Answer" Tabela
 EndIf
EndWhile

If not IsEmpty(Tabela)
   Then 
        RM_0246C_Processa()

        switch
          case VSDGCODMODELO="26"   : CopyReport "\\Base\\Sistemas\\Vendas\\Rm_0242" "R" Tabela "R"
          case VSDGCODMODELO="26A"  : CopyReport "\\Base\\Sistemas\\Vendas\\Rm_0242" "1" Tabela "R"
          case VSDGCODMODELO="26B"  : CopyReport "\\Base\\Sistemas\\Vendas\\Rm_0242" "2" Tabela "R"
        endswitch
        IMPRIREL(Tabela,"R")
  
   Else MENSAGEM("N„o existem registros a processar")
EndIf

Delete Tabela
EndProc

;-- Chamada principal ----------------------------------------------------------
RM_0246C_Principal()

Release Vars Tabela
Release Procs RM_0246C_Principal, RM_0246C_Seleciona, RM_0246C_Adiciona_Dados, RM_0246C_Processa 

