 ;** RM_0501 *******************************************************************
;*  Liberacao de Pedidos com Estoque                                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    :   /  /     por                         
;Ultima Alteracao: 02/10/2015 por Bruno Carvalho  
;Motivo Alteracao: Incluido "I" no [Tipo de Operacao] para fornecer registros quando for requisi‡äes de Industrializa‡Æo
;Ultima Alteracao: 26/10/2015 por Andrey Fillipe  
;Motivo Alteracao: Corrigido "TG_OPANALISE" para "YES"
;Ultima Alteracao: 28/10/2015 por Bruno Carvalho
;Motivo Alteracao: Adicionado Identifica_MesAno_Periodo() e adicionado parte do processo Seleciona_Estoque() na proc Seleciona_NotaC()
;Ultima Alteracao: 01/02/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustado Monta_Dir_Trab() quando ‚ feito o Verifica_Mov(), p/ resgatar o primeiro dia do mˆs anterior e o ultimo dia do mˆs posterior
;Ultima Alteracao: 14/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 03/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Nota Entrada Opera‡Æo para Impostos 
;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: 26/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes variavel casas decimais

;*******************************************************************************
;* Rotina p/ Verificar se existe movimentacao no mes em aberto/fechado         *
;*******************************************************************************
Proc Verifica_Mov()
ClearAll

