;** RM_3002X ********************************************************************
;*  Resumo de Compra/Venda/Estoque II                                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 17/06/2011 por Karina Andrade
;Ultima Alteracao: 30/08/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Entradas Faturamento para custo medio DEVOL/MANIF/CONSIG/REQUIS
;Ultima Alteracao: 01/09/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes OF em aberto situa‡Æo TROCA
;Ultima Alteracao: 06/06/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Adciona_Dados() e Seleciona_Estoque
;Ultima Alteracao: 10/07/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro na ask do NotaI "Situacao_Item"
;Ultima Alteracao: 19/09/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Substitui‡Æo Editor novo arquivo por FileWrite
;Ultima Alteracao: 19/05/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes GetRecord "Iten_Com" p/ o campo [Situacao]
;Ultima Alteracao: 18/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 22/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado TG_CODMODELO, TG_CODMODELO_COMCASASDECIMAIS
;Ultima Alteracao: 26/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado SetaVisualizarCasasDecimais(),ConfigOpcoes()
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 01/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes sort report                  
;Ultima Alteracao: 19/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes origem da tabela
;Ultima Alteracao: 24/12/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado Bib_Proc
;Ultima Alteracao: 07/05/2020 por Bruno Carvalho                                     
;Motivo Alteracao: Acessado pelo RM_3002
;Ultima Alteracao: 07/05/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo de escolha do "Tipo de Opera‡Æo" (Compra e/ou Transferˆncia) e ajustes na ASK pelo controle VSDGOPDT *RM_3002

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc RM_3002X_Seleciona()
ClearAll
AGUARDE("Aguarde, selecionando entradas/saidas")

