; Script cancelado a partir da utiliza‡Æo do novo modelo RM_3001, onde atrav‚s  
; do script destino, ‚ possivel selecionar quais os DESTINOS para serem exibidos
; na impressÆo do relat¢rio, e a partir das escolhas, ‚ realizado a impressÆo!
; 23/10/2013
;** RM_3001 ********************************************************************
;*  Posicao Estoque/Pedidos/Faccao  Grade                                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 26/09/2007 por Anivel Augusto Rodrigues
;Ultima Alteracao: 04/10/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 20/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Checagem Criar Ficha de Estoque/TG_REF
;Ultima Alteracao: 24/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Bordado
;Ultima Alteracao: 16/04/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Programacao_Corte
;Ultima Alteracao: 22/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Estamparia/Bordaria
;Ultima Alteracao: 31/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Clientes 0003,0200
;Ultima Alteracao: 03/03/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Estoque Insuficiente
;Ultima Alteracao: 11/05/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes/Inclusao Lavanderia/Outros
;Ultima Alteracao: 07/06/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao DtEntrega Pedidos
;Ultima Alteracao: 02/03/2010 por Cleber Alves             
;Motivo Alteracao: Inclusao Opcao Emite zerados
;Ultima Alteracao: 15/09/2010 por Karina Andrade
;Motivo Alteracao: Ajustes codigo cliente confec‡Æo
;Ultima Alteracao: 16/02/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro Pedidos        
;Ultima Alteracao: 12/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao TG_REFERENCIA/BIB_SHOW
;Ultima Alteracao: 30/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Isabela Garcia Nova Codifica‡Æo
;Ultima Alteracao: 12/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novas fun‡äes para confec‡äes  
;Ultima Alteracao: 21/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Ask Referencia ou Referencia+Cor 
;Ultima Alteracao: 01/09/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes OF em aberto situa‡Æo TROCA
;Ultima Alteracao: 06/12/2011 por Karina Andrade
;Motivo Alteracao: Add op‡Æo Relatorio 02 - Layout por Grade
;Ultima Alteracao: 06/02/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes OPANALISE 1=Ref+Cor+Tm  2=Ref  3=Ref+Cor
;Ultima Alteracao: 25/05/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes no MSG_CAMPO "TG_DTREF" e InclusÆo "TG_OPPE" 
;Ultima Alteracao: 11/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: 31/10/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Adicionar_dados() e Ajustar_Dados()
;Ultima Alteracao: 22/11/2012 por Bruno Carvalho
;Motivo Alteracao: Incluido no SCAN do Ajustar_Dados o calculo do "Saldo Atual"
;Ultima Alteracao: 28/11/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Insert de produtos sem ficha de estoque
;Ultima Alteracao: 02/03/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes ShowDialog TG_REFERENCIA
;Ultima Alteracao: 19/04/2013 por Karina Andrade
;Motivo Alteracao: InclusÆo Op‡Æo estoque - Itens Disponivel
;Ultima Alteracao: 13/05/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Hyper/Mega/Super TURBO                   
;Ultima Alteracao: 07/07/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes ao buscar o custo na Ficha de Estoque
;Ultima Alteracao: 01/10/2015 por Bruno Carvalho  
;Motivo Alteracao: Incluido "I" no [Tipo de Operacao] para fornecer registros quando for requisi‡äes de 
;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: 15/12/2015 por Bruno Carvalho
;Motivo Alteracao: Adicionado proc Seleciona_Itens() p/ separar opera‡äes que estavam sendo feito no estoque, e precisavam ser realizadas no inicio
;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: 19/05/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes GetRecord "Iten_Com" p/ os campos [Vendagem] e [Situacao] 
;Ultima Alteracao: 03/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Nota Entrada Opera‡Æo para Impostos 
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes TG_REFERENCIA

;*******************************************************************************
;* Rotina p/ Verificar se existe movimentacao no mes em aberto/fechado         *
;*******************************************************************************
Proc Verifica_Mov()
ClearAll
LimpaRodape(0)
ExibeRopade(1,"Aguarde, checando mes fechado")

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