;*** Notas de Saida/Faturamento ***
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Numero do Documento      ] Check
        Moveto [Serie do Documento       ] Check
        Moveto [Data de Saida            ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Do_It!
        ClearAll
        If Not IsEmpty("Answer")
           Then MSG_MODULO=MSG_MODULO+"Faturamento - "+Dir_Trab+"//"
                PROCESSAR_DADOS=False
        EndIf
EndIf                  

;*** Notas de Entrada/Estoque ***
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC")
   Then {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter
        Moveto [Numero do Lancamento     ] Check
        Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Entrada          ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Do_It!
        ClearAll
        If Not IsEmpty("Answer")
           Then MSG_MODULO=MSG_MODULO+"Estoque - "+Dir_Trab+"//"
                PROCESSAR_DADOS=False
        EndIf
EndIf

;*** Requisicoes/Estoque ***
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca")
   Then {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca" Enter
        Moveto [Numero do Lancamento     ] Check
        Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Ocorrencia       ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Do_It!
        ClearAll
        If Not IsEmpty("Answer")
           Then MSG_MODULO=MSG_MODULO+"Estoque - "+Dir_Trab+"//"
                PROCESSAR_DADOS=False
        EndIf
EndIf

EndProc    ; (Verifica_Mov)

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

;*** Faturamento ***
For ii From 1 To CONT_REGRA
  For I From 1 To 2
    If Not IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") Or
       Not IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
       Then Loop
    EndIf
    
    {Ask} {\\Sistemas\\Estoque\\Itens}
    Moveto [Codigo do Item         ] Example "cite"
    Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
    Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
    Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
  
    {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"
    Switch
      Case REGRA_DATA_ESTOQUE = "Antiga"    : Moveto [Data de Saida  ] TypeIn ">=~AUX_DTINI, <=~AUX_DTFIM"
      Case REGRA_DATA_ESTOQUE = "Transicao" : If ii=1
                                                Then Moveto [Data de Emissao] TypeIn "<~AUX_DTINI" 
                                                     Moveto [Data de Saida  ] TypeIn ">=~AUX_DTINI, <=~AUX_DTFIM"
                                                Else Moveto [Data de Emissao] TypeIn ">=~AUX_DTINI, <=~AUX_DTFIM"
                                              EndIf
      Case REGRA_DATA_ESTOQUE = "Nova"      : Moveto [Data de Emissao] TypeIn ">=~AUX_DTINI, <=~AUX_DTFIM"
    EndSwitch
    Switch
      Case i=1: Moveto [Tipo Movimento Estoque   ] TypeIn "S"
      Case i=2: Moveto [Tipo Movimento Estoque   ] TypeIn "E"
    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"
    Moveto [Tipo do Item             ] TypeIn "T or P"
    Moveto [Quantidade               ] TypeIn "Calc Sum as Quantidade"
    Moveto [Situacao_Item            ] TypeIn "Not C"
    Do_It!
    ClearAll
    
    Switch
      Case i=1: Adiciona_Dados("SAIDAS")
      Case i=2: Adiciona_Dados("ENTRADAS")
    EndSwitch
  EndFor
EndFor

EndProc ;Seleciona_NotaC() 

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

If VSDGOPOF="S"  And Dir_Trab="" And IsTable("\\Sistemas\\Vendas\\FaturaC")
   Then
        For I From 1 To 2

          {Ask} {\\Sistemas\\Estoque\\Itens}
          Moveto [Codigo do Item         ] Example "cite"
          Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
          Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
          Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."

          ;*** 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"
          If i=1
             Then Moveto [Tipo Movimento Estoque   ] TypeIn "S"
             Else Moveto [Tipo Movimento Estoque   ] TypeIn "E"
          EndIf
          Moveto [Numero Nota Gerada       ] TypeIn "Blank"
          {Ask} {\\Sistemas\\Vendas\\FaturaI}
          Moveto [Numero da OF             ] Example "doc"
          Moveto [Codigo do Item           ] Check Example "cite"

          Moveto [Tipo do Item             ] TypeIn "T or P"
          Moveto [Quantidade               ] TypeIn "Calc Sum as Quantidade"
          Do_It!
          ClearAll

          If i=1
             Then Adiciona_Dados("SAIDAS")
             Else Adiciona_Dados("ENTRADAS")
          EndIf
        EndFor
        
        If Not IsEmpty("\\Sistemas\\Vendas\\FaturaID")
           Then ;*** Ordem de Faturamento de Entrada/Troca ***
                {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item         ] Example "cite"
                Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
                Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
                Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
                {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 [Descricao da Destinacao  ] TypeIn "..TROCA.."
                Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
                Moveto [Tipo Movimento Estoque   ] TypeIn "S"
                Moveto [Numero Nota Gerada       ] TypeIn "Blank"
                {Ask} {\\Sistemas\\Vendas\\FaturaID}
                Moveto [Numero da OF             ] Example "doc"
                Moveto [Codigo do Item           ] Check Example "cite"
                Moveto [Tipo do Item             ] TypeIn "T or P"
                Moveto [Quantidade               ] TypeIn "Calc Sum as Quantidade"
                Do_It!
                ClearAll
        
                Adiciona_Dados("ENTRADAS")
        EndIf
EndIf

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

          {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"
          Moveto [Tipo de Operacao         ] TypeIn "Not A, Not I"
          {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"

          Moveto [Tipo do Item             ] TypeIn "T or P"
          Moveto [Quantidade Convertida    ] Check TypeIn "As Quantidade"
          Do_It!
          ClearAll

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

          Adiciona_Dados("ENTRADAS")
EndIf

;*** Requisicoes/Estoque ***
For I From 1 To 2
  If Not IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca") Or
     Not IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqItem")
     Then Loop
  EndIf

  {Ask} {\\Sistemas\\Estoque\\Itens}
  Moveto [Codigo do Item         ] Example "cite"
  Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
  Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
  Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."

  {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca" Enter
  Moveto [Numero do Lancamento     ] Example "doc"
  Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
  Moveto [Data de Ocorrencia       ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
  If i=1
     Then Moveto [Tipo de Movimento] TypeIn "S"
     Else Moveto [Tipo de Movimento] TypeIn "E"
  EndIf
  {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqItem" Enter
  Moveto [Numero do Lancamento     ] Example "doc"
  Moveto [Codigo do Item           ] Check Example "cite"

  Moveto [Tipo do Item             ] TypeIn "T or P"
  Moveto [Quantidade               ] TypeIn "Calc Sum As Quantidade"
  Do_It!
  ClearAll

  If i=1
     Then Adiciona_Dados("SAIDAS")
     Else Adiciona_Dados("ENTRADAS")
  EndIf
EndFor

If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqMatPri")
   Then
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ] Example "cite"
        Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
        Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
        Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."

        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca" Enter
        Moveto [Numero do Lancamento     ] Example "doc"
        Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Ocorrencia       ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Moveto [Tipo de Movimento        ] TypeIn "E"
        Moveto [Tipo de Operacao         ] TypeIn "P Or I"
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqMatPri" Enter
        Moveto [Numero do Lancamento     ] Example "doc"
        Moveto [Codigo do Item           ] Check Example "cite"

        Moveto [Tipo do Item             ] TypeIn "T or P"
        Moveto [Quantidade               ] TypeIn "Calc Sum As Quantidade"
        Do_It!
        ClearAll

        Adiciona_Dados("SAIDAS")
EndIf

EndProc


;*******************************************************************************
;* Ajusta Dados                                                                *
;*******************************************************************************
Proc Saldo_Inicial()

ClearAll
AGUARDE("Aguarde, Saldo Inicial")

;******** Saldo Inicial/Checagem Ficha de Estoque nao criada *******
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Check
Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
Moveto [Tipo do Item           ] TypeIn "T or P"

Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo do Item           ] Example "ite"
{Ask} TypeIn TabelaI Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA"
Moveto [Codigo do Item           ] Example "ite"
Do_It!
ClearAll

;******** Saldo Inicial *******
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "cite"
Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
Moveto [Tipo do Item           ] TypeIn "T or P"
{Ask} {\\Sistemas\\Estoque\\SdEstq}
Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Codigo do Item        ] Check Example "cite"
Moveto [Mes Referencia        ] TypeIn "~VSDGMES"
Moveto [Ano Referencia        ] TypeIn "~VSDGANO"
Moveto [Saldo Inicial         ] Check TypeIn "as Quantidade"
Do_It!
ClearAll

Adiciona_Dados("SALDOINICIAL")

;******** Agrupa Dados *******
{Ask} TypeIn TabelaI Enter
Moveto [Codigo da Empresa     ] Check
Moveto [Codigo do Item        ] Check
Moveto [Saldo                 ] TypeIn "Calc Sum As Saldo"
Do_It!
ClearAll

Empty(TabelaI)

{Modify} {Restructure} TypeIn TabelaI Enter
Right Right  " "
Down  " "
Do_It! ClearAll

Add "Answer" TabelaI
ClearAll

EndProc

;*******************************************************************************
;* Adiciona Dados                                                              *
;*******************************************************************************
Proc 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"

{Ask} TypeIn TabelaI Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa        ] Example "emp"
Moveto [Codigo do Item           ] Example "ite"
Switch
  Case Tipo="SAIDAS"           : Moveto [Saldo] TypeIn "_qtd*-1"
  OtherWise                    : Moveto [Saldo] TypeIn "_qtd"
EndSwitch
Do_It!
ClearAll

EndProc


;*******************************************************************************
;* Rotina p/ Inventario Final                                                  *
;*******************************************************************************
Proc Inventario()
AGUARDE("Aguarde, Invent rio Final")

TabelaIF=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Estoque\\Rm_1003" TabelaIF
Empty TabelaIF

{Ask} TypeIn TabelaI Enter
Moveto [Codigo da Empresa] Example "ce"
Moveto [Codigo do Item   ] Example "ci"
Moveto [Saldo            ] Example "sd"
{Ask} TypeIn TabelaIF Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa] Example "ce"
Moveto [Codigo do Item   ] Example "ci"
Moveto [Saldo Atual      ] Example "sd"
Do_It!
ClearAll

;***** Ajusta Dados ************************************
{Ask} {\\Sistemas\\Cadastro\\Empresas}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Nome Fantasia Empresa  ] Example "nemp"
{Ask} TypeIn TabelaIF Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Nome Fantasia Empresa  ] TypeIn "changeto _nemp"
Do_It!
ClearAll

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item        ] example "item"
Moveto [Tipo do Item          ] example "tp"
Moveto [Descricao do Item     ] example "desc"
Moveto [Unidade Interna       ] example "un"
Moveto [Referencia            ] example "rf"
{Ask} TypeIn TabelaIF Enter TypeIn "Fast"
Moveto [Codigo do Item        ] example "item"
Moveto [Tipo do Item          ] TypeIn "Changeto _tp"
Moveto [Descricao do Item     ] TypeIn "Changeto _desc"
Moveto [Unidade Interna       ] TypeIn "Changeto _un"
Moveto [Localizacao           ] TypeIn "Changeto _rf"
Do_It!
ClearAll

If VSDGZERADO="N"
   Then {Ask} TypeIn TabelaIF Enter TypeIn "Fast Delete"
        Moveto [Saldo Atual      ] TypeIn "=0"
        Do_It!
        ClearAll
EndIf

SetaVisualizarCasasDecimais("15")

IMPRIREL(TabelaIF,"5")
Delete TabelaIF

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc SELECIONA_PEDIDOS()

AGUARDE("Aguarde, selecionando pedidos de venda")
    
ClearAll

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "cite"
Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
Moveto [Referencia             ] Check    
                     
;If VSDGOPCAO[4]
;   Then {Ask} {\\Sistemas\\Vendas\\Expedc}
;        Moveto [Numero do Pedido] Example "Pedido"
;        Moveto [Situacao da OE  ] TypeIn "EM ABERTO Or LIBERADO"
;EndIf                

{Ask} {\\Sistemas\\Vendas\\PedidoC}
Moveto [Numero do Pedido       ] Example "Pedido" TypeIn ", ~VSDGPEDIDO.."
Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Situacao do Pedido     ] TypeIn "ABERTO"
Moveto [Data de Emissao        ] Check
Moveto [Data de Entrega        ] Check 
If IsBlank(VSDGPEDIDO)
   Then Moveto [Data de Entrega] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
EndIf   
Moveto [Codigo                 ] Check
Moveto [Razao Social           ] Check
Moveto [UF                     ] Check
Moveto [Cidade                 ] Check
Moveto [Codigo do Representante] Check
Moveto [Nome Fantasia Represent] Check
Moveto [Numero_Carregamento    ] Check
Moveto [Observacao do Pedido   ] Check
{Ask} {\\Sistemas\\Vendas\\PedidoI}
Moveto [Numero do Pedido       ] Check Example "Pedido"
Moveto [Item do Pedido         ] Check
Moveto [Codigo do Item         ] Check Example "cite"
Moveto [Descricao do Item      ] Check
Moveto [Tipo do Item           ] Check
Moveto [Codigo da Cor_Tecido   ] Check
Moveto [Descricao da Cor_Tecido] Check
Moveto [Unidade Fiscal         ] Check
Moveto [Quantidade             ] Check TypeIn ">" Example "qf"
Moveto [Quantidade Faturada    ] Check Example "qf"
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Answer} Check
Moveto [Quantidade             ] Example "q"
Moveto [Quantidade Faturada    ] Example "qf" TypeIn ", Calc _q-_qf as Saldo"
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Processa Dados                                                              *
;*******************************************************************************
Proc Processa()