;*** Faturamento ***
For I From 1 To 3
  If Not IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") Or
     Not IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
     Then Loop
  EndIf

   
  {Ask} {\\Sistemas\\Estoque\\Iten_Com}
  Moveto [Codigo do Item         ] Example "cite"
  Moveto [Situacao               ] TypeIn VSDGSITITEM
  
  {Ask} {\\Sistemas\\Estoque\\Itens}
  Moveto [Codigo do Item         ] Example "cite"
  Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
  Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
  Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
  
  {Ask} {\\Sistemas\\Vendas\\Destin}
  Moveto [Codigo da Destinacao     ] Example "destin"
  Moveto [Atualiza Estoque         ] TypeIn "S"
  {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
  Moveto [Codigo da Empresa        ] Check Example "emp" TypeIn ", ~VSDGEMPRESA.."
  Moveto [Numero do Documento      ] Example "doc"
  Moveto [Serie do Documento       ] Example "ser"
  Moveto [Codigo da Destinacao     ] Example "destin"
  Moveto [Data de Saida            ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
  Switch
    Case i=1: Moveto [Tipo Movimento Estoque   ] TypeIn "S"
              Moveto [Descricao da Destinacao  ] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."            
    Case i=2: Moveto [Tipo Movimento Estoque   ] TypeIn "E"
              Moveto [Descricao da Destinacao  ] TypeIn "..DEVOL.."
    Case i=3: Moveto [Tipo Movimento Estoque   ] TypeIn "S"
              Moveto [Descricao da Destinacao  ] TypeIn "..DEVOL.."              
  EndSwitch
  Moveto [Situacao                 ] TypeIn "Not C"
  {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
  Moveto [Codigo da Empresa        ] Example "emp"
  Moveto [Numero do Documento      ] Example "doc"
  Moveto [Serie do Documento       ] Example "ser"
  Moveto [Codigo do Item           ] Check Example "cite" TypeIn ", ~VSDGITEM.."
  Moveto [Tipo do Item             ]
  Switch
     Case VSDGTIPOEST = "1"       : Ask_Estoque("Tipo do Item","ItensAlmoxarifado")
     Case VSDGTIPOEST = "2"       : TypeIn "T or P or S"
     Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
          If VSDGTIPOEST="P" Then TypeIn " Or S" EndIf
     OtherWise                    : Ask_Estoque("Tipo do Item","NaoControlaEstoque")
  EndSwitch
  Moveto [Preco Total              ] Check TypeIn "Calc Sum as Preco Total"
  Moveto [Valor Desconto Total     ] Check TypeIn "Calc Sum as Valor Desconto Total"
  Moveto [Quantidade               ] TypeIn "Calc Sum as Quantidade"
  Moveto [Situacao_Item            ] TypeIn "Not C"
  Do_It!
  ClearAll

  Switch
    Case i=1 : RM_3002X_Adiciona_Dados("SAIDAS")
    Case i=2 : RM_3002X_Adiciona_Dados("DEVOL_CLI")
    Case i=3 : RM_3002X_Adiciona_Dados("DEVOL_FOR")    
  EndSwitch
EndFor

If VSDGOPOF="S"  And Dir_Trab="" And IsTable("\\Sistemas\\Vendas\\FaturaC")
   Then
        For I From 1 To 3
          {Ask} {\\Sistemas\\Estoque\\Iten_Com}
          Moveto [Codigo do Item         ] Example "cite"
          Moveto [Situacao               ] TypeIn VSDGSITITEM
          
          {Ask} {\\Sistemas\\Estoque\\Itens}
          Moveto [Codigo do Item         ] Example "cite"
          Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
          Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
          Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
          
          ;*** Ordem de Faturamento ***
          {Ask} {\\Sistemas\\Vendas\\Destin}
          Moveto [Codigo da Destinacao     ] Example "destin"
          Moveto [Atualiza Estoque         ] TypeIn "S"
          {Ask} {\\Sistemas\\Vendas\\FaturaC}
          Moveto [Numero da OF             ] Example "doc"
          Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
          Moveto [Codigo da Destinacao     ] Example "destin"

          Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
          Switch
            Case i=1: Moveto [Tipo Movimento Estoque   ] TypeIn "S"
                      Moveto [Descricao da Destinacao  ] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."            
            Case i=2: Moveto [Tipo Movimento Estoque   ] Check TypeIn "E"
                      Moveto [Descricao da Destinacao  ] TypeIn "..DEVOL.."
            Case i=3: Moveto [Tipo Movimento Estoque   ] Check TypeIn "S"
                      Moveto [Descricao da Destinacao  ] TypeIn "..DEVOL.."              
          EndSwitch
          Moveto [Numero Nota Gerada       ] TypeIn "Blank"
          {Ask} {\\Sistemas\\Vendas\\FaturaI}
          Moveto [Numero da OF             ] Example "doc"
          Moveto [Codigo do Item           ] Check Example "cite" TypeIn ", ~VSDGITEM.."

          Moveto [Tipo do Item             ]
          Switch
             Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
             Case VSDGTIPOEST = "2"       : TypeIn "T or P or S"
             Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
                  If VSDGTIPOEST="P" Then TypeIn " Or S" EndIf
             OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
          EndSwitch
          Moveto [Preco Total              ] Check TypeIn "Calc Sum as Preco Total"
          Moveto [Valor Desconto Total     ] Check TypeIn "Calc Sum as Valor Desconto Total"
          Moveto [Quantidade               ] TypeIn "Calc Sum as Quantidade"
          Do_It!
          ClearAll

          Switch
            Case i=1 : RM_3002X_Adiciona_Dados("SAIDAS")
            Case i=2 : RM_3002X_Adiciona_Dados("DEVOL_CLI")
            Case i=3 : RM_3002X_Adiciona_Dados("DEVOL_FOR")    
          EndSwitch
        EndFor

        ;*** Ordem de Faturamento de Entrada/Troca ***
        {Ask} {\\Sistemas\\Estoque\\Iten_Com}
        Moveto [Codigo do Item         ] Example "cite"
        Moveto [Situacao               ] TypeIn VSDGSITITEM
        
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ] Example "cite"
        Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
        Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
        Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
        
        {Ask} {\\Sistemas\\Vendas\\Destin}
        Moveto [Codigo da Destinacao     ] Example "destin"
        Moveto [Atualiza Estoque         ] TypeIn "S"
        {Ask} {\\Sistemas\\Vendas\\FaturaC}
        Moveto [Numero da OF             ] Example "doc"
        Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Codigo da Destinacao     ] Example "destin"
        Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        
        Moveto [Tipo Movimento Estoque   ] TypeIn "S"
        Moveto [Descricao da Destinacao  ] TypeIn "..TROCA.. ..VEND.."

        Moveto [Numero Nota Gerada       ] TypeIn "Blank"
        {Ask} {\\Sistemas\\Vendas\\FaturaID}
        Moveto [Numero da OF             ] Example "doc"
        Moveto [Codigo do Item           ] Check Example "cite" TypeIn ", ~VSDGITEM.."

        Moveto [Tipo do Item             ]
        Switch
           Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
           Case VSDGTIPOEST = "2"       : TypeIn "T or P or S"
           Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
                If VSDGTIPOEST="P" Then TypeIn " Or S" EndIf
           OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
        EndSwitch
        Moveto [Preco Total              ] TypeIn "Calc Sum as Preco Total"
        Moveto [Valor Desconto Total     ] TypeIn "Calc Sum as Valor Desconto Total"
        Moveto [Quantidade               ] TypeIn "Calc Sum as Quantidade"
        Do_It!
        ClearAll

        RM_3002X_Adiciona_Dados("DEVOL_CLI")
EndIf

;*** Notas de Entrada/Estoque ***
For I From 1 To 2
  If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
     IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
     Then {Ask} {\\Sistemas\\Estoque\\Iten_Com}
          Moveto [Codigo do Item         ] Example "cite"
          Moveto [Situacao               ] TypeIn VSDGSITITEM
 
          {Ask} {\\Sistemas\\Estoque\\Itens}
          Moveto [Codigo do Item         ] Example "cite"
          Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
          Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
          Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."

          {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter
          Moveto [Numero do Lancamento     ] Example "doc"
          Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
          Moveto [Data de Entrada          ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
          Switch
            Case i=1: Switch
                        Case VSDGOPDT=1 : Moveto [Tipo de Operacao] TypeIn "C"
                        Case VSDGOPDT=2 : Moveto [Tipo de Operacao] TypeIn "T"
                        Case VSDGOPDT=3 : Moveto [Tipo de Operacao] TypeIn "C or T"
                      EndSwitch
            Case i=2: Moveto [Tipo de Operacao         ] TypeIn "D"
          EndSwitch  
          {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
          Moveto [Numero do Lancamento     ] Check Example "doc"
          Moveto [Sequencia do Lancamento  ] Check
          Moveto [Codigo do Item           ] Check Example "cite" TypeIn ", ~VSDGITEM.."

          Moveto [Tipo do Item             ]
          Switch
             Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
             Case VSDGTIPOEST = "2"       : TypeIn "T or P or S"
             Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
                  If VSDGTIPOEST="P" Then TypeIn " Or S" EndIf
             OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
          EndSwitch
          Moveto [Valor Desconto Total     ] Check
          Moveto [Quantidade Convertida    ] Check TypeIn "As Quantidade"
          Moveto [Custo Medio Unitario     ] Check TypeIn "As Preco Total"
          Do_It!
          ClearAll

          {Ask} {Answer}
          Moveto [Codigo da Empresa        ] Check
          Moveto [Codigo do Item           ] Check
          Moveto [Preco Total              ] Check
          Moveto [Valor Desconto Total     ] TypeIn "Calc Sum As Valor Desconto Total"
          Moveto [Quantidade               ] TypeIn "Calc Sum As Quantidade"
          
          Do_It!
          ClearAll

          Switch
            Case i=1 : RM_3002X_Adiciona_Dados("ENTRADAS")
            Case i=2 : RM_3002X_Adiciona_Dados("DEVOL_CLI")
          EndSwitch
  EndIf
EndFor  
EndProc

;*******************************************************************************
;* Adiciona Dados                                                              *
;*******************************************************************************
Proc RM_3002X_Adiciona_Dados(Tipo)

ClearAll
If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Answer}
Moveto [Codigo da Empresa        ] Example "emp"
Moveto [Codigo do Item           ] Example "ite"
Moveto [Quantidade               ] Example "qtd"
Moveto [Preco Total              ] TypeIn "_ptot"
Moveto [Valor Desconto Total     ] TypeIn "_vdes"

{Ask} TypeIn TabelaP Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa        ] Example "emp"
Moveto [Codigo do Item           ] Example "ite"

Switch
 Case Tipo="ENTRADAS"  : Moveto [Entradas       ] Example "qtd"
                         Moveto [Preco de Custo ] TypeIn "_ptot" 
                         
 Case Tipo="SAIDAS"    : Moveto [Saidas         ] Example "qtd"
                         Moveto [Preco de Venda ] TypeIn "_ptot - _vdes" 
                         
 Case Tipo="DEVOL_CLI" : Moveto [Saidas         ] TypeIn "_qtd*-1"
                         Moveto [Preco de Venda ] TypeIn "(_ptot-_vdes)*-1"

 Case Tipo="DEVOL_FOR" : Moveto [Entradas       ] TypeIn "_qtd*-1"
                         Moveto [Preco de Custo ] TypeIn "_ptot*-1"
EndSwitch
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Ajusta Dados                                                                *
;*******************************************************************************
Proc RM_3002X_Ajusta_Dados()
ClearAll

AGUARDE("Aguarde, processando dados")

;******** Agrupa Dados *******
{Ask} TypeIn TabelaP Enter
Moveto [Codigo da Empresa     ] Check
Moveto [Codigo do Item        ] Check
Moveto [Entradas              ] TypeIn "Calc Sum As Entradas"
Moveto [Saidas                ] TypeIn "Calc Sum As Saidas"
Moveto [Preco de Custo        ] TypeIn "Calc Sum As Preco de Custo"
Moveto [Preco de Venda        ] TypeIn "Calc Sum As Preco de Venda"
Do_It!
ClearAll

Empty(TabelaP)

{Ask} {Answer}
Moveto [Codigo da Empresa     ] Example "emp"
Moveto [Codigo do Item        ] Example "ite"
Moveto [Entradas              ] Example "qtde"
Moveto [Saidas                ] Example "qtds"
Moveto [Preco de Custo        ] Example "pc"
Moveto [Preco de Venda        ] Example "pv"

{Ask} TypeIn TabelaP Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa     ] Example "emp"
Moveto [Codigo do Item        ] Example "ite"
Moveto [Entradas              ] Example "qtde"
Moveto [Saidas                ] Example "qtds"
Moveto [Preco de Custo        ] Example "pc"
Moveto [Preco de Venda        ] Example "pv"
Do_It!
ClearAll

;******** Saldo Atual *******
{Ask} {\\Sistemas\\Estoque\\Iten_Com}
Moveto [Codigo do Item         ] Example "cite"
Moveto [Situacao               ] TypeIn VSDGSITITEM

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "cite"
Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
Moveto [Tipo do Item           ]
Switch
   Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
   Case VSDGTIPOEST = "2"       : TypeIn "T or P or S"
   Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
        If VSDGTIPOEST="P" Then TypeIn " Or S" EndIf
   OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
EndSwitch
{Ask} {\\Sistemas\\Estoque\\SdEstq}
Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Codigo do Item        ] Check Example "cite" TypeIn ", ~VSDGITEM.."
Moveto [Mes Referencia        ] TypeIn "~VSDGMES"
Moveto [Ano Referencia        ] TypeIn "~VSDGANO"
Moveto [Saldo Atual           ] Check 
Do_It!
ClearAll

