;** Rm_0275D *******************************************************************
;*  Producao Requisitante/familia/item                                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 13/07/2018 por Anivel Augusto Rodrigues
;Ultima Alteracao: 30/07/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ask tipo do item nova fun‡Æo

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc SelecionaRm_0275D()
ClearAll

If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqItem")
   Then
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ] Example "cite"
        Moveto [Descricao do Item      ] Check 
        Moveto [Unidade Interna        ] Check 
        Moveto [Tipo do Item           ] Check 
        Ask_EstoqueTpItem("")
        Moveto [Descricao Tipo do Item ] Check 
        Moveto [Codigo da Familia      ] Check TypeIn "~VSDGFAMI.."
        Moveto [Descricao da Familia   ] Check 
        Moveto [Codigo do Grupo        ] Check TypeIn "~VSDGGRP.."
        Moveto [Descricao do Grupo     ] Check 
        Moveto [Codigo da Marca        ] Check TypeIn "~VSDGMARCA.."
        Moveto [Descricao da Marca     ] Check 
        Moveto [Referencia             ] Check TypeIn "~VSDGREFERENCIA.."
        
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca" Enter
        Moveto [Numero do Lancamento  ] Example "NUMERO"
        Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA2.."
        Moveto [Nome Fantasia Empresa ] Check
        Moveto [Data de Ocorrencia    ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Tipo de Movimento     ] TypeIn "E"
        Moveto [Tipo de Operacao      ] TypeIn "P Or I"
        Moveto [Requisitante          ] Check TypeIn "~VSDGREQUISIT.."
        Moveto [Descricao Requisitante] Check
        
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqItem" Enter
        Moveto [Numero do Lancamento  ] Example "NUMERO"
        Moveto [Codigo do Item        ] Check Example "cite" TypeIn ", ~VSDGITEM.."
        Moveto [Quantidade            ] TypeIn "Calc Sum as Quantidade"
        Moveto [Custo Total           ] TypeIn "Calc Sum as Custo Total"
        If CheckTG_OPCCUSTO[1]
          Then Moveto [Codigo CCusto          ] Check TypeIn "Not Blank, ~VSDGCCUSTO.."
          Else Moveto [Codigo CCusto          ] Check TypeIn "~VSDGCCUSTO.."
        Endif
        Moveto [Descricao CCusto       ] Check
        Do_It!
        ClearAll
        
        If IsTable(Tabela)
          Then Add "Answer" Tabela
          Else Rename "Answer" Tabela
        EndIf 
        ClearAll
EndIf

EndProc   ; (SelecionaRm_0275D)

;*******************************************************************************
;* ROTINA Ajusta Dados Empresa                                                 *
;*******************************************************************************
Proc ProcessaRm_0275D()

;***** 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
EndIf

{Ask} TypeIn Tabela Enter 
Moveto [Codigo da Empresa      ] Check
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Requisitante           ] Check 
Moveto [Descricao Requisitante ] Check
Moveto [Tipo do Item           ] Check 
Moveto [Descricao Tipo do Item ] Check 
Moveto [Codigo da Familia      ] Check 
Moveto [Descricao da Familia   ] Check 
Moveto [Codigo do Item         ] Check 
Moveto [Descricao do Item      ] Check 
Moveto [Unidade Interna        ] Check 
Moveto [Quantidade             ]       TypeIn "Calc Sum as Quantidade"
Moveto [Custo Total            ]       TypeIn "Calc Sum as Custo Total"
Do_It!
ClearAll

Ordem_Campo_Tabela("Answer","Codigo da Empresa , Nome Fantasia Empresa, "+
                            "Requisitante, Descricao Requisitante, "+
                            "Tipo do Item, Descricao Tipo do Item, "+
                            "Codigo da Familia, Descricao da Familia, "+
                            "Codigo do Item, Descricao do Item, Unidade Interna, Quantidade, Custo Total")
ClearAll

Delete Tabela

Tabela=Cria_Temp(PrivDir())
Rename "Answer" Tabela
ClearAll
                            
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc PrincipalRm_0275D()

AGUARDE("Aguarde, Gerando o Relat¢rio")
Tabela=Cria_Temp(PrivDir())

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

If not IsEmpty(Tabela)
   then
        ProcessaRm_0275D()

        CopyReport "\\Base\\Sistemas\\Estoque\\Rm_0275" "3" Tabela "R"
        switch
          case VSDGOPRELCODALFRANK2="2"  : Seta_Ordem_Report(Tabela,"R","Codigo do Item","Descricao do Item","")
          case VSDGOPRELCODALFRANK2="3"  : Seta_Ordem_Report(Tabela,"R","Codigo do Item","Quantidade"       ,"D")
          case VSDGOPRELCODALFRANK2="4"  : Seta_Ordem_Report(Tabela,"R","Codigo do Item","Custo Total"      ,"D")
        endswitch
   
        IMPRIREL(Tabela,"R")
   else 
        MENSAGEM("N„o existem registros a processar")
EndIf

If IsTable(Tabela)   Then Delete Tabela   EndIf
If IsTable("Answer") Then Delete "Answer" EndIf

EndProc

;-- Chamada principal ----------------------------------------------------------
PrincipalRm_0275D()

Release Vars Tabela
Release Procs PrincipalRm_0275D, SelecionaRm_0275D, ProcessaRm_0275D