If IsEmpty("Answer")
	 Then Return
EndIf

ClearAll
AGUARDE("Aguarde, processando Pedidos")         


Sort "Answer" On "Data de Entrega","Numero do Pedido","Item do Pedido"
ClearAll

PEDOK=True
NPED="***"

View "\\Sistemas\\Vendas\\ExpedC"
View "\\Sistemas\\Vendas\\ExpedI"
View TabelaP
View TabelaTP
View TabelaI
Coedit "Answer"
NR = NRecords("Answer")
Scan
  Barra(NR, RecNo())
  
  Aguarde("Aguarde, Processando pedidos "+BARRA_STRING)   

  If [Numero do Pedido]<>NPED
     Then Estorno()
          NPED=[Answer->Numero do Pedido]
          PEDOK=True
          QTDITPED =0
          QTDITMED =0
  EndIf

  SALDO_EXPED = 0
  Moveto "\\Sistemas\\Vendas\\ExpedC"
  Moveto [Numero do Pedido]
  Locate NPED
  If RetVal
     Then If [Situacao da OE]="EM ABERTO" Or 
             [Situacao da OE]="LIBERADO"
             Then Moveto "\\Sistemas\\Vendas\\ExpedI"
                  Moveto [Codigo do Item]
                  Locate [Answer->Codigo do Item]
                  If RetVal
                     Then While [Codigo do Item]=[Answer->Codigo do Item]
                             If [Numero da OE]=[\Sistemas\Vendas\ExpedC->Numero da OE]
                                Then SALDO_EXPED = SALDO_EXPED + [Quantidade_Expedida]
                             EndIf   
                             Skip
                             If Eot() Then QuitLoop EndIf
                             Locate Next [Answer->Codigo do Item]
                             If Not RetVal
                                Then QuitLoop
                             EndIf    
                          EndWhile
                  EndIf        
          EndIf
  EndIf           

  Moveto TabelaP
  End
  Down

  [Numero do Pedido       ]=[Answer->Numero do Pedido       ]
  [Codigo da Empresa      ]=[Answer->Codigo da Empresa      ]
  [Nome Fantasia Empresa  ]=[Answer->Nome Fantasia Empresa  ]
  [Data de Emissao        ]=[Answer->Data de Emissao        ]
  [Data de Entrega        ]=[Answer->Data de Entrega        ]
  [Codigo                 ]=[Answer->Codigo                 ]
  [Razao Social           ]=[Answer->Razao Social           ]
  [UF                     ]=[Answer->UF                     ]
  [Cidade                 ]=[Answer->Cidade                 ]
  [Codigo do Representante]=[Answer->Codigo do Representante]
  [Nome Fantasia Represent]=[Answer->Nome Fantasia Represent]
  [Numero_Carregamento    ]=[Answer->Numero_Carregamento    ]
  [Item do Pedido         ]=[Answer->Item do Pedido         ]
  [Codigo do Item         ]=[Answer->Codigo do Item         ]
  [Descricao do Item      ]=[Answer->Descricao do Item      ]
  [Descricao da Cor_Tecido]=[Answer->Descricao da Cor_Tecido]
  [Tipo do Item           ]=[Answer->Tipo do Item           ]
  [Qtde_Pedida            ]=[Answer->Quantidade             ]
  [Qtde_Faturada          ]=[Answer->Quantidade Faturada    ]
  [Observacao do Pedido   ]=[Answer->Observacao do Pedido   ]
  [Referencia             ]=[Answer->Referencia             ]
  If [Answer->Saldo]>0
     Then [Qtde_AFaturar  ]=[Answer->Saldo                  ]
  EndIf
  QTDE =[Qtde_AFaturar]
  FALTA=[Qtde_AFaturar]

  Moveto TabelaTP
  End
  Down
  [Codigo da Empresa      ]=[Answer->Codigo da Empresa      ]
  [Codigo do Item         ]=[Answer->Codigo do Item         ]
  [Saldo                  ]=QTDE
  UnLockRecord

  SALDOATUAL=0
  Moveto TabelaI
  Moveto [Codigo da Empresa]
  Locate [Answer->Codigo da Empresa],
         [Answer->Codigo do Item   ]
  If RetVal                           
     Then If [Saldo]>0
             Then SALDOATUAL=[Saldo]
          EndIf
          
          ;If SALDO_EXPED > 0
          ;   Then SALDOATUAL = SALDOATUAL + SALDO_EXPED
          ;EndIf
          
          NOVOSALDO=SALDOATUAL-QTDE
          If NOVOSALDO<0
             Then FALTA=QTDE-SALDOATUAL
                  PEDOK=False
             Else FALTA=0
          EndIf
          [Saldo]=[Saldo]-QTDE ;+ SALDO_EXPED
  EndIf

  Moveto TabelaP
  ;If SALDO_EXPED > 0
  ;   Then [Qtde_Expedida] = SALDO_EXPED
  ;        [Qtde_AExpedir] = QTDE - SALDO_EXPED
  ;   Else [Qtde_AExpedir] = QTDE
  ;EndIf   

  [Qtde_Falta     ]=SALDOATUAL
                                         
  Moveto "Answer"