CoEdit TabelaP,"Answer"
Scan
  Moveto TabelaP
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa],"",[Answer->Codigo do Item]
  If Not RetVal
     Then 
          End
          Down
          [Codigo da Empresa     ] = [Answer->Codigo da Empresa      ]
          [Codigo do Item        ] = [Answer->Codigo do Item         ]
  EndIf
  [Saldo Atual] = [Answer->Saldo Atual]

  UnLockRecord
  
  Moveto "Answer"
EndScan
Do_It!
ClearAll

;******* Ajusta dados do cadastro de Empresas ******
{Ask} {\\Sistemas\\Cadastro\\Empresas}
Moveto [Codigo da Empresa     ] example "empr"
Moveto [Nome Fantasia Empresa ] example "nome"
{Ask} TypeIn TabelaP Enter TypeIn "Fast"
Moveto [Codigo da Empresa     ] example "empr"
Moveto [Nome Fantasia Empresa ] TypeIn "Changeto " example "nome"
Do_It!
ClearAll

;******** Ajusta dados do cadastro de Itens ********
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "item"
Moveto [Descricao do Item      ] Example "desc"
Moveto [Unidade Interna        ] Example "un"
Moveto [Descricao Tipo do Item ] Example "dtp"
Moveto [Codigo da Familia      ] Example "cfam"
Moveto [Descricao da Familia   ] Example "dfam"
Moveto [Codigo do Grupo        ] Example "cgru"
Moveto [Descricao do Grupo     ] Example "dgru"
Moveto [Codigo da Marca        ] Example "cmar"
Moveto [Descricao da Marca     ] Example "dmar"