;*** Faccoes ***
If IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Pfacc")
   Then {Ask} TypeIn "\\Sistemas\\Faccao\\"+Dir_Trab+"Pfacc" Enter
        Moveto [Numero_Programacao       ] Check
        Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA.."
        Moveto [Data_Programacao         ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Do_It!
        ClearAll
        If Not IsEmpty("Answer")
           Then MSG_MODULO=MSG_MODULO+"Faccao - "+Dir_Trab+"//"
                PROCESSAR_DADOS=False
        EndIf
EndIf
If IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Rfacc")
   Then {Ask} TypeIn "\\Sistemas\\Faccao\\"+Dir_Trab+"Rfacc" Enter
        Moveto [Numero_Producao          ] Check
        Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA.."
        Moveto [Data_Producao            ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Do_It!
        ClearAll
        If Not IsEmpty("Answer")
           Then MSG_MODULO=MSG_MODULO+"Faccao - "+Dir_Trab+"//"
                PROCESSAR_DADOS=False
        EndIf
EndIf

EndProc    ; (Verifica_Mov)

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

;*** 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
  
    LimpaRodape(0)
    Switch
      Case i=1: ExibeRodape(1,"Aguarde, processando FATURAMENTO SAIDAS")
      Case i=2: ExibeRodape(1,"Aguarde, processando FATURAMENTO ENTRADAS")
    EndSwitch
  
    {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."
  
    {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             ]
    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 [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_Itens()
ClearAll

;--- Incluindo todos itens da sele‡Æo ------------------------------------------
If Dir_Trab=""
   Then LimpaRodape(0)
        ExibeRodape(1,"Aguarde, processando ITENS")
        
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ] Example "item"
        Moveto [Descricao do Item      ] Example "desc"
        Moveto [Unidade Interna        ] Example "un"
        Moveto [Tipo do Item           ] Example "tp"
        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"
        Moveto [Referencia             ] Example "ref"
        Moveto [Codigo da Grade        ] Example "grd"
        Moveto [Codigo da Familia      ] TypeIn ", ~VSDGFAMI.."
        Moveto [Codigo do Grupo        ] TypeIn ", ~VSDGGRP.."
        Moveto [Codigo da Marca        ] TypeIn ", ~VSDGMARCA.."
        Moveto [Referencia             ] TypeIn ", ~VSDGREFERENCIA.."
        Moveto [Tipo do Item           ] TypeIn ", P Or S"
        Moveto [Codigo da Grade        ] TypeIn ", Not Blank"
        
        {Ask} TypeIn TabelaP Enter TypeIn "Fast Insert"
        Moveto [Codigo da Empresa     ] TypeIn VSDGEMPRESA
        Moveto [Codigo do Item        ] example "item"
        Moveto [Descricao do Item     ] Example "desc"
        Moveto [Unidade Interna       ] Example "un"
        Moveto [Tipo do Item          ] Example "tp"
        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"
        Moveto [Referencia            ] Example "ref"
        Moveto [Codigo da Grade       ] Example "grd"
        Do_It!
        ClearAll
        
        ;******* Ajusta dados do complemento dos Itens ******
        {Ask} {\\Sistemas\\Estoque\\Iten_com}
        Moveto [Codigo do Item         ] Example "item"
        Moveto [Situacao               ] Example "sit"
        Moveto [Vendagem               ] Example "ved"
        {Ask} TypeIn TabelaP Enter TypeIn "Fast"
        Moveto [Codigo do Item         ] Example "item"
        Moveto [Situacao               ] TypeIn "Changeto " Example "sit"
        Moveto [Vendagem               ] TypeIn "Changeto " Example "ved"
        Do_It!
        ClearAll
EndIf

If IsTable("\\FechAno\\"+VSDGANO+"\\Estoque\\Sdestq") 
   Then TAB_TEMP = "\\FechAno\\"+VSDGANO+"\\Estoque\\Sdestq"
   Else TAB_TEMP = "\\Sistemas\\Estoque\\SdEstq"
EndIf       

;******** Saldo Inicial/Checagem Ficha de Estoque nao criada *******
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando ESTOQUE INICIAL")

{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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."
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 [Codigo da Grade        ] TypeIn "Not Blank"
{Ask} TypeIn TAB_TEMP Enter
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")

EndProc ;Seleciona_Itens()

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

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

          LimpaRodape(0)
          Switch
            Case i=1: ExibeRodape(1,"Aguarde, processando OFïS SAIDAS")
            Case i=2: ExibeRodape(1,"Aguarde, processando OFïS ENTRADAS")
          EndSwitch

          {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."

          ;*** 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             ]
          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 [Quantidade               ] TypeIn "Calc Sum as Quantidade"
          Do_It!
          ClearAll

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

        ;*** Ordem de Fatura Entrada/Troca ***
        LimpaRodape(0)
        ExibeRodape(1,"Aguarde, processando OFïS TROCAS")

        {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."
        {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             ]
        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 [Quantidade               ] TypeIn "Calc Sum as Quantidade"
        Do_It!
        ClearAll

        Adiciona_Dados("ENTRADAS")
EndIf

;*** Notas de Entrada/Estoque ***
  If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
     IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
     Then
          LimpaRodape(0)
          ExibeRodape(1,"Aguarde, processando NOTAS ENTRADAS")

          {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."

          {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             ]
          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 [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
  LimpaRodape(0)
  ExibeRodape(1,"Aguarde, processando REQUISI€åES")

  {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."

  {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             ]
  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 [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
        LimpaRodape(0)
        ExibeRodape(1,"Aguarde, processando REQUISI€åES")

        {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."

        {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             ]
        Switch
           Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
           Case VSDGTIPOEST = "2"       : TypeIn "T 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 [Quantidade               ] TypeIn "Calc Sum As Quantidade"
        Do_It!
        ClearAll

        Adiciona_Dados("SAIDAS")
EndIf

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc SELECIONA_PEDIDOS()
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PEDIDOS VENDA")

ClearAll

{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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."

{Ask} {\\Sistemas\\Vendas\\Destin}
Moveto [Codigo da Destinacao  ] Example "cd"
Moveto [Tipo Movimento Estoque] TypeIn "S"

If VSDGOPPE = "R" 
   Then {Ask} TypeIn TabelaRP ENTER
        Moveto [Numero do Pedido] Example "Pedido"
EndIf

{Ask} {\\Sistemas\\Vendas\\PedidoC}
Moveto [Numero do Pedido       ] Example "Pedido"
Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Situacao do Pedido     ] TypeIn "ABERTO"
If Not IsBlank(VSDGDTENT)
   Then Moveto [Data de Entrega] TypeIn "<=~VSDGDTENT"
EndIf
Moveto [Codigo da Destinacao  ] Example "cd"

{Ask} {\\Sistemas\\Vendas\\PedidoI}
Moveto [Numero do Pedido       ] Check Example "Pedido"
Moveto [Item do Pedido         ] Check
Moveto [Codigo do Item         ] Check Example "cite"

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"
   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 [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

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

Adiciona_Dados("PEDIDOS")
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Programacoes                                         *
;*******************************************************************************
Proc Seleciona_Programacoes()
ClearAll

If Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Pfacc") Or
   Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Rfacc")
   Then Return
EndIf

For wcc From 1 to 6

  Switch
    Case wcc=1 : TIPDEST="INTERNO"
    Case wcc=2 : TIPDEST="FACCAO"
    Case wcc=3 : TIPDEST="ESTAMPARIA"
    Case wcc=4 : TIPDEST="BORDARIA"
    Case wcc=5 : TIPDEST="LAVANDERIA"
    Case wcc=6 : TIPDEST="OUTROS"
  EndSwitch

  LimpaRodape(0)
  ExibeRodape(1,"Aguarde, processando PROGRAMA€ÇO "+TIPDEST)
  {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."
  {Ask} {\\Sistemas\\Faccao\\Pfacc}
  Moveto [Numero_Programacao       ] Example "doc"
  Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
  Moveto [Data_Programacao         ] TypeIn "<=~VSDGDTFIM"
  Moveto [Situacao_Programacao     ] TypeIn "Not FINALIZADA"
  Moveto [Destino_Producao         ] TypeIn TIPDEST
  {Ask} {\\Sistemas\\Faccao\\Pfacri}
  Moveto [Numero_Programacao       ] Example "doc"
  Moveto [Codigo do Item           ] Check Example "cite"
  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 [Quantidade Programada    ] TypeIn "Calc Sum as Quantidade"
  Do_It!
  ClearAll
  Adiciona_Dados(TIPDEST+"_PROGRAMADA")
EndFor
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Producoes                                            *
;*******************************************************************************
Proc Seleciona_Producoes()
ClearAll

If Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Pfacc") Or
   Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Rfacc")
   Then Return
EndIf

For wcc From 1 to 6

  Switch
    Case wcc=1 : TIPDEST="INTERNO"
    Case wcc=2 : TIPDEST="FACCAO"
    Case wcc=3 : TIPDEST="ESTAMPARIA"
    Case wcc=4 : TIPDEST="BORDARIA"
    Case wcc=5 : TIPDEST="LAVANDERIA"
    Case wcc=6 : TIPDEST="OUTROS"
  EndSwitch

  LimpaRodape(0)
  ExibeRodape(1,"Aguarde, processando PRODU€ÇO "+TIPDEST)
  {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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."
  {Ask} {\\Sistemas\\Faccao\\Pfacc}
  Moveto [Numero_Programacao       ] Example "nprog"
  Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
  Moveto [Data_Programacao         ] TypeIn "<=~VSDGDTFIM"
  Moveto [Situacao_Programacao     ] TypeIn "Not FINALIZADA"
  Moveto [Destino_Producao         ] TypeIn TIPDEST
  {Ask} {\\Sistemas\\Faccao\\Rfacc}
  Moveto [Numero_Producao          ] Example "doc"
  Moveto [Numero_programacao       ] Example "nprog"
  {Ask} {\\Sistemas\\Faccao\\Rfacri}
  Moveto [Numero_Producao          ] Example "doc"
  Moveto [Codigo do Item           ] Check Example "cite"
  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 [Quantidade Produzida     ] TypeIn "Calc Sum as Quantidade"
  Do_It!
  ClearAll
  Adiciona_Dados(TIPDEST+"_PRODUZIDA")

EndFor
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona_ProgCorte()
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PROGRAMA€ÇO CORTE")

;*** Corte ***
If Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Cfacc") Or
   Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Pcfacc")
   Then Return
EndIf

{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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."

;*** Programacao ***
{Ask} {\\Sistemas\\Faccao\\Cfacc}
Moveto [Numero_Corte             ] Example "doc"
Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Data_Programacao         ] TypeIn "<=~VSDGDTFIM"
Moveto [Situacao_Programacao     ] TypeIn "Not FINALIZADA"
{Ask} {\\Sistemas\\Faccao\\Cfacri}
Moveto [Numero_Corte             ] Example "doc"
Moveto [Codigo do Item           ] Check Example "cite"

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 [Quantidade Programada    ] TypeIn "Calc Sum as Quantidade"
Do_It!
ClearAll

NR = NRecords("Answer")
Edit "Answer"
Scan
  Barra(NR, RecNo())
  ExibeRodape(2,"Aguarde, ajustando dados "+BARRA_STRING)

  COD2_ITEM=[Codigo do Item]
  COD2_ITEM=MudaCodigoPara(COD2_ITEM,"P")
  [Codigo do Item]=COD2_ITEM
  
EndScan
Do_It!
ClearAll

Adiciona_Dados("CORTE_PROGRAMADO")
EndProc

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

LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PRODU€ÇO CORTE")
{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 [Referencia             ] TypeIn "~VSDGREFERENCIA.."

;*** Producao ***
{Ask} {\\Sistemas\\Faccao\\Cfacc}
Moveto [Numero_Corte             ] Example "nprog"
Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Data_Programacao         ] TypeIn "<=~VSDGDTFIM"
Moveto [Situacao_Programacao     ] TypeIn "Not FINALIZADA"
{Ask} {\\Sistemas\\Faccao\\Pcfacc}
Moveto [Numero_Producao_Corte    ] Example "doc"
Moveto [Numero_Programacao_Corte ] Example "nprog"
{Ask} {\\Sistemas\\Faccao\\pcfacri}
Moveto [Numero_Producao_Corte    ] Example "doc"
Moveto [Codigo do Item           ] Check Example "cite"

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 [Quantidade Produzida     ] TypeIn "Calc Sum as Quantidade"
Do_It!
ClearAll

NR = NRecords("Answer")
Edit "Answer"
Scan
  Barra(NR, RecNo())
  ExibeRodape(2,"Aguarde, ajustando dados "+BARRA_STRING)

  COD2_ITEM=[Codigo do Item]
  COD2_ITEM=MudaCodigoPara(COD2_ITEM,"P")
  [Codigo do Item]=COD2_ITEM
EndScan
Do_It!
ClearAll

Adiciona_Dados("CORTE_PRODUZIDO")
EndProc

;*******************************************************************************
;* Adiciona Dados                                                              *
;*******************************************************************************
Proc Adiciona_Dados(Tipo)
ClearAll
If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Answer}
Moveto [Codigo da Empresa      ] TypeIn "_cdemp"
Moveto [Codigo do Item         ] TypeIn "_cdite"
Moveto [Quantidade             ] TypeIn "_novaqtde"
{Ask} TypeIn TabelaP Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] TypeIn "_cdemp"
Moveto [Codigo do Item         ] TypeIn "_cdite"
Switch
  Case Tipo="SAIDAS"                : Moveto [Saidas                ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="ENTRADAS"              : Moveto [Entradas              ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="PEDIDOS"               : Moveto [Pedidos               ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  Case Tipo="CORTE_PROGRAMADO"      : Moveto [Corte_Programado      ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="CORTE_PRODUZIDO"       : Moveto [Corte_Produzido       ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  Case Tipo="ESTAMPARIA_PROGRAMADA" : Moveto [Estamparia_Programada ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="ESTAMPARIA_PRODUZIDA"  : Moveto [Estamparia_Produzida  ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="BORDARIA_PROGRAMADA"   : Moveto [Bordaria_Programada   ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="BORDARIA_PRODUZIDA"    : Moveto [Bordaria_Produzida    ] TypeIn "_qtde, changeto _qtde+_novaqtde" 

  Case Tipo="INTERNO_PROGRAMADA"    : Moveto [Interno_Programada    ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="INTERNO_PRODUZIDA"     : Moveto [Interno_Produzida     ] TypeIn "_qtde, changeto _qtde+_novaqtde" 

  Case Tipo="OUTROS_PROGRAMADA"     : Moveto [Outros_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="OUTROS_PRODUZIDA"      : Moveto [Outros_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="LAVANDERIA_PROGRAMADA" : Moveto [Lavanderia_Programada ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="LAVANDERIA_PRODUZIDA"  : Moveto [Lavanderia_Produzida  ] TypeIn "_qtde, changeto _qtde+_novaqtde" 

  Case Tipo="FACCAO_PROGRAMADA"     : Moveto [Faccao_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="FACCAO_PRODUZIDA"      : Moveto [Faccao_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  Case Tipo="SALDOINICIAL"          : Moveto [Saldo Inicial         ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  Case Tipo="SEMI_ACABADOS"         : Moveto [Compras_SemiAcabados  ] TypeIn "_qtde, changeto _qtde+_novaqtde"

EndSwitch
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Ajusta Dados                                                                *
;*******************************************************************************
Proc Ajusta_Dados()

ClearAll

LimpaRodape(0)
ExibeRodape(1,"Aguarde, calculando dados")
;---- Calcula campos -----------------------------------------------------------
{Ask} TypeIn TabelaP Enter TypeIn "Fast"
Moveto [Saidas                ] TypeIn "_qtds"
Moveto [Entradas              ] TypeIn "_qtde"
Moveto [Corte_Programado      ] TypeIn "_qtdcpm" 
Moveto [Corte_Produzido       ] TypeIn "_qtdcpz"
Moveto [Estamparia_Programada ] TypeIn "_qtdepm" 
Moveto [Estamparia_Produzida  ] TypeIn "_qtdepz" 
Moveto [Bordaria_Programada   ] TypeIn "_qtdbpm" 
Moveto [Bordaria_Produzida    ] TypeIn "_qtdbpz" 
Moveto [Interno_Programada    ] TypeIn "_qtdipm" 
Moveto [Interno_Produzida     ] TypeIn "_qtdipz" 
Moveto [Outros_Programada     ] TypeIn "_qtdopm" 
Moveto [Outros_Produzida      ] TypeIn "_qtdopz" 
Moveto [Lavanderia_Programada ] TypeIn "_qtdlpm" 
Moveto [Lavanderia_Produzida  ] TypeIn "_qtdlpz" 
Moveto [Faccao_Programada     ] TypeIn "_qtdfpm"
Moveto [Faccao_Produzida      ] TypeIn "_qtdfpz"
Moveto [Saldo Inicial         ] TypeIn "_qtdi"
Moveto [Saldo Atual           ] TypeIn "changeto (_qtdi+_qtde)-_qtds"
Moveto [Corte_Pendente        ] TypeIn "changeto _qtdcpm-_qtdcpz"
Moveto [Interno_Pendente      ] TypeIn "changeto _qtdipm-_qtdipz"
Moveto [Faccao_Pendente       ] TypeIn "changeto _qtdfpm-_qtdfpz"
Moveto [Estamparia_Pendente   ] TypeIn "changeto _qtdepm-_qtdepz"
Moveto [Bordaria_Pendente     ] TypeIn "changeto _qtdbpm-_qtdbpz"
Moveto [Lavanderia_Pendente   ] TypeIn "changeto _qtdlpm-_qtdlpz"
Moveto [Outros_Pendente       ] TypeIn "changeto _qtdopm-_qtdopz"
Do_It!
ClearAll

;Alterado Karina
If SYS_CLIENTE_CONFEC<>"" And
   (VSDGTIPOEST="P" Or VSDGTIPOEST = "2")      ; TypeIn "P or T"
   Then
        LimpaRodape(0)
        ExibeRodape(1,"Aguarde, processando SEMI-ACABADODS")

        {Ask} TypeIn TabelaP Enter
        Moveto [Codigo da Empresa] Check
        Moveto [Codigo do Item   ] Check
        Moveto [Tipo do Item     ] TypeIn "S"
        Moveto [Codigo da Grade  ] TypeIn "Not Blank"
        Moveto [Saldo Atual      ] Check TypeIn "as Quantidade"
        Do_It!
        ClearAll

        NR = NRecords("Answer")
        Edit "Answer"
        Scan
          Barra(NR, RecNo())
          ExibeRodape(2,"Aguarde, ajustando dados "+BARRA_STRING)
        
          COD2_ITEM=[Codigo do Item]
          COD2_ITEM=MudaCodigoPara(COD2_ITEM,"P")
          [Codigo do Item]=COD2_ITEM
        EndScan
        Do_It!
        ClearAll

        Adiciona_Dados("SEMI_ACABADOS")
EndIf

;******** Somente Tipo de itens *******
LimpaRodape(0)
ExibeRodape(1,"Aguarde, efetuando filtro")
{Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
Moveto [Tipo do Item         ] TypeIn "Not P"
Do_It!
ClearAll

{Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
Moveto [Codigo da Grade      ] TypeIn "Blank"
Do_It!
ClearAll

;** Elimina os Inativos **********************
{Ask} {\\Sistemas\\Estoque\\EstqPrm}
Moveto [Codigo da Empresa     ] example "empr"
Moveto [Codigo do Item        ] example "item"
Moveto [Data de Inatividade   ] TypeIn "<~VSDGDTFIM"
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item        ] example "item"
Moveto [Inativo               ] TypeIn "S"
{Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
Moveto [Codigo da Empresa     ] example "empr"
Moveto [Codigo do Item        ] example "item"
Moveto [Saldo Atual           ] TypeIn "0 or Blank"
Moveto [Pedidos               ] TypeIn "0 or Blank"
Moveto [Compras_SemiAcabados  ] TypeIn "0 or Blank"
Moveto [Corte_Pendente        ] TypeIn "0 or Blank"
Moveto [Interno_Pendente      ] TypeIn "0 or Blank"
Moveto [Faccao_Pendente       ] TypeIn "0 or Blank"
Moveto [Estamparia_Pendente   ] TypeIn "0 or Blank"
Moveto [Bordaria_Pendente     ] TypeIn "0 or Blank"
Moveto [Lavanderia_Pendente   ] TypeIn "0 or Blank"
Moveto [Outros_Pendente       ] TypeIn "0 or Blank"
Do_It!
ClearAll

;******* Ajusta dados do cadastro de Empresas ******
LimpaRodape(0)
ExibeRodape(1,"Aguarde, ajustando dados")
{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

{Ask} {\\Sistemas\\Estoque\\TpGrade}
Moveto [Codigo da Grade      ] TypeIn "_cdgr"
Moveto [Codigo Item1         ] TypeIn "_cd1"
Moveto [Codigo Item2         ] TypeIn "_cd2"
Moveto [Codigo Item3         ] TypeIn "_cd3"
Moveto [Codigo Item4         ] TypeIn "_cd4"
Moveto [Codigo Item5         ] TypeIn "_cd5"
Moveto [Codigo Item6         ] TypeIn "_cd6"
Moveto [Codigo Item7         ] TypeIn "_cd7"
Moveto [Codigo Item8         ] TypeIn "_cd8"
Moveto [Codigo Item9         ] TypeIn "_cd9"
Moveto [Codigo Item10        ] TypeIn "_cd10"
Moveto [Codigo Item11        ] TypeIn "_cd11"
Moveto [Codigo Item12        ] TypeIn "_cd12"
{Ask} TypeIn TabelaP Enter TypeIn "Fast"
Moveto [Codigo da Grade      ] TypeIn "_cdgr"
Moveto [Codigo Item1         ] TypeIn "Changeto _cd1"
Moveto [Codigo Item2         ] TypeIn "Changeto _cd2"
Moveto [Codigo Item3         ] TypeIn "Changeto _cd3"
Moveto [Codigo Item4         ] TypeIn "Changeto _cd4"
Moveto [Codigo Item5         ] TypeIn "Changeto _cd5"
Moveto [Codigo Item6         ] TypeIn "Changeto _cd6"
Moveto [Codigo Item7         ] TypeIn "Changeto _cd7"
Moveto [Codigo Item8         ] TypeIn "Changeto _cd8"
Moveto [Codigo Item9         ] TypeIn "Changeto _cd9"
Moveto [Codigo Item10        ] TypeIn "Changeto _cd10"
Moveto [Codigo Item11        ] TypeIn "Changeto _cd11"
Moveto [Codigo Item12        ] TypeIn "Changeto _cd12"
Do_It!
ClearAll

;If VSDGOPANALISE="2" Or   
;   VSDGOPANALISE="3"      
;   Then 
;        {Modify} {Restructure} TypeIn TabelaP Enter
;        Moveto [Field Name]
;        Locate "Codigo da Empresa"
;        If RetVal
;           Then Right BackSpace Enter
;        EndIf
;        Moveto [Field Name]
;        Locate "Codigo do Item"
;        If RetVal
;           Then Right BackSpace Enter
;        EndIf
;        Do_It! 
;        ClearImage
;
;EndIf

NR = NRecords(TabelaP)

Edit TabelaP
Scan
  Barra(NR, RecNo())
  ExibeRodape(2,"Aguarde, ajustando dados POSI€¶O "+BARRA_STRING)

  s=NumVal(PegaCampoTamanho([Codigo do Item]))
  If VSDGOPANALISE="2"
    Then [Codigo do Item   ]=PegaCodigoRaiz([Codigo do Item])
         [Descricao do Item]=TiraCorTamanhoDescricaoItem([Descricao do Item])
  EndIf         
  If VSDGOPANALISE="3"
    Then [Codigo do Item   ]=PegaCodigoRaizCor([Codigo do Item])
         [Descricao do Item]=TiraTamanhoDescricaoItem([Descricao do Item])
  EndIf

	[Disponivel]=([Saldo Atual]-[Pedidos])+[Compras_SemiAcabados]+[Corte_Pendente]

  If PARAM_BAIXESTQ_PROINT="S" Then [Disponivel]=[Disponivel]+[Interno_Pendente   ] EndIf
  If PARAM_BAIXESTQ_FACCAO="S" Then [Disponivel]=[Disponivel]+[Faccao_Pendente    ] EndIf
  If PARAM_BAIXESTQ_ESTAMP="S" Then [Disponivel]=[Disponivel]+[Estamparia_Pendente] EndIf
  If PARAM_BAIXESTQ_BORDAR="S" Then [Disponivel]=[Disponivel]+[Bordaria_Pendente  ] EndIf
  If PARAM_BAIXESTQ_LAVAND="S" Then [Disponivel]=[Disponivel]+[Lavanderia_Pendente] EndIf
  If PARAM_BAIXESTQ_OUTROS="S" Then [Disponivel]=[Disponivel]+[Outros_Pendente    ] EndIf

  Switch
    Case NumVal([Codigo Item1 ])=s : [Qtd1 ]=[Disponivel]                 
    Case NumVal([Codigo Item2 ])=s : [Qtd2 ]=[Disponivel]                 
    Case NumVal([Codigo Item3 ])=s : [Qtd3 ]=[Disponivel]                 
    Case NumVal([Codigo Item4 ])=s : [Qtd4 ]=[Disponivel]                 
    Case NumVal([Codigo Item5 ])=s : [Qtd5 ]=[Disponivel]                 
    Case NumVal([Codigo Item6 ])=s : [Qtd6 ]=[Disponivel]                 
    Case NumVal([Codigo Item7 ])=s : [Qtd7 ]=[Disponivel]                 
    Case NumVal([Codigo Item8 ])=s : [Qtd8 ]=[Disponivel]                 
    Case NumVal([Codigo Item9 ])=s : [Qtd9 ]=[Disponivel]                 
    Case NumVal([Codigo Item10])=s : [Qtd10]=[Disponivel]                 
    Case NumVal([Codigo Item11])=s : [Qtd11]=[Disponivel]                 
    Case NumVal([Codigo Item12])=s : [Qtd12]=[Disponivel]                 
  EndSwitch

EndScan
Do_It!
ClearAll

If VSDGOPANALISE="2" Or   
   VSDGOPANALISE="3"      
   Then
        
    LimpaRodape(0)
    Switch
      Case VSDGOPANALISE="2": ExibeRodape(1,"Aguarde, processando SO REFERENCIA")
      Case VSDGOPANALISE="3": ExibeRodape(1,"Aguarde, processando REFERENCIA+COR")
    EndSwitch
    
    TabelaT=Cria_Temp(PrivDir())
    Copy "PosEstqG" TabelaT
    Empty TabelaT
    
    {Ask} TypeIn TabelaP Enter
    Moveto [Codigo da Empresa      ] Check
    Moveto [Codigo do Item         ] Check
    Moveto [Nome Fantasia Empresa  ] Check
    Moveto [Descricao do Item      ] Check
    Moveto [Unidade Interna        ] 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 Grupo        ] Check
    Moveto [Descricao do Grupo     ] Check
    Moveto [Codigo da Marca        ] Check
    Moveto [Descricao da Marca     ] Check
    Moveto [Situacao               ] Check
    Moveto [Vendagem               ] Check
    Moveto [Referencia             ] Check
    Moveto [Codigo da Grade        ] Check
    Do_It!
    ClearAll
    
    {Ask} {Answer}
    Moveto [Codigo da Empresa      ] Example "empr"
    Moveto [Codigo do Item         ] Example "item"
    Moveto [Nome Fantasia Empresa  ] example "nome"
    Moveto [Descricao do Item      ] Example "desc"
    Moveto [Unidade Interna        ] Example "un"
    Moveto [Tipo do Item           ] Example "tp"
    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"
    Moveto [Situacao               ] Example "sit"
    Moveto [Vendagem               ] Example "ved"
    Moveto [Referencia             ] Example "ref"
    Moveto [Codigo da Grade        ] Example "grd"
    {Ask} TypeIn TabelaT Enter TypeIn "Fast Insert"
    Moveto [Codigo da Empresa      ] Example "empr"
    Moveto [Codigo do Item         ] Example "item"
    Moveto [Nome Fantasia Empresa  ] example "nome"
    Moveto [Descricao do Item      ] Example "desc"
    Moveto [Unidade Interna        ] Example "un"
    Moveto [Tipo do Item           ] Example "tp"
    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"
    Moveto [Situacao               ] Example "sit"
    Moveto [Vendagem               ] Example "ved"
    Moveto [Referencia             ] Example "ref"
    Moveto [Codigo da Grade        ] Example "grd"
    Do_It!
    ClearAll
    

    {Ask} TypeIn TabelaP Enter
    Moveto [Codigo da Empresa      ] Check
    Moveto [Codigo do Item         ] Check
    Moveto [Saldo Atual            ] Typein "Calc Sum as Saldo"
    Moveto [Pedidos                ] Typein "Calc Sum as Pedidos"
    Moveto [Compras_SemiAcabados   ] Typein "Calc Sum as SemiAcabados"
    Moveto [Corte_Pendente         ] Typein "Calc Sum as Corte"
    Moveto [Interno_Pendente       ] Typein "Calc Sum as Interno"
    Moveto [Faccao_Pendente        ] Typein "Calc Sum as Faccao"
    Moveto [Estamparia_Pendente    ] Typein "Calc Sum as Estamparia"
    Moveto [Bordaria_Pendente      ] Typein "Calc Sum as Bordaria"
    Moveto [Lavanderia_Pendente    ] Typein "Calc Sum as Lavanderia"
    Moveto [Outros_Pendente        ] Typein "Calc Sum as Outros"
    Moveto [Disponivel             ] Typein "Calc Sum as Disponivel"
    Do_It!
    ClearAll
    
    {Ask} {Answer}
    Moveto [Codigo da Empresa      ] Example "empr"
    Moveto [Codigo do Item         ] Example "item"
    Moveto [Saldo                  ] Typein "_Saldo" 
    Moveto [Pedidos                ] Typein "_Pedidos"
    Moveto [SemiAcabados           ] Typein "_SemiAcabados"
    Moveto [Corte                  ] Typein "_Corte"
    Moveto [Interno                ] Typein "_Interno"
    Moveto [Faccao                 ] Typein "_Faccao"
    Moveto [Estamparia             ] Typein "_Estamparia"
    Moveto [Bordaria               ] Typein "_Bordaria"
    Moveto [Lavanderia             ] Typein "_Lavanderia"
    Moveto [Outros                 ] Typein "_Outros"
    Moveto [Disponivel             ] Typein "_Disponivel"
    {Ask} TypeIn TabelaT Enter TypeIn "Fast"
    Moveto [Codigo da Empresa      ] Example "empr"
    Moveto [Codigo do Item         ] Example "item"
    Moveto [Saldo Atual            ] Typein "changeto _Saldo"
    Moveto [Pedidos                ] Typein "changeto _Pedidos"
    Moveto [Compras_SemiAcabados   ] Typein "changeto _SemiAcabados"
    Moveto [Corte_Pendente         ] Typein "changeto _Corte"
    Moveto [Interno_Pendente       ] Typein "changeto _Interno"
    Moveto [Faccao_Pendente        ] Typein "changeto _Faccao"
    Moveto [Estamparia_Pendente    ] Typein "changeto _Estamparia"
    Moveto [Bordaria_Pendente      ] Typein "changeto _Bordaria"
    Moveto [Lavanderia_Pendente    ] Typein "changeto _Lavanderia"
    Moveto [Outros_Pendente        ] Typein "changeto _Outros"
    Moveto [Disponivel             ] Typein "changeto _Disponivel"
    Do_It!
    ClearAll
    

    {Ask} TypeIn TabelaP Enter
    Moveto [Codigo da Empresa      ] Check
    Moveto [Codigo do Item         ] Check
    Moveto [Qtd1                   ] Typein "Calc Sum as Qtd1"
    Moveto [Qtd2                   ] Typein "Calc Sum as Qtd2"
    Moveto [Qtd3                   ] Typein "Calc Sum as Qtd3"
    Moveto [Qtd4                   ] Typein "Calc Sum as Qtd4"
    Moveto [Qtd5                   ] Typein "Calc Sum as Qtd5"
    Moveto [Qtd6                   ] Typein "Calc Sum as Qtd6"
    Moveto [Qtd7                   ] Typein "Calc Sum as Qtd7"
    Moveto [Qtd8                   ] Typein "Calc Sum as Qtd8"
    Moveto [Qtd9                   ] Typein "Calc Sum as Qtd9"
    Moveto [Qtd10                  ] Typein "Calc Sum as Qtd10"
    Moveto [Qtd11                  ] Typein "Calc Sum as Qtd11"
    Moveto [Qtd12                  ] Typein "Calc Sum as Qtd12"
    Do_It!
    ClearAll
    
    {Ask} {Answer}
    Moveto [Codigo da Empresa      ] Example "empr"
    Moveto [Codigo do Item         ] Example "item"
    Moveto [Qtd1                   ] Typein "_Qtd1"
    Moveto [Qtd2                   ] Typein "_Qtd2"
    Moveto [Qtd3                   ] Typein "_Qtd3"
    Moveto [Qtd4                   ] Typein "_Qtd4"
    Moveto [Qtd5                   ] Typein "_Qtd5"
    Moveto [Qtd6                   ] Typein "_Qtd6"
    Moveto [Qtd7                   ] Typein "_Qtd7"
    Moveto [Qtd8                   ] Typein "_Qtd8"
    Moveto [Qtd9                   ] Typein "_Qtd9"
    Moveto [Qtd10                  ] Typein "_Qtd10"
    Moveto [Qtd11                  ] Typein "_Qtd11"
    Moveto [Qtd12                  ] Typein "_Qtd12"
    {Ask} TypeIn TabelaT Enter TypeIn "Fast"
    Moveto [Codigo da Empresa      ] Example "empr"
    Moveto [Codigo do Item         ] Example "item"
    Moveto [Qtd1                   ] Typein "changeto _Qtd1"
    Moveto [Qtd2                   ] Typein "changeto _Qtd2"
    Moveto [Qtd3                   ] Typein "changeto _Qtd3"
    Moveto [Qtd4                   ] Typein "changeto _Qtd4"
    Moveto [Qtd5                   ] Typein "changeto _Qtd5"
    Moveto [Qtd6                   ] Typein "changeto _Qtd6"
    Moveto [Qtd7                   ] Typein "changeto _Qtd7"
    Moveto [Qtd8                   ] Typein "changeto _Qtd8"
    Moveto [Qtd9                   ] Typein "changeto _Qtd9"
    Moveto [Qtd10                  ] Typein "changeto _Qtd10"
    Moveto [Qtd11                  ] Typein "changeto _Qtd11"
    Moveto [Qtd12                  ] Typein "changeto _Qtd12"
    Do_It!
    ClearAll

    Delete TabelaP

    TabelaP=Cria_Temp(PrivDir())
    Copy "PosEstqG" TabelaP
    Empty TabelaP
    Add TabelaT TabelaP
    Delete TabelaT
Endif

LimpaRodape(0)
ExibeRodape(1,"Aguarde, efetuando filtro")
If VSDGZERADO="N"
Then {Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
        Moveto [Saldo Atual          ] TypeIn " 0 OR Blank"
        Moveto [Pedidos              ] TypeIn " 0 OR Blank"
        Moveto [Compras_SemiAcabados ] TypeIn " 0 OR Blank"
        Moveto [Corte_Pendente       ] TypeIn " 0 OR Blank"
        Moveto [Interno_Pendente     ] TypeIn " 0 OR Blank"
        Moveto [Faccao_Pendente      ] TypeIn " 0 OR Blank"
        Moveto [Estamparia_Pendente  ] TypeIn " 0 OR Blank"
        Moveto [Bordaria_Pendente    ] TypeIn " 0 OR Blank"
        Moveto [Lavanderia_Pendente  ] TypeIn " 0 OR Blank"
        Moveto [Outros_Pendente      ] TypeIn " 0 OR Blank"
        Do_It!
        ClearAll
EndIf

Switch
  Case VSDGSDESTQ="I":
        {Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
        Moveto [Qtd1       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd2       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd3       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd4       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd5       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd6       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd7       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd8       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd9       ] TypeIn ">=0 OR Blank"
        Moveto [Qtd10      ] TypeIn ">=0 OR Blank"
        Moveto [Qtd11      ] TypeIn ">=0 OR Blank"
        Moveto [Qtd12      ] TypeIn ">=0 OR Blank"
        Do_It!
        ClearAll
  Case VSDGSDESTQ="D":
        {Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
        Moveto [Qtd1       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd2       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd3       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd4       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd5       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd6       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd7       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd8       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd9       ] TypeIn "<=0 OR Blank"
        Moveto [Qtd10      ] TypeIn "<=0 OR Blank"
        Moveto [Qtd11      ] TypeIn "<=0 OR Blank"
        Moveto [Qtd12      ] TypeIn "<=0 OR Blank"
        Do_It!
        ClearAll
EndSwitch

LimpaRodape(0)
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina para Carregar Parametros                                             *
;*******************************************************************************
Proc Carrega_Parametros()

If IsEmpty("P_Fac")
   Then Mensagem("N„o esta Configurado os Parametros para Digita‡„o !")
        Return False
EndIf

View "P_Fac"
Moveto [Codigo_Empresa]
Locate VSDGEMPRESA
If Not RetVal
   Then Mensagem("Parametros n„o Cadastrado para esta Empresa !")
        ClearAll
        Return False
EndIf
PARAM_EMPRESA         = [Codigo_Empresa           ]
PARAM_COR_TECIDO      = [Cor_Tecido               ]
PARAM_RELATORIO       = [Script_Impressao_ProgFac ]
PARAM_BAIXESTQ_ESTAMP = [Baixar_SemiAcab_Estamp   ]
PARAM_BAIXESTQ_BORDAR = [Baixar_SemiAcab_Bordar   ]
PARAM_BAIXESTQ_FACCAO = [Baixar_SemiAcab_Faccao   ]
PARAM_BAIXESTQ_PROINT = [Baixar_SemiAcab_ProdInt  ]
PARAM_BAIXESTQ_LAVAND = [Baixar_SemiAcab_Lavand   ]
PARAM_BAIXESTQ_OUTROS = [Baixar_SemiAcab_Outros   ]
ClearAll

Return True
EndProc

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

TabelaRP=Cria_Temp(PrivDir())
ExibeRodape(1,"Aguarde, Filtrando pedidos")
{Ask} {RPedidos}
Moveto [Numero do Pedido] Check
Do_It!

Rename "Answer" TabelaRP
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA="F10=Parƒmetros"
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"] = -68  :
            Temp=False
            Relatorios()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"        : Campo="NO"
            Case Campo="TG_MESANO"         : Campo="TG_EMPRESA"
            Case Campo="TG_DTREF"          : Campo="TG_MESANO"
            Case Campo="TG_SDESTQ"         : Campo="TG_DTREF"
            Case Campo="TG_FAMI"           : Campo="TG_SDESTQ"
            Case Campo="TG_GRP"            : Campo="TG_FAMI"
            Case Campo="TG_MARCA"          : Campo="TG_GRP"
						Case Campo="TG_REFERENCIA"     : Campo="TG_MARCA"
            Case Campo="TG_OPOF"           : Campo="TG_OPANALISE"
            Case Campo="TG_OPPE"           : Campo="TG_REFERENCIA"
            Case Campo="TG_DTENT"          : Campo="TG_OPPE"
            Case Campo="TG_OPANALISE"      : 
                 Switch
                  Case VSDGOPPE="D" : Campo="TG_DTENT"
                  Case VSDGOPPE="R" : Campo="TG_OPPE"
                 EndSwitch   
            Case Campo="TG_ZERADO"         : Campo="TG_OPOF"
            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_MESANO"
                    Case Campo="TG_MESANO"  :
                         VSDGMES=SubStr(VSDGMESANO,1,2)
                         VSDGANO=SubStr(VSDGMESANO,4,4)
                      ;  If NumVal(VSDGANO) < 2000
                      ;     Then VSDGANO=SubStr(VSDGANO,3,2)
                      ;     Else VSDGANO=VSDGANO
                      ;  EndIf
                         If NumVal(VSDGMES) > 12 Or NumVal(VSDGMES) = 0
                            Then MENSAGEM("Mˆs Inv lido!")
                            Else VSDGDTINI = DateVal("01."+VSDGMES+"."+VSDGANO)
                                 VSDGDTREF=Ultimo_Dia(VSDGMES+VSDGANO)
                                 If Month(VSDGDTREF)=Month(Today())
                                    Then VSDGDTREF=Today()
                                 EndIf
                                 Campo = "TG_DTREF"
                         EndIf
                    Case Campo="TG_DTREF"       :
                         VSDGDTREF = ControlValue("TG_DTREF")
                         If IsBlank(VSDGDTREF) Or (VSDGDTREF<VSDGDTINI)
                            Then Mensagem("Data Final Inv lida !")
                            Else If Year(VSDGDTREF)<>NumVal(SubStr(VSDGMESANO,4,4)) Or
                                    Month(VSDGDTREF)<>NumVal(SubStr(VSDGMESANO,1,2))
                                    Then Mensagem("Data Final difere do mes/ano da Ficha de Estoque !")
                                    Else VSDGDTFIM = VSDGDTREF
                                         Campo="TG_SDESTQ"
                                 EndIf
                         EndIf
                    Case Campo="TG_SDESTQ"      :
                         VSDGSDESTQ=ControlValue("TG_SDESTQ")
                         Switch
                          Case VSDGSDESTQ="T":
                               VSDGDESCSDESTQ="Todos"
                          Case VSDGSDESTQ="D":
                               VSDGDESCSDESTQ="Saldo Disponivel"      
                          OtherWise:
                               VSDGSDESTQ="I"
                               VSDGDESCSDESTQ="Saldo Insuficiente"
                         EndSwitch
                         Campo="TG_FAMI"
                    Case Campo="TG_FAMI"        : Campo = "TG_GRP"
                    Case Campo="TG_GRP"         : Campo = "TG_MARCA"
                    Case Campo="TG_MARCA"       : Campo = "TG_REFERENCIA"
                    Case Campo="TG_REFERENCIA"  : Campo = "TG_OPPE"
                    Case Campo = "TG_OPPE"      :
                         VSDGOPPE=ControlValue("TG_OPPE")
                         If IsBlank(VSDGOPPE)
                            Then VSDGOPPE="D"
                         EndIf   
                         Switch
                           Case VSDGOPPE="D"    : VSDGNOMOPPE="DATA DE ENTREGA"
                                                  Campo="TG_DTENT"
                           Case VSDGOPPE="R"    : VSDGNOMOPPE="RELACAO DOS PEDIDOS"
                                                  VSDGDTENT=BlankDate()   
                                                  Campo="TG_OPANALISE"
                         EndSwitch                       
                    Case Campo="TG_DTENT"       : Campo="TG_OPANALISE"
                    Case Campo="TG_OPANALISE"   : Campo="TG_OPOF"
                         VSDGOPANALISE=ControlValue("TG_OPANALISE")
                         Switch
                           Case VSDGOPANALISE="2": VSDGNOMOPANALISE="SO REFERENCIA"
                           Case VSDGOPANALISE="3": VSDGNOMOPANALISE="REFERENCIA+COR"
                           OtherWise             : VSDGNOMOPANALISE="REFERENCIA+COR+TAMANHO"
                                                   VSDGOPANALISE="1"
                         EndSwitch
                    Case Campo="TG_OPOF"        : Campo = "YES"
                         VSDGOPOF=ControlValue("TG_OPOF")
                         Switch
                           Case VSDGOPOF="N": VSDGNOMOPOF="NAO"
                           OtherWise:
                                VSDGOPOF="S"  VSDGNOMOPOF="SIM"
                         EndSwitch
                         Campo="TG_ZERADO"  
                    Case Campo="TG_ZERADO"      :
                         VSDGZERADO=ControlValue("TG_ZERADO")
                         Switch
                          Case VSDGZERADO="S":
                               VSDGDESCZERADO="EMITE ZERADO"
                          OtherWise:
                               VSDGZERADO="N"
                               VSDGDESCZERADO="NAO EMITE ZERADO"
                         EndSwitch   
                         Campo="YES"               
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Switch
  Case Campo="TG_Empresa":
       MSG_CAMPO="Informe uma Empresa"
  Case Campo="TG_DTREF":
       MSG_CAMPO="Informe a Data Final (para estoque e programa‡”es)"
  Case Campo="TG_OPOF":
       MSG_CAMPO="Incluir Ordem de Faturamento n„o emitida (Sim/N„o)"
  Case Campo="TG_SDESTQ":
       MSG_CAMPO="T=Todos os Itens, I=Estoque Insuficiente, D=Estoque Disponivel"
  Case Campo="TG_OPANALISE":
       MSG_CAMPO="1=Referˆncia+Cor+Tamanho  2=Referˆncia  3=Referˆncia+Cor"
  Case Campo="TG_ZERADO":
       MSG_CAMPO="S=Emite Zerados, N=Nao Emite Zerados"   
  Case Campo="TG_OPPE":
       MSG_CAMPO="(D) Data de Entrega / (R) Conforme a Rela‡Æo dos Pedidos"         
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog2(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"] =  27  :
          Temp=False
          Switch
            Case Campo="TG_OPRELATORIO"    : Campo="NO"
            Case Campo="TG_NCASASDEC"      : Campo="TG_OPRELATORIO"
            Case Campo="YES" Or Campo="NO" : Campo="TG_OPRELATORIO"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_OPRELATORIO"  : Campo="TG_NCASASDEC"
                         VSDGOPRELATORIO=ControlValue("TG_OPRELATORIO")
                    Case Campo="TG_NCASASDEC"    : Campo="YES"
                         VSDGNCASASDEC=ControlValue("TG_NCASASDEC")
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Switch
  Case Campo="TG_OPRELATORIO":
     MSG_CAMPO="Selecione o op‡„o desejada !"
     TECLA    ="=Selecionar  "
  Case Campo="TG_NCASASDEC"  :
     MSG_CAMPO="Informe o n§ de casas decimais a exibir no relat¢rio !"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Impressao                                                            *
;*******************************************************************************
Proc Relatorios()
private ncampo,ntecla,nmsg_campo

ncampo    =campo
nmsg_campo=msg_campo
ntecla    =tecla

  ShowDialog "Parƒmetros" Proc "SD_Dialog2"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 01,01 Height 11 Width 55

    PickDynArray @1,01 Height 3 width 51
     Columns 1
      Array_OpRelatorios
       Tag "TG_OPRELATORIO"
        To VSDGOPRELATORIO
    Label @ 00,00 "Modelos de Relat¢rios"  For "TG_OPRELATORIO"
    Label  @ 07,00 "No. Casas Decimais" For "TG_NCASASDEC"
    Accept @ 08,01 Width 7 "S" Tag "TG_NCASASDEC" To VSDGNCASASDEC

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

If RetVal
   Then ConfOpcoes("Gravar")
EndIf

campo    =ncampo
msg_campo=nmsg_campo
tecla    =ntecla

EndProc ;(Relatorios)

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ConfOpcoes(Opcao)
Private Opcao

Switch
  Case Opcao="Ler":
       DynArray Array_OpRelatorios[]
       Array_OpRelatorios[01]="01 - Posi‡„o do Estoque Grade/Marca/Grupo"
       Array_OpRelatorios[02]="02 - Posi‡„o do Estoque Grade"
       
       If IsFile("PO_3001.sc")
           Then Play "PO_3001"
           Else VSDGOPRELATORIO  =1
                VSDGNCASASDEC    =3
       EndIf
  Case Opcao="Gravar":
       FileWrite        "PO_3001.sc" From ";****** Variaveis de Configura‡„o Modelo Relatorio Vise Informatica"+"\n"
       FileWrite Append "PO_3001.sc" From "VSDGOPRELATORIO="+VSDGOPRELATORIO+"\n"
       FileWrite Append "PO_3001.sc" From "VSDGNCASASDEC="+StrVal(VSDGNCASASDEC)+"\n"
EndSwitch
EndProc ;

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
SYS_VALOR()
If Not IsAssigned(SYS_CHAPA_USUARIO)   Then SYS_CHAPA_USUARIO="9999" EndIf
If Not IsAssigned(SYS_NIVEL_USUARIO)   Then SYS_NIVEL_USUARIO="S"    EndIf
If Not IsAssigned(SYS_NOME_USUARIO)    Then SYS_NOME_USUARIO=""      EndIf
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""    EndIf
If Not IsAssigned(SYS_CLIENTE_CONFEC)  Then SYS_CLIENTE_CONFEC="0222"    EndIf

LimpAguarde()
ConfOpcoes("Ler")

ClearAll

VSDGEMPRESA     = ""
VSDGTIPOEST     = "P"
VSDGDESCTIPOEST = "PRODUTO ACABADO"
VSDGMESANO      = ""
VSDGDTREF       = BlankDate()
VSDGDTINI       = BlankDate()
VSDGDTFIM       = BlankDate()
VSDGDTENT       = BlankDate()
VSDGFAMI        = ""
VSDGMARCA       = ""
VSDGGRP         = ""
VSDGREFERENCIA  = ""
VSDGMESANO   = AlinhM(StrVal(Month(Today())),2)+"."+AlinhM(StrVal(Year(Today())),4)
VSDGOPOF        = ""
VSDGNOMOPOF     = ""
VSDGSDESTQ      = ""
VSDGDESCSDESTQ  = ""
VSDGOPANALISE    = ""
VSDGNOMOPANALISE = ""
VSDGOPPE         = "" 
VSDGNOMOPPE      = ""

While True

  ShowDialog "Posi‡„o do Estoque/Pedidos/Fac‡„o" 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 21 Width 68

    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,34 "Tipo do Estoque"  For "TG_TIPOEST"
    Accept @ 01,35 Width 04 "A1"  Picture "P" Tag "TG_TIPOEST" To VSDGTIPOEST
    Accept @ 01,40 Width 25 "A30"  Picture "!*!" Tag "TG_DESCTIPOEST" To VSDGDESCTIPOEST

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

    Label  @ 02,15 "Data Final" For "TG_DTREF"
    Accept @ 03,16 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREF" To VSDGDTREF

    Label  @ 02,34 "Op‡„o do Estoque" For "TG_SDESTQ"
    Accept @ 03,35 Width 04 "A1"  Picture "T,I,D" Tag "TG_SDESTQ" To VSDGSDESTQ
    Accept @ 03,40 Width 25 "A25"  Picture "!*!" Tag "TG_DESCSDESTQ" To VSDGDESCSDESTQ

    Label  @ 04,00 "Familia"  For "TG_FAMI"
    Accept @ 05,01 Width 07 "A3"  Picture "#*#" Tag "TG_FAMI" To VSDGFAMI
    Accept @ 05,09 Width 28 "A25" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 06,00 "Grupo"  For "TG_GRP"
    Accept @ 07,01 Width 07 "A3"  Picture "#*#" Tag "TG_GRP" To VSDGGRP
    Accept @ 07,09 Width 28 "A25" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 08,00 "Marca"  For "TG_MARCA"
    Accept @ 09,01 Width 07 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 09,09 Width 28 "A25" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 08,38 "Referˆncia"  For "TG_REFERENCIA"
    Accept @ 09,39 Width 13 "A20" Picture "!*!" Tag "TG_REFERENCIA"     To VSDGREFERENCIA

    Label  @ 10,00 "Op‡äes de Pedido"  For "TG_OPPE"
    Accept @ 11,01 Width 04 "A1" Picture "D,R" Tag "TG_OPPE" To VSDGOPPE
    Accept @ 11,06 Width 21 "A25" Picture "!*!" Tag "TG_OPPE" To VSDGNOMOPPE

    Label  @ 10,38 "Pedidos c/ Entrega at‚" For "TG_DTENT"
    Accept @ 11,39 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTENT" To VSDGDTENT

    Label  @ 12,38 "Op‡„o de Ordem Fatura" For "TG_OPOF"
    Accept @ 13,39 Width 04 "A1"  Picture "S,N" Tag "TG_OPOF" To VSDGOPOF
    Accept @ 13,44 Width 06 "A3"  Picture "!*!" Tag "TG_NOMOPOF" To VSDGNOMOPOF

    Label  @ 12,00 "Op‡„o de An lise" For "TG_OPANALISE"
    Accept @ 13,01 Width 04 "A1"  Picture "1,2,3" Tag "TG_OPANALISE" To VSDGOPANALISE
    Accept @ 13,06 Width 31 "A25"  Picture "!*!" Tag "TG_NOMOPANALISE" To VSDGNOMOPANALISE
    
    Label  @ 14,00 "Op‡„o Zerados" For "TG_ZERADO"
    Accept @ 15,01 Width 04 "A1"  Picture "S,N" Tag "TG_ZERADO" To VSDGZERADO
    Accept @ 15,06 Width 31 "A25"  Picture "!*!" Tag "TG_DESCZERADO" To VSDGDESCZERADO

    Pushbutton @ 17,14 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 17,28 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog

  If Not RetVal Then QuitLoop EndIf

  If IsBlank(VSDGEMPRESA)
     Then Mensagem("Informe uma Empresa !")
          Loop
  EndIf

  If IsBlank(VSDGDTREF)    Or
     (VSDGDTFIM<VSDGDTINI)
     Then Loop
  EndIf
  If Year(VSDGDTREF)<>NumVal(SubStr(VSDGMESANO,4,4)) Or
     Month(VSDGDTREF)<>NumVal(SubStr(VSDGMESANO,1,2))
     Then Mensagem("Data Final difere do mes/ano da Ficha de Estoque !")
          Loop
  EndIf

  DISPOSITIVO()
  If OK="" Then Loop EndIf

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

  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

  If Not Carrega_Parametros()
     Then Loop
     Else If PARAM_BAIXESTQ_ESTAMP="S"
             Then TIT_ESTAMP="+"
             Else TIT_ESTAMP=" "
          EndIf
          If PARAM_BAIXESTQ_BORDAR="S"
             Then TIT_BORDAR="+"
             Else TIT_BORDAR=" "
          EndIf
          If PARAM_BAIXESTQ_FACCAO="S"
             Then TIT_FACCAO="+"
             Else TIT_FACCAO=" "
          EndIf
          If PARAM_BAIXESTQ_PROINT="S"
             Then TIT_PROINT="+"
             Else TIT_PROINT=" "
          EndIf
          If PARAM_BAIXESTQ_LAVAND="S"
             Then TIT_LAVAND="+"
             Else TIT_LAVAND=" "
          EndIf
          If PARAM_BAIXESTQ_OUTROS="S"
             Then TIT_OUTROS="+"
             Else TIT_OUTROS=" "
          EndIf
  EndIf

  ;-------------------------------------------------------------------------------
  AGUARDE("Aguarde, processando dados")

  TabelaP=Cria_Temp(PrivDir())
  Copy "PosEstqG" TabelaP
  Empty TabelaP
  
  Seleciona_Itens()
  ;---- 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

  If VSDGOPPE = "R" 
     Then FiltraPedidos()
  EndIf   
  Seleciona_Pedidos()

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

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

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

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

  Ajusta_Dados()

  If IsEmpty(TabelaP)
     Then MENSAGEM("N„o Existem Registros a Processar")
          Delete TabelaP
          Loop
  EndIf
  
  Impressao_Orientacao="Paisagem"
  Switch
   Case SubStr(Array_OpRelatorios[VSDGOPRELATORIO],1,2)="01": 
        If VSDGOPANALISE="1"
           Then CopyReport "PosEstqG" "1" TabelaP "R"
           Else CopyReport "PosEstqG" "R" TabelaP "R"
        EndIf
   Case SubStr(Array_OpRelatorios[VSDGOPRELATORIO],1,2)="02": 
        If VSDGOPANALISE="1"
           Then CopyReport "PosEstqG" "5" TabelaP "R"
           Else CopyReport "PosEstqG" "4" TabelaP "R"
        EndIf     
  EndSwitch

  IMPRIREL(TabelaP,"R")

  Delete "Answer"
  Delete TabelaP

EndWhile
ClearAll
Release Vars All
Release Procs All