EndScan
Estorno()
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Estorna Estoque e Limpa Pedido Temporario                                   *
;*******************************************************************************
Proc Calc_Media()

{Ask} TypeIn TabelaP Enter
Moveto [Numero do Pedido] Check
Moveto [Qtde_Falta      ] TypeIn "Calc Average as Media"
Do_It!
ClearAll

View "Answer"
Coedit TabelaP
Scan
  CODPED = [Numero do Pedido]
  
  Moveto "Answer"
  Moveto [Numero do Pedido]
  Locate CODPED
  If RetVal
     Then  Moveto TabelaP 
           Moveto [Qtde_Expedida]
           []=[Answer->Media]
           UnLockRecord
  EndIf
EndScan
Do_It!
ClearAll

{Ask} TypeIn TabelaP Enter
Moveto [Numero do Pedido] Check
Moveto [Qtde_aFaturar   ] TypeIn "Calc Sum as Total"
Do_It!
ClearAll

View "Answer"
Coedit TabelaP
Scan
  CODPED = [Numero do Pedido]
  
  Moveto "Answer"
  Moveto [Numero do Pedido]
  Locate CODPED
  If RetVal
     Then  Moveto TabelaP 
           Moveto [Qtde_Faturada]
           []=[Answer->Total]
           UnLockRecord
  EndIf