{Ask} TypeIn TabelaP Enter TypeIn "Fast"
Moveto [Codigo do Item        ] example "item"
Moveto [Descricao do Item     ] TypeIn "Changeto " Example "desc"
Moveto [Unidade Interna       ] TypeIn "Changeto " Example "un"
Moveto [Descricao Tipo do Item] TypeIn "Changeto " Example "dtp"
Moveto [Codigo da Familia     ] TypeIn "Changeto " Example "cfam"
Moveto [Descricao da Familia  ] TypeIn "Changeto " Example "dfam"
Moveto [Codigo do Grupo       ] TypeIn "Changeto " Example "cgru"
Moveto [Descricao do Grupo    ] TypeIn "Changeto " Example "dgru"
Moveto [Codigo da Marca       ] TypeIn "Changeto " Example "cmar"
Moveto [Descricao da Marca    ] TypeIn "Changeto " Example "dmar"
Do_It!
ClearAll

;******** Somente Tipo de itens *******
{Ask} TypeIn TabelaP Enter Check
Moveto [Tipo do Item         ]
Switch
   Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
   Case VSDGTIPOEST = "2"       : TypeIn "T or P or S"
   Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
   OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
EndSwitch
Do_It!
ClearAll

;** Elimina os Inativos **********************
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item        ] example "item"
Moveto [Inativo               ] TypeIn "S"
{Ask} {Answer} TypeIn "Fast Delete"
Moveto [Codigo do Item        ] example "item"
Do_It!
ClearAll