EndScan
Do_It!
ClearAll

{Ask} TypeIn TabelaP Enter
Moveto [Qtde_Expedida] Example "Media"
Moveto [Qtde_Faturada] Example "Total" TypeIn " , Changeto _Media*100/_Total"
Do_It!
ClearAll

EndProc
;*******************************************************************************
;* Estorna Estoque e Limpa Pedido Temporario                                   *
;*******************************************************************************
Proc Estorno()

If Not PEDOK ;And VSDGOPANALISE="2"
   Then Moveto TabelaTP
        Scan
          CopyToArray REGTEMP

          Moveto TabelaI
          Moveto [Codigo da Empresa]
          Locate REGTEMP["Codigo da Empresa"],
                 REGTEMP["Codigo do Item"]
          If RetVal
             Then [Saldo]=[Saldo]+REGTEMP["SALDO"]
          EndIf
          Moveto TabelaTP
        EndScan
EndIf

Moveto TabelaTP
Home
While True
  If Not RecordStatus("New")
     Then Del
     Else QuitLoop
  EndIf
EndWhile

EndProc

;*******************************************************************************
;* Seleciona Epedicao para impressao                                            *
;*******************************************************************************
Proc Seleciona_Expedicao()

{Ask} TypeIn TabelaP Enter
Moveto [Numero do Pedido   ] Check Example "NPed"
{Ask} {\\Sistemas\\Vendas\\Expedc}
Moveto [Numero do Pedido   ] Example "NPed"
Moveto [Numero da OE       ] Example "NOe"
{Ask} {\\Sistemas\\Vendas\\Expedi}
Moveto [Numero da OE       ] Example "NOe"
Moveto [Codigo do Item     ] Check
Moveto [Quantidade_Expedida] Check TypeIn ">0"
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf   