{Ask} {Answer} TypeIn "Fast"
Moveto [Entradas              ] TypeIn "blank, changeto 0" Down
Moveto [Saidas                ] TypeIn "blank, changeto 0" Down
Moveto [Preco de Custo        ] TypeIn "blank, changeto 0" Down
Moveto [Preco de Venda        ] TypeIn "blank, changeto 0" Down
Moveto [Saldo Atual           ] TypeIn "blank, changeto 0"
Do_It!
ClearAll

EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_3002X_Principal()

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

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

RM_3002X_Ajusta_Dados()

If IsEmpty("Answer")
   Then MENSAGEM("N„o Existem Registros a Processar")
        Delete TabelaP
   Else Impressao_Orientacao="Paisagem"
        CopyReport "\\Base\\Sistemas\\Estoque\\Rm_3002" "2" "Answer" "R"
        
        If VSDGOPRELCODALF="2"
           Then Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
        EndIf
      
        SetaVisualizarCasasDecimais("14")
      
        IMPRIREL("Answer","R")
      
        Delete "Answer"
        Delete TabelaP
        
        ConfigOpcoes("ModeloRelatorio/CasasDecimais","Gravar","PO_3002B")
EndIf
EndProc

;-- Chamada principal ----------------------------------------------------------
RM_3002X_Principal()

Release Vars Tabela
Release Procs RM_3002X_Principal,RM_3002X_Seleciona,RM_3002X_Adiciona_Dados,RM_3002X_Ajusta_Dados