{Ask} {Answer}
Moveto [Numero do Pedido   ] TypeIn "_NPed"
Moveto [Codigo do Item     ] TypeIn "_CodI"
Moveto [Quantidade_Expedida] TypeIn "_QtdE"
{Ask} TypeIn TabelaP Enter
Moveto [Numero do Pedido   ] TypeIn "_NPed"   
Moveto [Codigo do Item     ] TypeIn "_CodI"   
Moveto [Qtde_Expedida      ] TypeIn "Changeto _QtdE" 
Do_It!
ClearAll

; Rotina para conferir todos os itens que ja tiveram sido expedidos, pois, sendo 
; estes expedidos, j  sairam do estoque e por esse motivo, nÆo precisam ser controlados
; o que resulta no saldo final do estoque (Qtd_Falta), onde nÆo ser  calculado.

{Ask} TypeIn TabelaP Enter
Moveto [Qtde_AFaturar    ] TypeIn "Blank, Changeto 0" Down 
Moveto [Qtde_Expedida    ] TypeIn "Blank, Changeto 0" Down
Moveto [Qtde_AExpedir    ] TypeIn "Blank, Changeto 0" Down
Moveto [Qtde_Falta       ] TypeIn "Blank, Changeto 0"
Do_It!
ClearAll

Copy TabelaP "Answer" 

{Ask} {Answer}
Moveto [Numero do Pedido   ] TypeIn "_NPed"
Moveto [Codigo do Item     ] TypeIn "_CodI"
Moveto [Qtde_AFaturar      ] TypeIn "_QtdAf" 
Moveto [Qtde_Expedida      ] TypeIn "_QtdEx"
Moveto [Qtde_AExpedir      ] TypeIn "_QtdA"
Moveto [Qtde_Falta         ] TypeIn "_QtdF"
{Ask} TypeIn TabelaP Enter 
Moveto [Numero do Pedido   ] TypeIn "_NPed"
Moveto [Codigo do Item     ] TypeIn "_CodI"                       
Moveto [Qtde_AExpedir      ] TypeIn "Changeto _QtdAf - _QtdEx"
Moveto [Qtde_Falta         ] TypeIn "Changeto _QtdF  - _QtdEx"
Do_It!
ClearAll

{Ask} TypeIn TabelaP Enter 
Moveto [Qtde_Pedida      ] TypeIn "0, Changeto blank" Down          
Moveto [Qtde_Faturada    ] TypeIn "0, Changeto blank" Down 
Moveto [Qtde_AFaturar    ] TypeIn "0, Changeto blank" Down              
Moveto [Qtde_Expedida    ] TypeIn "0, Changeto blank" Down             
Moveto [Qtde_AExpedir    ] TypeIn "0, Changeto blank" Down            
Moveto [Qtde_Falta       ] TypeIn "0, Changeto blank" Down
Do_It!
ClearAll

;*** Se quantidade que falta for < 0 , ‚ porque tem em estoque devido aos calculos acima... 
{Ask} TypeIn TabelaP Enter         
Moveto [Qtde_Falta       ] TypeIn "< 0, Changeto blank"
Do_It!
ClearAll

EndProc ;Seleciona_Expedicao()

;*******************************************************************************
;* Rotina para Agrupar Itens                                                   *
;*******************************************************************************
Proc Agrupa_Itens()

{Ask} TypeIn TabelaP Enter   
Moveto [Codigo da Empresa     ] Check
Moveto [Nome Fantasia Empresa ] Check
If VSDGOPRELANALSINT="1"
   Then Moveto [Codigo do Item] Check
        Moveto [Descricao do Item] Check
   Else Moveto [Referencia    ] Check Example "Ref" TypeIn ", as Codigo do Item"        
EndIf
Moveto [Qtde_Pedida      ] TypeIn "Calc Sum as Qtd Pedida"             
Moveto [Qtde_Faturada    ] TypeIn "Calc Sum as Qtd Faturada"               
Moveto [Qtde_AFaturar    ] TypeIn "Calc Sum as Qtd AFaturar"               
Moveto [Qtde_Expedida    ] TypeIn "Calc Sum as Qtd Expedida"               
Moveto [Qtde_AExpedir    ] TypeIn "Calc Sum as Qtd AExpedir"               
Moveto [Qtde_Falta       ] TypeIn "Calc Sum as Qtd Falta" 
Do_It!
ClearAll
 
Copy "Answer" "a1" 
                
If VSDGOPRELANALSINT="2"
   Then {Ask} {a1} Check
        Moveto [Codigo do Item   ] Example "CodI"
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item   ] TypeIn "..0000"
        Moveto [Referencia       ] Example "CodI"
        Moveto [Descricao do Item] Check
        Do_It!
        ClearAll   
EndIf
 
Empty TabelaP 
 
{Ask} {Answer}
Moveto [Codigo da Empresa    ] Example "Emp"
Moveto [Nome Fantasia Empresa] Example "NFEmp"
Moveto [Codigo do Item       ] Example "CodI"
Moveto [Descricao do Item    ] Example "DescI"
Moveto [Qtd Pedida           ] Example "QtdP"           
Moveto [Qtd Faturada         ] Example "QtdF"              
Moveto [Qtd AFaturar         ] Example "QtdAF"              
Moveto [Qtd Expedida         ] Example "QtdE"              
Moveto [Qtd AExpedir         ] Example "QtdAE"              
Moveto [Qtd Falta            ] Example "QtdFT"
{Ask} TypeIn TabelaP Enter TypeIn "Insert" Enter
Moveto [Codigo da Empresa    ] Example "Emp"
Moveto [Nome Fantasia Empresa] Example "NFEmp"
Moveto [Codigo do Item       ] Example "CodI"
Moveto [Descricao do Item    ] Example "DescI"
Moveto [Qtde_Pedida          ] Example "QtdP"  
Moveto [Qtde_Faturada        ] Example "QtdF"        
Moveto [Qtde_AFaturar        ] Example "QtdAF"     
Moveto [Qtde_Expedida        ] Example "QtdE"              
Moveto [Qtde_AExpedir        ] Example "QtdAE"              
Moveto [Qtde_Falta           ] Example "QtdFT"
Do_It!
ClearAll     

View TabelaP     
ClearAll     

EndProc ;Agrupa_Itens()

;*******************************************************************************
;* Somente Expedi‡Æo                                                                      *
;*******************************************************************************
Proc Somente_Expedicao()   

{Ask} {\\Sistemas\\Vendas\\Expedc}
Moveto [Numero do Pedido] Example "Ped"
Moveto [Situacao da OE  ] TypeIn "EM ABERTO Or LIBERADO"
{Ask} TypeIn TabelaP Enter Check
Moveto [Numero do Pedido] Example "Ped"
Do_It!
ClearAll

Empty TabelaP
Add "Answer" TabelaP
   
EndProc ;Somente_Expedicao()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"        : Campo="NO"
            Case Campo="TG_PEDIDO"         : Campo="TG_EMPRESA"
            Case Campo="TG_MARCA"          : Campo="TG_PEDIDO"
            Case Campo="TG_GRP"            : Campo="TG_MARCA"
            Case Campo="TG_FAMI"           : Campo="TG_GRP"
            Case Campo="TG_DTINI"          : Campo="TG_FAMI"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="YES" Or Campo="NO" : Campo="TG_EMPRESA"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA"     : Campo="TG_PEDIDO"
                    Case Campo="TG_PEDIDO"      : 
                         If IsBlank(VSDGPEDIDO)
                            Then Campo="TG_MARCA"
                            Else Campo="YES"
                                 VSDGMARCA      = ""
                                 VSDGNOMMARCA   = ""
                                 VSDGGRP        = ""
                                 VSDGNOMGRP     = ""
                                 VSDGFAMI       = ""
                                 VSDGNOMFAMI    = ""                                 
                                 VSDGDTINI      = BlankDate()
                                 VSDGDTFIM      = BlankDate()
                         EndIf
                    Case Campo="TG_MARCA"            : Campo="TG_GRP" 
                    Case Campo="TG_GRP"              : Campo="TG_FAMI"
                    Case Campo="TG_FAMI"             : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"            : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"            : Campo="YES"                 
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc
                            
;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf
LimpAguarde()

SYS_VALOR()

ClearAll

VSDGEMPRESA          = ""
VSDGMESANO           = AlinhM(StrVal(Month(Today())),2)+"."+AlinhM(StrVal(Year(Today())),4)
VSDGMES              = SubStr(VSDGMESANO,1,2)
VSDGANO              = SubStr(VSDGMESANO,4,4)
VSDGDTREF            = Today()
VSDGOPOF             = "S"
VSDGOPANALISE        = ""
VSDGNOMOPANALISE     = ""
VSDGNOMOPRELANALSINT = ""
VSDGZERADO           = "N"
VSDGDTPDI            = BlankDate()
VSDGDTPDF            = BlankDate()
VSDGVRMINIMO         = BlankNum()
VSDGPEDIDO           = ""
VSDGMARCA            = ""
VSDGGRP              = ""
VSDGFAMI             = ""
VSDGNOMGRP           = ""
VSDGNOMFAMI          = ""
VSDGNOMMARCA         = ""

;Array VSDGOPCAO[5]

While True

  VSDGDTINI  = VSDGDTPDI
  VSDGDTFIM  = VSDGDTPDF

  ShowDialog "Liberacao de Pedidos com Estoque Atendido" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140,-68
    @ 01,07 Height 13 Width 75

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 00,35 "Mˆs/Ano Ficha Estoque"  For "TG_MESANO"
    Accept @ 01,36  Width 10 "A07"  Picture "##.####" Tag "TG_MESANO" To VSDGMESANO

    Label  @ 00,49 "Data Final" For "TG_DTREF"
    Accept @ 01,50 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREF" To VSDGDTREF

    Label  @ 02,00 "Pedido" For "TG_PEDIDO"
    Accept @ 03,01 Width 09 "A6"  Picture "[&,#][#*#]" Tag "TG_PEDIDO" To VSDGPEDIDO
    Accept @ 03,09 Width 23 "A20" Picture "!*!" Tag "TG_PEDIDO" To VSDGNOMPEDIDO

    Label  @ 02,35 "Marca"  For "TG_MARCA"                                                             
    Accept @ 03,36 Width 07 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 03,44 Width 28 "A25" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 04,00 "Grupo"  For "TG_GRP"
    Accept @ 05,01 Width 07 "A3"  Picture "#*#" Tag "TG_GRP"    To VSDGGRP
    Accept @ 05,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 04,35 "Fam¡lia"  For "TG_FAMI"
    Accept @ 05,36 Width 07 "A3"  Picture "#*#" Tag "TG_FAMI"    To VSDGFAMI
    Accept @ 05,44 Width 28 "A25" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 06,00 "Per¡odo de Entrega Referente" For "TG_DTINI"
    Label  @ 07,01 "de" For "TG_DTINI"
    Accept @ 07,05 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 07,17 "at‚" For "TG_DTFIM"
    Accept @ 07,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Pushbutton @ 09,24 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 09,38 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog

  If Not RetVal Then QuitLoop EndIf

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  ;-----------------------------------------------------------------------------
  AGUARDE("Aguarde, Checando Dados")
  PROCESSAR_DADOS=True
  MSG_MODULO=""

  VSDGDTPDI  = VSDGDTINI ;;Data Pedido
  VSDGDTPDF  = VSDGDTFIM

  VSDGDTINI  = DateVal("01."+VSDGMES+"."+VSDGANO) ;;Data Movimento Estoque
  VSDGDTFIM  = VSDGDTREF

  Monta_Dir_Trab(PrimeiroDia_MesAnterior(VSDGDTINI),UltimoDia_MesPosterior(VSDGDTFIM))
  While Novo_Dir_Trab()
    If Not IsBlank(Dir_Trab)
       Then Verifica_Mov()
    EndIf
  EndWhile

  If Not PROCESSAR_DADOS
     Then MSG="Existem movimenta‡”es Fechadas://"
          MSG=MSG+MSG_MODULO+" //"
          MSG=MSG+"Usar esta rotina apenas para Mes em Aberto.// //"
          MSG=MSG+"Verificar !"
          Mensagem(MSG)
          Loop
  EndIf
;-------------------------------------------------------------------------------

  AGUARDE("Aguarde, processando Estoque")

  ;*** Inventario ***
  TabelaI=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Estoque\\Rm_0501" TabelaI
  Empty TabelaI

  ;*** Pedido Temporario ***
  TabelaTP=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Estoque\\Rm_0501" TabelaTP
  Empty TabelaTP

  ;*** Pedidos ***
  TabelaP=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Estoque\\Rm_0500" TabelaP
  Empty TabelaP

  ;---- Processo adptado no NotaC o qual foi alterado para outra proc p/ utiliza‡Æo de REGRA
  Identifica_MesAno_Periodo(VSDGDTINI,VSDGDTFIM)
  For out from 1 to ArraySize(MESANO_DTINI)
    AUX_DTINI = MESANO_DTINI[out]
    AUX_DTFIM = MESANO_DTFIM[out]
 
    If Not Verifica_Emissao_Saida(AUX_DTFIM)
       Then Return
    EndIf    
    
    Monta_Dir_Trab(AUX_DTINI,AUX_DTFIM)
    While Novo_Dir_Trab()
      Seleciona_NotaC()   
    EndWhile
  EndFor

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    Seleciona_Estoque()
  EndWhile
  Saldo_Inicial()

  AGUARDE("Aguarde, processando Estoque")
  VSDGDTINI = VSDGDTPDI   ;;Data Pedido
  VSDGDTFIM = VSDGDTPDF
  
  Seleciona_Pedidos()         
  Processa()
  Calc_Media()

	If IsEmpty(TabelaP)
		 Then MENSAGEM("N„o Existem Registros a Processar (Pedidos)")
		      Loop
	EndIf

  If Not IsEmpty(TabelaP)
     Then IMPRIREL(TabelaP,"4")
  EndIf

  LimpAguarde()
  Delete "Answer"
  Delete TabelaI
  Delete TabelaP
  Delete TabelaTP

EndWhile
ClearAll
Release Vars All
Release Procs All
