;** 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: 23/10/2013 por Bruno Carvalho
;Motivo Alteracao: Novos Ajustes -> Altera‡äes Layout e Tabela - Cadastro de Destinos 
;Ultima Alteracao: 07/07/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes ao buscar o custo na Ficha de Estoque
;Ultima Alteracao: 16/08/2014 por Andrey Fillipe
;Motivo Alteracao: Adicionado data de inicio para entrega referente, alterado variaveis 
;                  VSDGDTINI para DATAINI e VSDGDTFIM para DATAFIM, adicionado novas VSDGDTINI e VSDGDTFIM
;Ultima Alteracao: 02/07/2015 por Kamila Gomes
;Motivo Alteracao: InclusÆo de op‡Æo para incluir pedidos SUSPENSOS
;Ultima Alteracao: 20/07/2015 por Andrey Fillipe
;Motivo Alteracao: Ajustes de verificacao se VSDGOPPE="R"
;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: 18/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao projecao de vendas                      
;Ultima Alteracao: 17/03/2016 por Bruno Carvalho
;Motivo Alteracao: Criado tabela nova apenas p/ atender #0232# onde a tabela contar  com a coluna cor_tecido para ser exibido no excel [Sol. 20929]
;Ultima Alteracao: 19/05/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes GetRecord "Iten_Com" p/ os campos [Vendagem] e [Situacao] 
;Ultima Alteracao: 24/05/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ a coluna OUTROS somar todas os destinos que n„o estÆo sendo exibidos nas colunas -> [utiliza Relatorio]="N"
;                  -> wcc=6 na proc Ajusta_Dados() e adicionado Prog_Prod() e DynArray TIPDEST_OUTROS[] 
;Ultima Alteracao: 25/08/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes mensagem                                 
;Ultima Alteracao: 04/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes projecao de vendas so pedidos de venda (destina‡Æo) e showdialog
;Ultima Alteracao: 26/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes selec‡Æo de pedidos para projecao de vendas
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes() 
;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
;Ultima Alteracao: 14/01/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes op‡Æo de analise 2 e 3, PegaCampoTamanho()
;Ultima Alteracao: 28/03/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes deduzir problemas da programa‡Æo
;Ultima Alteracao: 25/04/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes Pedidos para simula‡Æo              
;Ultima Alteracao: 16/05/2017 por Bruno Carvalho 
;Motivo Alteracao: Removido a tabela RM_3001A, pois era idˆntica a RM_3001, apenas tinha sido acrescentado 
;                  CODIGO DA COR_TECIDO p/ #0232# com a finalidade de ser exibido no excel [Sol. 20929]
;Ultima Alteracao: 16/05/2017 por Bruno Carvalho 
;Motivo Alteracao: Ajustes nos reports p/ ordenar colunas conforme solicita‡Æo #0222# -> Vari vel de controle ORDENA_CONLUNAS (Sol. 29385)
;Ultima Alteracao: 10/08/2017 por Bruno Carvalho 
;Motivo Alteracao: Ajustes ao montar TIPDEST_OUTROS[],  tipo de destino OUTROS nÆo estava sendo lan‡ado
;Ultima Alteracao: 22/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado TG_CODMODELO, TG_CODMODELO_COMCASASDECIMAIS
;Ultima Alteracao: 26/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado SetaVisualizarCasasDecimais(),ConfigOpcoes()
;Ultima Alteracao: 29/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes op‡äes de relat¢rios e modelos de reports                                
;Ultima Alteracao: 02/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado consignado, campo6, campo7, campo8                                      
;Ultima Alteracao: 05/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ordem de relatorio e novo 6lpp                                             
;Ultima Alteracao: 07/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo consignado                                                          
;Ultima Alteracao: 07/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes inclusao modelo territorio nÆo enxerga
;Ultima Alteracao: 09/04/2018 por Bruno Carvalho
;Motivo Alteracao: Campo duplicado na ASK [Outros_Pendente] -> Ajusta_Dados()                                      
;Ultima Alteracao: 11/04/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes processo p/ ser exibido 8 colunas de DESTINO no relat¢rio
;Ultima Alteracao: 25/05/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes no campo TG_ZERADO p/ as op‡äes serem verificadas pelo F1
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 30/05/2018 por Bruno Carvalho
;Motivo Alteracao: Movido TG_ZERADO na BibShow e ajustado neste script 
;Ultima Alteracao: 28/01/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado p/ pegar [Tipo do Item] = "T" quando codigo da grade diferente de branco 
;Ultima Alteracao: 24/12/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado Bib_Proc
;Ultima Alteracao: 05/05/2020 por Bruno Carvalho
;Motivo Alteracao: Add filtro VSDGREFERENCIA no campo [Referencia] ao selecionar a ASK referente aos itens -> Seleciona_Itens()
;Ultima Alteracao: 11/05/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog
;Ultima Alteracao: 13/05/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CheckTG_OPOF[1]

;*******************************************************************************
;* Rotina p/ Verificar se existe movimentacao no mes em aberto/fechado         *
;*******************************************************************************
Proc Verifica_Mov()
ClearAll
LimpaRodape(0)
ExibeRodape(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 ">=~DATAINI, <=~DATAFIM"
        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 ">=~DATAINI, <=~DATAFIM"
        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 ">=~DATAINI, <=~DATAFIM"
        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 ">=~DATAINI, <=~DATAFIM"
        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 ">=~DATAINI, <=~DATAFIM"
        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+"Cprobc")
   Then {Ask} TypeIn "\\Sistemas\\Faccao\\"+Dir_Trab+"Cprobc" Enter
        Moveto [Numero do Lancamento     ] Check
        Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA.."
        Moveto [Data_Ocorrencia          ] TypeIn ">=~DATAINI, <=~DATAFIM"
        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_Itens()
ClearAll

;--- Incluindo todos itens da sele‡Æo ------------------------------------------ 
If Dir_Trab=""
   Then 
        ClearAll
        LimpaRodape(0)
        ExibeRodape(1,"Aguarde, processando ITENS")      

        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ] Check
        Moveto [Descricao do Item      ] Check
        Moveto [Codigo da Cor_Tecido   ] Check 
        Moveto [Descricao da Cor_Tecido] Check
        Moveto [Unidade Interna        ] Check
        Moveto [Tipo do Item           ] Check TypeIn "P Or S Or T"
        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 TypeIn "~VSDGMARCA.."
        Moveto [Descricao da Marca     ] Check
        Moveto [Referencia             ] Check TypeIn "~VSDGREFERENCIA.."
        Moveto [Codigo da Grade        ] Check TypeIn "Not Blank"
        Do_It!
        ClearAll
        TabelaRItens=Adiciona_Indice_Temp("Codigo do Item")  ; Tabela rela‡Æo de Itens

        {ask} typein TabelaRItens enter Check
        Moveto [Codigo do Item         ] TypeIn "_item!"
        {Ask} {\\Sistemas\\Estoque\\Iten_com}
        Moveto [Codigo do Item         ] TypeIn "_item"
        Moveto [Situacao               ] Check
        Moveto [Vendagem               ] Check
        Do_It!
        ClearAll
        Delete TabelaRItens
        
        
        {ask} {Answer}
        Moveto [Codigo do Item         ] Example "item"
        Moveto [Descricao do Item      ] Example "desc"
        Moveto [Codigo da Cor_Tecido   ] Example "cod" 
        Moveto [Descricao da Cor_Tecido] Example "Dcod"
        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 [Situacao               ] Example "sit"
        Moveto [Vendagem               ] Example "ved"
        {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 [Codigo da Cor_Tecido   ] Example "cod" 
        Moveto [Descricao da Cor_Tecido] Example "Dcod"
        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 [Situacao               ] Example "sit"
        Moveto [Vendagem               ] 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 Or T" 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_NotaC()

;-- Faturamentos Notas ---------------------------------------------------------
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
  
    ClearAll
    LimpaRodape(0)
    Switch
      Case i=1: ExibeRodape(1,"Aguarde, processando FATURAMENTO SAIDAS")
      Case i=2: ExibeRodape(1,"Aguarde, processando FATURAMENTO ENTRADAS")
    EndSwitch

    {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 TypeIn "~VSDGEMPRESA.."
    Moveto [Numero do Documento      ] Check
    Moveto [Serie do Documento       ] Check
    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"
    Do_It!
    ClearAll
    if isempty("Answer")
       then Loop     
    endif
    TabelaRN=Adiciona_Indice_Temp("Codigo da Empresa,Numero do Documento,Serie do Documento")  ; Tabela rela‡Æo de Notas

    {Ask} TypeIn TabelaRN enter
    Moveto [Codigo da Empresa        ]       Example "emp" 
    Moveto [Numero do Documento      ]       Example "doc"
    Moveto [Serie do Documento       ]       Example "ser"
    {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
    Moveto [Codigo da Empresa        ] Check Example "emp"
    Moveto [Numero do Documento      ]       Example "doc"
    Moveto [Serie do Documento       ]       Example "ser"
    Moveto [Codigo do Item           ] Check 
    Moveto [Quantidade               ]       TypeIn "Calc Sum as Quantidade"
    Moveto [Situacao_Item            ]       TypeIn "Not C"
    Do_It!
    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.."
    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 Or T" EndIf
       OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
    EndSwitch
    Moveto [Codigo da Grade        ] TypeIn "Not Blank"    
    {Ask} {Answer} check
    Moveto [Codigo do Item         ] Example "cite"
    Do_It!
    ClearAll
    Switch
      Case i=1: Adiciona_Dados("SAIDAS")
      Case i=2: Adiciona_Dados("ENTRADAS")
    EndSwitch

    Delete TabelaRN
  EndFor
EndFor      
      
EndProc ;Seleciona_NotaC()

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

;-- Faturamentos OFïs  ---------------------------------------------------------
If CheckTG_OPOF[1]=False And Dir_Trab="" And IsTable("\\Sistemas\\Vendas\\FaturaC")
   Then 
        For I From 1 To 2

          ClearAll
          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\\Vendas\\Destin}
          Moveto [Codigo da Destinacao     ]       Example "destin"
          Moveto [Atualiza Estoque         ]       TypeIn "S"
          {Ask} {\\Sistemas\\Vendas\\FaturaC}
          Moveto [Numero da OF             ] Check 
          Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
          Moveto [Codigo da Destinacao     ]       Example "destin"
          Moveto [Data de Emissao          ]       TypeIn ">=~DATAINI, <=~DATAFIM"
          If i=1
             Then Moveto [Tipo Movimento Estoque   ] TypeIn "S"
             Else Moveto [Tipo Movimento Estoque   ] TypeIn "E"
          EndIf
          Moveto [Numero Nota Gerada       ] TypeIn "Blank"
          Do_It!
          ClearAll
          if isempty("Answer")
             then Loop
          endif
          TabelaROF=Adiciona_Indice_Temp("Numero da OF")  ; Tabela rela‡Æo de OFïs
      
          {Ask} TypeIn TabelaROF enter
          Moveto [Numero da OF             ]       Example "doc"
          Moveto [Codigo da Empresa        ] Check 
          {Ask} {\\Sistemas\\Vendas\\FaturaI}
          Moveto [Numero da OF             ]       Example "doc"
          Moveto [Codigo do Item           ] Check 
          Moveto [Quantidade               ]       TypeIn "Calc Sum as Quantidade"
          Do_It!
          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.."
          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 Or T" EndIf
             OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
          EndSwitch
          Moveto [Codigo da Grade        ] TypeIn "Not Blank"
          {Ask} {Answer} check
          Moveto [Codigo do Item         ] Example "cite"
          Do_It!
          ClearAll
          If i=1
             Then Adiciona_Dados("SAIDAS")
             Else Adiciona_Dados("ENTRADAS")
          EndIf

          Delete TabelaROF
        EndFor

        ;-- Faturamentos OFïs  Entrada/Troca ---------------------------------------------------
        If Not IsEmpty("\\Sistemas\\Vendas\\FaturaID")
           Then 
                ClearAll
                LimpaRodape(0)
                ExibeRodape(1,"Aguarde, processando OFïS TROCAS")
        
                {Ask} {\\Sistemas\\Vendas\\Destin}
                Moveto [Codigo da Destinacao     ]       Example "destin"
                Moveto [Atualiza Estoque         ]       TypeIn "S"
                {Ask} {\\Sistemas\\Vendas\\FaturaC}
                Moveto [Numero da OF             ] Check 
                Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
                Moveto [Codigo da Destinacao     ]       Example "destin"
                Moveto [Descricao da Destinacao  ]       TypeIn "..TROCA.."
                Moveto [Data de Emissao          ]       TypeIn ">=~DATAINI, <=~DATAFIM"
                Moveto [Tipo Movimento Estoque   ]       TypeIn "S"
                Moveto [Numero Nota Gerada       ]       TypeIn "Blank"
                Do_It!
                ClearAll
                if not isempty("Answer")
                   then     
                        TabelaROF=Adiciona_Indice_Temp("Numero da OF")  ; Tabela rela‡Æo de OFïs
                    
                        {Ask} TypeIn TabelaROF enter
                        Moveto [Numero da OF             ]       Example "doc"
                        Moveto [Codigo da Empresa        ] Check 
                        {Ask} {\\Sistemas\\Vendas\\FaturaID}
                        Moveto [Numero da OF             ]       Example "doc"
                        Moveto [Codigo do Item           ] Check 
                        Moveto [Quantidade               ]       TypeIn "Calc Sum as Quantidade"
                        Do_It!
                        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.."
                        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 Or T" EndIf
                           OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
                        EndSwitch
                        Moveto [Codigo da Grade        ] TypeIn "Not Blank"
                        {Ask} {Answer} check
                        Moveto [Codigo do Item         ] Example "cite"
                        Do_It!
                        ClearAll
                        Adiciona_Dados("ENTRADAS")
                        
                        Delete TabelaROF
                endif
        EndIf
EndIf

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

        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter
        Moveto [Numero do Lancamento     ] Check 
        Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Entrada          ]       TypeIn ">=~DATAINI, <=~DATAFIM"
        Moveto [Tipo de Operacao         ]       TypeIn "Not A, Not I"
        Do_It!
        ClearAll
        if not isempty("Answer")
           then     
                TabelaRNE=Adiciona_Indice_Temp("Numero do Lancamento")  ; Tabela rela‡Æo de Notas de Entrada
            
                {Ask} TypeIn TabelaRNE enter
                Moveto [Numero do Lancamento     ]       Example "doc"
                Moveto [Codigo da Empresa        ] Check 
                {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
                Moveto [Numero do Lancamento     ]       Example "doc"
                Moveto [Codigo do Item           ] Check 
                Moveto [Quantidade Convertida    ] TypeIn "Calc Sum As Quantidade"
                Do_It!
                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.."
                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 Or T" EndIf
                   OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
                EndSwitch
                Moveto [Codigo da Grade        ] TypeIn "Not Blank"
                {Ask} {Answer} check
                Moveto [Codigo do Item         ] Example "cite"
                Do_It!
                ClearAll
                Adiciona_Dados("ENTRADAS")
                
                Delete TabelaRNE
        endif        
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

  ClearAll
  LimpaRodape(0)
  ExibeRodape(1,"Aguarde, processando REQUISI€åES")

  {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca" Enter
  Moveto [Numero do Lancamento     ] Check
  Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
  Moveto [Data de Ocorrencia       ]       TypeIn ">=~DATAINI, <=~DATAFIM"
  If i=1
     Then Moveto [Tipo de Movimento] TypeIn "S"
     Else Moveto [Tipo de Movimento] TypeIn "E"
  EndIf
  Do_It!
  ClearAll
  if not isempty("Answer")
     then     
          TabelaRRQ=Adiciona_Indice_Temp("Numero do Lancamento")  ; Tabela rela‡Æo de Notas de Requisi‡äes
      
          {Ask} TypeIn TabelaRRQ enter
          Moveto [Numero do Lancamento     ]       Example "doc"
          Moveto [Codigo da Empresa        ] Check 
          {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqItem" Enter
          Moveto [Numero do Lancamento     ]       Example "doc"
          Moveto [Codigo do Item           ] Check 
          Moveto [Quantidade               ]       TypeIn "Calc Sum As Quantidade"
          Do_It!
          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.."
          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 Or T" EndIf
             OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
          EndSwitch
          Moveto [Codigo da Grade        ] TypeIn "Not Blank"
          {Ask} {Answer} check
          Moveto [Codigo do Item         ] Example "cite"
          Do_It!
          ClearAll
          If i=1
             Then Adiciona_Dados("SAIDAS")
             Else Adiciona_Dados("ENTRADAS")
          EndIf
          Delete TabelaRRQ
  endif   
EndFor

If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"RqMatPri")
   Then
        ClearAll
        LimpaRodape(0)
        ExibeRodape(1,"Aguarde, processando REQUISI€åES")

        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqCabeca" Enter
        Moveto [Numero do Lancamento     ] Check
        Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Ocorrencia       ]       TypeIn ">=~DATAINI, <=~DATAFIM"
        Moveto [Tipo de Movimento        ]       TypeIn "E"
        Moveto [Tipo de Operacao         ]       TypeIn "P Or I"
        Do_It!
        ClearAll
        if not isempty("Answer")
           then     
                TabelaRRQ=Adiciona_Indice_Temp("Numero do Lancamento")  ; Tabela rela‡Æo de Notas de Requisi‡äes
            
                {Ask} TypeIn TabelaRRQ enter
                Moveto [Numero do Lancamento     ]       Example "doc"
                Moveto [Codigo da Empresa        ] Check 
                {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"RqMatPri" Enter
                Moveto [Numero do Lancamento     ]       Example "doc"
                Moveto [Codigo do Item           ] Check 
                Moveto [Quantidade               ]       TypeIn "Calc Sum As Quantidade"
                Do_It!
                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.."
                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 Or T" EndIf
                   OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
                EndSwitch
                Moveto [Codigo da Grade        ] TypeIn "Not Blank"
                {Ask} {Answer} check
                Moveto [Codigo do Item         ] Example "cite"
                Do_It!
                ClearAll
                Adiciona_Dados("SAIDAS")
      
                Delete TabelaRRQ
        endif   
EndIf

EndProc

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

;-- Pedidos ------------------------------------------------------------
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PEDIDOS VENDA")

{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       ] Check Example "Pedido"
Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Codigo da Destinacao   ]       Example "cd"
If VSDGOPPE<>"R"
   Then If VSDGOPCAO2[1]
           Then Moveto [Situacao do Pedido     ] TypeIn "ABERTO Or SUSPENSO"
           Else Moveto [Situacao do Pedido     ] TypeIn "ABERTO"
        EndIf
        Moveto [Data de Entrega] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
EndIf
Do_It!
ClearAll
if not isempty("Answer")
   then       
        TabelaRPedidos=Adiciona_Indice_Temp("Numero do Pedido")  ; Tabela rela‡Æo de Pedidos

        {Ask} typein TabelaRPedidos enter
        Moveto [Numero do Pedido       ]       Example "Pedido"
        Moveto [Codigo da Empresa      ] 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 [Quantidade             ] Check TypeIn ">" Example "qf"
        Moveto [Quantidade Faturada    ] Check Example "qf"
        Do_It!
        ClearAll

        {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

        {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 Or T" EndIf
           OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
        EndSwitch
        Moveto [Codigo da Grade        ] TypeIn "Not Blank"
        {Ask} {Answer} check
        Moveto [Codigo do Item         ]  Example "cite"
        Do_It!
        ClearAll
        Adiciona_Dados("PEDIDOS")

        Delete TabelaRPedidos
EndIf
   
If VSDGNPPROJECAO<=0
   Then Return
EndIf   

;-- Pedidos_Faturados ----------------------------------------------------------
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PEDIDOS PROJE€¶O DE VENDAS 1/3")

{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       ] Check Example "Pedido"
Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Codigo da Destinacao   ]       Example "cd"
Moveto [Descricao da Destinacao]       typein "..VEND.."
If VSDGOPPE<>"R"
   Then If VSDGOPCAO2[1]
           Then Moveto [Situacao do Pedido     ] TypeIn "Not CANCELADO"
           Else Moveto [Situacao do Pedido     ] TypeIn "Not CANCELADO, Not SUSPENSO"
        EndIf
        Moveto [Data de Entrega] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
EndIf
Do_It!
ClearAll
if not isempty("Answer")
   then       
        TabelaRPedidos=Adiciona_Indice_Temp("Numero do Pedido")  ; Tabela rela‡Æo de Pedidos

        {Ask} typein TabelaRPedidos enter
        Moveto [Numero do Pedido       ]       Example "Pedido"
        Moveto [Codigo da Empresa      ] Check 
        {Ask} {\\Sistemas\\Vendas\\PedidoI}
        Moveto [Numero do Pedido       ] Check Example "Pedido"
        Moveto [Item do Pedido         ] Check
        Moveto [Codigo do Item         ] Check 
        Moveto [Quantidade Faturada    ] Check
        Do_It!
        ClearAll

        {Ask} {Answer}
        Moveto [Codigo da Empresa      ] Check
        Moveto [Codigo do Item         ] Check
        Moveto [Quantidade Faturada    ] TypeIn "Calc Sum as Quantidade"
        Do_It!
        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.."
        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 or T" EndIf
           OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
        EndSwitch
        Moveto [Codigo da Grade        ] TypeIn "Not Blank"
        {Ask} {Answer} check
        Moveto [Codigo do Item         ]  Example "cite"
        Do_It!
        ClearAll
        Adiciona_Dados("PEDIDOS_FATURADOS")
        
        Delete TabelaRPedidos
endif

;-- Pedidos_Todos --------------------------------------------------------------
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PEDIDOS PROJE€¶O DE VENDAS 2/3")

{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       ] Check Example "Pedido"
Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Codigo da Destinacao   ]       Example "cd"
Moveto [Descricao da Destinacao]       typein "..VEND.."
If VSDGOPPE<>"R"
   Then If VSDGOPCAO2[1]
           Then Moveto [Situacao do Pedido     ] TypeIn "Not CANCELADO"
           Else Moveto [Situacao do Pedido     ] TypeIn "Not CANCELADO, NOT SUSPENSO"
        EndIf
        Moveto [Data de Entrega] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
EndIf
Do_It!
ClearAll

if not isempty("Answer")
   then
        TabelaRPedidos=Adiciona_Indice_Temp("Numero do Pedido")  ; Tabela rela‡Æo de Pedidos

        {Ask} typein TabelaRPedidos enter
        Moveto [Numero do Pedido       ]       Example "Pedido"
        Moveto [Codigo da Empresa      ] Check 
        {Ask} {\\Sistemas\\Vendas\\PedidoI}
        Moveto [Numero do Pedido       ] Check Example "Pedido"
        Moveto [Item do Pedido         ] Check
        Moveto [Codigo do Item         ] Check 
        Moveto [Quantidade             ] Check
        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
        
        {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 Or T" EndIf
           OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
        EndSwitch
        Moveto [Codigo da Grade        ] TypeIn "Not Blank"
        {Ask} {Answer} check
        Moveto [Codigo do Item         ]  Example "cite"
        Do_It!
        ClearAll
        
        Adiciona_Dados("PEDIDOS_TODOS")
        Delete TabelaRPedidos

        ;-- Pedidos_Total --------------------------------------------------------------
        ClearAll
        LimpaRodape(0)
        ExibeRodape(1,"Aguarde, processando PEDIDOS PROJE€¶O DE VENDAs 3/3")
        
        {Ask} {Answer}
        Moveto [Codigo da Empresa] Check
        Moveto [Quantidade       ] TypeIn "Calc Sum as Quantidade"
        Do_It!
        ClearAll
        
        If not IsEmpty("Answer")
           Then
                {Ask} {Answer}
                Moveto [Codigo da Empresa      ] TypeIn "_cdemp"
                Moveto [Quantidade             ] TypeIn "_novaqtde"
                {Ask} TypeIn TabelaP Enter TypeIn "Fast"
                Moveto [Codigo da Empresa      ] TypeIn "_cdemp"
                Moveto [Pedidos_Total          ] TypeIn "changeto _novaqtde"
                Do_It!
                ClearAll
        EndIf
endif   
   
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Programacoes/Produ‡oes IE (Interno/Externo)          *
;*******************************************************************************
Proc Seleciona_IE()
ClearAll

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

If ArraySize(TIPDEST)>0
   Then
        For wcc From 1 To ArraySize(TIPDEST)
          Seleciona_IE1("CAMPO",TIPDEST[wcc])
        EndFor
EndIf

If DynArraySize(TIPDEST_OUTROS)>0
   Then
        For wcc From 1 To DynArraySize(TIPDEST_OUTROS)
          Seleciona_IE1("OUTROS",TIPDEST_OUTROS[wcc])
        EndFor
EndIf

EndProc  

;*******************************************************************************
;* Rotina p/ Selecionar                                                        *
;*******************************************************************************
Proc Seleciona_IE1(PARAM,DESTINO)

;-- Programa‡äes -------------------------------------------------------
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PROGRAMA€åES "+DESTINO)

{Ask} {\\Sistemas\\Faccao\\Pfacc}
Moveto [Numero_Programacao       ] Check 
Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Data_Programacao         ]       TypeIn "<=~DATAFIM"
Moveto [Situacao_Programacao     ]       TypeIn "Not FINALIZADA"
Moveto [Destino_Producao         ]       TypeIn DESTINO
Do_It!
ClearAll
if isempty("Answer")
   then return
endif
TabelaRProg=Adiciona_Indice_Temp("Numero_Programacao")  ; Tabela rela‡Æo de Programa‡äes

{Ask} typein TabelaRProg enter
Moveto [Numero_Programacao       ]       Example "nprog"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Pfacri}
Moveto [Numero_Programacao       ]       Example "nprog"
Moveto [Codigo do Item           ] Check 
Moveto [Quantidade Programada    ]       TypeIn "Calc Sum as Quantidade"
Do_It!
ClearAll
if not isempty("Answer")
   then 
        {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} {Answer} check
        Moveto [Codigo do Item         ]  Example "cite"
        Do_It!
        ClearAll
        
        If PARAM = "CAMPO"   
           Then Adiciona_Dados(StrVal(wcc)+"_PROGRAMADA") 
           Else Adiciona_Dados("OUTROS_PROGRAMADA")
        EndIf
endif

;-- Produ‡äes ----------------------------------------------------------
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PRODU€âES "+DESTINO)

{Ask} typein TabelaRProg enter
Moveto [Numero_Programacao       ]       Example "nprog"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Rfacc}
Moveto [Numero_Producao          ] Check 
Moveto [Numero_Programacao       ]       Example "nprog"
Do_It!
ClearAll
if isempty("Answer")
   then Delete TabelaRProg
        return 
endif
TabelaRProd=Adiciona_Indice_Temp("Numero_Producao")  ; Tabela rela‡Æo de Produ‡äes   

{Ask} typein TabelaRProd enter
Moveto [Numero_Producao          ]       Example "doc"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Rfacri}
Moveto [Numero_Producao          ]       Example "doc"
Moveto [Codigo do Item           ] Check 
Moveto [Quantidade Produzida     ]       TypeIn "Calc Sum as Quantidade"
Do_It!
ClearAll
if not isempty("Answer")
   then 
        {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} {Answer} check
        Moveto [Codigo do Item         ]  Example "cite"
        Do_It!
        ClearAll
        
        If PARAM = "CAMPO"   
           Then Adiciona_Dados(StrVal(wcc)+"_PRODUZIDA")
           Else Adiciona_Dados("OUTROS_PRODUZIDA")
        EndIf
endif   
        
;-- Problemas ----------------------------------------------------------
If Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Cprobc") 
   Then 
        Delete TabelaRProg
        Delete TabelaRProd
        return
EndIf

ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PROBLEMAS "+DESTINO)

{Ask} typein TabelaRProd enter
Moveto [Numero_Producao          ]       Example "doc"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Cprobc}
Moveto [Numero do Lancamento     ] Check 
Moveto [Numero_ProducaoIE        ]       Example "doc"
Do_It!
ClearAll
if isempty("Answer")
   then 
        Delete TabelaRProg
        Delete TabelaRProd
        return
endif        
TabelaRProb=Adiciona_Indice_Temp("Numero do Lancamento")  ; Tabela rela‡Æo de Problemas

{Ask} typein TabelaRProb enter
Moveto [Numero do Lancamento     ]       Example "nl"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Cprobi}
Moveto [Numero do Lancamento     ]       Example "nl"
Moveto [Codigo do Item           ] Check 
Moveto [Quantidade               ]       TypeIn "Calc Sum as Quantidade"
Moveto [Tipo_Ocorrencia          ]       TypeIn "PERDA OR LD"
Do_It!
ClearAll

if not isempty("Answer")
   then 
        {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} {Answer} check
        Moveto [Codigo do Item         ]  Example "cite"
        Do_It!
        ClearAll

        If PARAM = "CAMPO"   
           Then Adiciona_Dados("D"+StrVal(wcc)+"_PRODUZIDA")
           Else Adiciona_Dados("D"+"OUTROS_PRODUZIDA")
        EndIf
endif

Delete TabelaRProg
Delete TabelaRProd
Delete TabelaRProb

endproc ;Seleciona_IE1()

;*******************************************************************************
;* Rotina p/ Selecionar Opera‡äes do Corte                                     *
;*******************************************************************************
Proc Seleciona_Corte()

;-- Programa‡äes Corte ---------------------------------------------------------
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PROGRAMA€åES CORTE")

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

{Ask} {\\Sistemas\\Faccao\\Cfacc}
Moveto [Numero_Corte             ] Check
Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
Moveto [Data_Programacao         ]       TypeIn "<=~DATAFIM"
Moveto [Situacao_Programacao     ]       TypeIn "Not FINALIZADA"
Do_It!
ClearAll
if isempty("Answer")
   then return
endif
TabelaRProg=Adiciona_Indice_Temp("Numero_Corte")  ; Tabela rela‡Æo de Programa‡äes

{Ask} typein TabelaRProg enter
Moveto [Numero_Corte             ]       Example "nprog"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Cfacri}
Moveto [Numero_Corte             ]       Example "nprog"
Moveto [Codigo do Item           ] Check 
Moveto [Quantidade Programada    ]       TypeIn "Calc Sum as Quantidade"
Do_It!
ClearAll

if not isempty("Answer")
   then
        {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} {Answer} check
        Moveto [Codigo do Item         ] Example "cite"
        Do_It!
        ClearAll
        
        if not isempty("Answer")
           then
                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")
        endif
endif

;-- Produ‡äes Corte ------------------------------------------------------------
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PRODU€åES CORTE")

{Ask} typein TabelaRProg enter
Moveto [Numero_Corte             ]       Example "nprog"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Pcfacc}
Moveto [Numero_Producao_Corte    ] Check
Moveto [Numero_Programacao_Corte ]       Example "nprog"
Do_It!
ClearAll
if isempty("Answer")
   then Delete TabelaRProg
        return 
endif
TabelaRProd=Adiciona_Indice_Temp("Numero_Producao_Corte")  ; Tabela rela‡Æo de Produ‡äes       

{Ask} typein TabelaRProd enter
Moveto [Numero_Producao_Corte    ]       Example "doc"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\pcfacri}
Moveto [Numero_Producao_Corte    ]       Example "doc"
Moveto [Codigo do Item           ] Check 
Moveto [Quantidade Produzida     ]       TypeIn "Calc Sum as Quantidade"
Do_It!
ClearAll

if not isempty("Answer")
   then
        {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} {Answer} check
        Moveto [Codigo do Item         ] Example "cite"
        Do_It!
        ClearAll
        
        if not isempty("Answer")
           then
                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")
        endif
endif

;-- Problemas Corte ------------------------------------------------------------
If Not IsTable("\\Sistemas\\Faccao\\"+Dir_Trab+"Cprobc")
   Then 
        Delete TabelaRProg
        Delete TabelaRProd
        Return
EndIf

ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, processando PROBLEMAS CORTE")

{Ask} typein TabelaRProd enter
Moveto [Numero_Producao_Corte    ]       Example "doc"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Cprobc}
Moveto [Numero do Lancamento     ] Check 
Moveto [Numero_ProducaoCorte     ]       Example "doc"
Do_It!
ClearAll
if isempty("Answer")
   then 
        Delete TabelaRProg
        Delete TabelaRProd
        return
endif        
TabelaRProb=Adiciona_Indice_Temp("Numero do Lancamento")  ; Tabela rela‡Æo de Problemas

{Ask} typein TabelaRProb enter
Moveto [Numero do Lancamento     ]       Example "nl"
Moveto [Codigo da Empresa        ] Check 
{Ask} {\\Sistemas\\Faccao\\Cprobi}
Moveto [Numero do Lancamento     ]       Example "nl"
Moveto [Codigo do Item           ] Check 
Moveto [Quantidade               ]       TypeIn "Calc Sum as Quantidade"
Moveto [Tipo_Ocorrencia          ]       TypeIn "PERDA OR LD"
Do_It!
ClearAll

if not isempty("Answer")
   then
        {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} {Answer} check
        Moveto [Codigo do Item         ] Example "cite"
        Do_It!
        ClearAll

        if not isempty("Answer")
           then
                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_PROBLEMA")
        endif
endif

Delete TabelaRProg
Delete TabelaRProd
Delete TabelaRProb

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
  ;**** Pedidos **********************************************************************************************
  Case Tipo="PEDIDOS"           : Moveto [Pedidos               ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="PEDIDOS_TODOS"     : Moveto [Pedidos_Todos         ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="PEDIDOS_FATURADOS" : Moveto [Pedidos_Faturados     ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  ;**** Entradas/Saidas **************************************************************************************
  Case Tipo="SAIDAS"            : Moveto [Saidas                ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="ENTRADAS"          : Moveto [Entradas              ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  ;**** Corte ************************************************************************************************
  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="CORTE_PROBLEMA"    : Moveto [Corte_Programado      ] TypeIn "_qtde, changeto _qtde-_novaqtde"

  ;**** Colunas **********************************************************************************************
  Case Tipo="1_PROGRAMADA"      : Moveto [Campo1_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="1_PRODUZIDA"       : Moveto [Campo1_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  
  Case Tipo="2_PROGRAMADA"      : Moveto [Campo2_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="2_PRODUZIDA"       : Moveto [Campo2_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde" 

  Case Tipo="3_PROGRAMADA"      : Moveto [Campo3_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="3_PRODUZIDA"       : Moveto [Campo3_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde" 

  Case Tipo="4_PROGRAMADA"      : Moveto [Campo4_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde" 
  Case Tipo="4_PRODUZIDA"       : Moveto [Campo4_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde" 

  Case Tipo="5_PROGRAMADA"      : Moveto [Campo5_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="5_PRODUZIDA"       : Moveto [Campo5_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  Case Tipo="6_PROGRAMADA"      : Moveto [Campo6_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="6_PRODUZIDA"       : Moveto [Campo6_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  Case Tipo="7_PROGRAMADA"      : Moveto [Campo7_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="7_PRODUZIDA"       : Moveto [Campo7_Produzida      ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  Case Tipo="8_PROGRAMADA"      : Moveto [Campo8_Programada     ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="8_PRODUZIDA"       : Moveto [Campo8_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" 
  
  ;**** Saldo/Semi-Acabado ***********************************************************************************
  Case Tipo="SALDOINICIAL"      : Moveto [Saldo Inicial         ] TypeIn "_qtde, changeto _qtde+_novaqtde"
  Case Tipo="SEMI_ACABADOS"     : Moveto [Compras_SemiAcabados  ] TypeIn "_qtde, changeto _qtde+_novaqtde"

  ;**** Perdas/LD ********************************************************************************************
  Case Tipo="D1_PRODUZIDA"      : Moveto [Campo1_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde" 
  Case Tipo="D2_PRODUZIDA"      : Moveto [Campo2_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde" 
  Case Tipo="D3_PRODUZIDA"      : Moveto [Campo3_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde" 
  Case Tipo="D4_PRODUZIDA"      : Moveto [Campo4_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde" 
  Case Tipo="D5_PRODUZIDA"      : Moveto [Campo5_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde"
  Case Tipo="D6_PRODUZIDA"      : Moveto [Campo6_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde"
  Case Tipo="D7_PRODUZIDA"      : Moveto [Campo7_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde"
  Case Tipo="D8_PRODUZIDA"      : Moveto [Campo8_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde"
  Case Tipo="DOUTROS_PRODUZIDA" : Moveto [Outros_Programada     ] TypeIn "_qtde, changeto _qtde-_novaqtde" 

  ;**** Consignado *******************************************************************************************
  Case Tipo="CONSIGNADO"        : Moveto [Consignado            ] TypeIn "_qtde, changeto _qtde+_novaqtde" 

EndSwitch
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Ajusta Dados                                                                *
;*******************************************************************************
Proc Ajusta_Dados()
private tm, wii

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 [Campo1_Programada     ] TypeIn "_qtd1pm" 
Moveto [Campo1_Produzida      ] TypeIn "_qtd1pz" 
Moveto [Campo2_Programada     ] TypeIn "_qtd2pm" 
Moveto [Campo2_Produzida      ] TypeIn "_qtd2pz" 
Moveto [Campo3_Programada     ] TypeIn "_qtd3pm" 
Moveto [Campo3_Produzida      ] TypeIn "_qtd3pz"
Moveto [Campo4_Programada     ] TypeIn "_qtd4pm" 
Moveto [Campo4_Produzida      ] TypeIn "_qtd4pz" 
Moveto [Campo5_Programada     ] TypeIn "_qtd5pm"
Moveto [Campo5_Produzida      ] TypeIn "_qtd5pz"
Moveto [Campo6_Programada     ] TypeIn "_qtd6pm"
Moveto [Campo6_Produzida      ] TypeIn "_qtd6pz"
Moveto [Campo7_Programada     ] TypeIn "_qtd7pm"
Moveto [Campo7_Produzida      ] TypeIn "_qtd7pz"
Moveto [Campo8_Programada     ] TypeIn "_qtd8pm"
Moveto [Campo8_Produzida      ] TypeIn "_qtd8pz"
Moveto [Outros_Programada     ] TypeIn "_qtdopm" 
Moveto [Outros_Produzida      ] TypeIn "_qtdopz" 
Moveto [Saldo Inicial         ] TypeIn "_qtdi"
Moveto [Saldo Atual           ] TypeIn "changeto (_qtdi+_qtde)-_qtds"
Moveto [Corte_Pendente        ] TypeIn "changeto _qtdcpm-_qtdcpz"
Moveto [Campo1_Pendente       ] TypeIn "changeto _qtd1pm-_qtd1pz"
Moveto [Campo2_Pendente       ] TypeIn "changeto _qtd2pm-_qtd2pz"
Moveto [Campo3_Pendente       ] TypeIn "changeto _qtd3pm-_qtd3pz"
Moveto [Campo4_Pendente       ] TypeIn "changeto _qtd4pm-_qtd4pz"
Moveto [Campo5_Pendente       ] TypeIn "changeto _qtd5pm-_qtd5pz"
Moveto [Campo6_Pendente       ] TypeIn "changeto _qtd6pm-_qtd6pz"
Moveto [Campo7_Pendente       ] TypeIn "changeto _qtd7pm-_qtd7pz"
Moveto [Campo8_Pendente       ] TypeIn "changeto _qtd8pm-_qtd8pz"
Moveto [Outros_Pendente       ] TypeIn "changeto _qtdopm-_qtdopz"
Do_It!
ClearAll

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

        {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      ]       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("SEMI_ACABADOS")
EndIf

;******** Somente Tipo de itens *******
ClearAll
LimpaRodape(0)
ExibeRodape(1,"Aguarde, efetuando filtro")
{Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
Moveto [Tipo do Item         ] TypeIn "Not P, Not T"
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\\Itens}
Moveto [Codigo do Item        ] Check 
Moveto [Inativo               ]       TypeIn "S"
Do_It!
ClearAll
if isempty("Answer")
   then 
        TabelaRI=Adiciona_Indice_Temp("Codigo do Item")  ; Tabela rela‡Æo de Inativos 

        {Ask} TypeIn TabelaRI Enter 
        Moveto [Codigo do Item        ] example "item"
        {Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
        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 [Campo1_Pendente       ] TypeIn "0 or Blank"
        Moveto [Campo2_Pendente       ] TypeIn "0 or Blank"
        Moveto [Campo3_Pendente       ] TypeIn "0 or Blank"
        Moveto [Campo4_Pendente       ] TypeIn "0 or Blank"
        Moveto [Campo5_Pendente       ] TypeIn "0 or Blank"
        Moveto [Campo6_Pendente       ] TypeIn "0 or Blank"
        Moveto [Campo7_Pendente       ] TypeIn "0 or Blank"
        Moveto [Campo8_Pendente       ] TypeIn "0 or Blank"
        Moveto [Outros_Pendente       ] TypeIn "0 or Blank"
        Moveto [Consignado            ] TypeIn "0 or Blank"
        Do_It!
        ClearAll

        Delete TabelaRI
endif        

;******* Ajusta dados do cadastro de Empresas ******
ClearAll
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

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "item"
Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
Moveto [Referencia             ] TypeIn "~VSDGREFERENCIA.."
{Ask} TypeIn TabelaP Enter Check
Moveto [Codigo do Item         ] Example "item"
Do_It!
ClearAll

NR = NRecords("Answer")

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

  tm=PegaCampoTamanho()
  
  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

  If VSDGNPPROJECAO>0
     then txproporcional =([Pedidos_Todos]/[Pedidos_Total])*100
          projecao       =Round((VSDGNPPROJECAO*txproporcional)/100,0)
          resultado      =projecao-[Pedidos_Faturados]
          [Pedidos]      =resultado
          if [Pedidos]=0
             then [Pedidos]=blanknum()
          endif   
  Endif
  
  If IsAssigned(TIT_OUTROS) And TIT_OUTROS=" " And [Outros_Pendente] > 0  
     Then TIT_OUTROS = "+"
  EndIf          
  
  [Disponivel]=([Saldo Atual]-[Pedidos])+[Compras_SemiAcabados]+[Corte_Pendente]
  [Disponivel]=[Disponivel]+[Campo1_Pendente]
  [Disponivel]=[Disponivel]+[Campo2_Pendente]
  [Disponivel]=[Disponivel]+[Campo3_Pendente]             
  [Disponivel]=[Disponivel]+[Campo4_Pendente]
  [Disponivel]=[Disponivel]+[Campo5_Pendente]
  [Disponivel]=[Disponivel]+[Campo6_Pendente]
  [Disponivel]=[Disponivel]+[Campo7_Pendente]
  [Disponivel]=[Disponivel]+[Campo8_Pendente]
  [Disponivel]=[Disponivel]+[Outros_Pendente]        

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

EndScan
Do_It!
ClearAll

If VSDGOPANALISE="1"   
   then
        Empty TabelaP
        Add "Answer" TabelaP
        ClearAll
endif

If VSDGOPANALISE="2" Or   
   VSDGOPANALISE="3"      
   Then

    TabelaPT=Cria_Temp(PrivDir())
    Rename "Answer" TabelaPT
    ClearAll
        
    LimpaRodape(0)
    Switch
      Case VSDGOPANALISE="2": ExibeRodape(1,"Aguarde, processando SO REFERENCIA")
      Case VSDGOPANALISE="3": ExibeRodape(1,"Aguarde, processando REFERENCIA+COR")
    EndSwitch
    
    Empty TabelaP
    
    {Ask} TypeIn TabelaPT Enter
    Moveto [Codigo da Empresa      ] Check
    Moveto [Codigo do Item         ] Check
    Moveto [Nome Fantasia Empresa  ] Check
    Moveto [Descricao do Item      ] Check
    Moveto [Codigo da Cor_Tecido   ] Check 
    Moveto [Descricao da Cor_Tecido] 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 [Codigo da Cor_Tecido   ] Example "cod" 
    Moveto [Descricao da Cor_Tecido] Example "Dcod"
    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 TabelaP 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 [Codigo da Cor_Tecido   ] Example "cod" 
    Moveto [Descricao da Cor_Tecido] Example "Dcod"
    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 TabelaPT 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 [Campo1_Pendente        ] Typein "Calc Sum as Campo1"
    Moveto [Campo2_Pendente        ] Typein "Calc Sum as Campo2"
    Moveto [Campo3_Pendente        ] Typein "Calc Sum as Campo3"
    Moveto [Campo4_Pendente        ] Typein "Calc Sum as Campo4"
    Moveto [Campo5_Pendente        ] Typein "Calc Sum as Campo5"
    Moveto [Campo6_Pendente        ] Typein "Calc Sum as Campo6"
    Moveto [Campo7_Pendente        ] Typein "Calc Sum as Campo7"
    Moveto [Campo8_Pendente        ] Typein "Calc Sum as Campo8"
    Moveto [Outros_Pendente        ] Typein "Calc Sum as Outros"
    Moveto [Disponivel             ] Typein "Calc Sum as Disponivel"
    Moveto [Pedidos_Todos          ] Typein "Calc Sum as PedidosTodos"
    Moveto [Pedidos_Faturados      ] Typein "Calc Sum as PedidosFaturados"
    Moveto [Pedidos_Total          ] Typein "Calc Sum as PedidosTotal"
    Moveto [Consignado             ] Typein "Calc Sum as Consignado"
    Do_It!
    ClearAll
    TabelaSItens=Adiciona_Indice_Temp("Codigo da Empresa,Codigo do Item")  
    
    {Ask} TypeIn TabelaSItens Enter
    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 [Campo1                 ] Typein "_Campo1"
    Moveto [Campo2                 ] Typein "_Campo2"
    Moveto [Campo3                 ] Typein "_Campo3"
    Moveto [Campo4                 ] Typein "_Campo4"
    Moveto [Campo5                 ] Typein "_Campo5"
    Moveto [Campo6                 ] Typein "_Campo6"
    Moveto [Campo7                 ] Typein "_Campo7"
    Moveto [Campo8                 ] Typein "_Campo8"
    Moveto [Outros                 ] Typein "_Outros"
    Moveto [Disponivel             ] Typein "_Disponivel"
    Moveto [PedidosTodos           ] Typein "_PedidosTodos"
    Moveto [PedidosFaturados       ] Typein "_PedidosFaturados"
    Moveto [PedidosTotal           ] Typein "_PedidosTotal"
    Moveto [Consignado             ] Typein "_Consignado"
    {Ask} TypeIn TabelaP 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 [Campo1_Pendente        ] Typein "changeto _Campo1"
    Moveto [Campo2_Pendente        ] Typein "changeto _Campo2"
    Moveto [Campo3_Pendente        ] Typein "changeto _Campo3"
    Moveto [Campo4_Pendente        ] Typein "changeto _Campo4"
    Moveto [Campo5_Pendente        ] Typein "changeto _Campo5"
    Moveto [Campo6_Pendente        ] Typein "changeto _Campo6"
    Moveto [Campo7_Pendente        ] Typein "changeto _Campo7"
    Moveto [Campo8_Pendente        ] Typein "changeto _Campo8"
    Moveto [Outros_Pendente        ] Typein "changeto _Outros"
    Moveto [Disponivel             ] Typein "changeto _Disponivel"
    Moveto [Pedidos_Todos          ] Typein "changeto _PedidosTodos"
    Moveto [Pedidos_Faturados      ] Typein "changeto _PedidosFaturados"
    Moveto [Pedidos_Total          ] Typein "changeto _PedidosTotal"
    Moveto [Consignado             ] Typein "changeto _Consignado"
    Do_It!
    ClearAll
    Delete TabelaSItens
    

    {Ask} TypeIn TabelaPT 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
    TabelaSItens=Adiciona_Indice_Temp("Codigo da Empresa,Codigo do Item")  
    
    {Ask} TypeIn TabelaSItens Enter 
    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 TabelaP 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 TabelaSItens

    Delete TabelaPT
Endif

for wii from 1 to 11
 {Ask} TypeIn TabelaP Enter TypeIn "Fast"
 switch
   case wii=1 : Moveto [Corte_Pendente       ] TypeIn "0, changeto Blank"
   case wii=2 : Moveto [Campo1_Pendente      ] TypeIn "0, changeto Blank"
   case wii=3 : Moveto [Campo2_Pendente      ] TypeIn "0, changeto Blank"
   case wii=4 : Moveto [Campo3_Pendente      ] TypeIn "0, changeto Blank"
   case wii=5 : Moveto [Campo4_Pendente      ] TypeIn "0, changeto Blank"
   case wii=6 : Moveto [Campo5_Pendente      ] TypeIn "0, changeto Blank"
   case wii=7 : Moveto [Campo6_Pendente      ] TypeIn "0, changeto Blank"
   case wii=8 : Moveto [Campo7_Pendente      ] TypeIn "0, changeto Blank"
   case wii=9 : Moveto [Campo8_Pendente      ] TypeIn "0, changeto Blank"
   case wii=10: Moveto [Outros_Pendente      ] TypeIn "0, changeto Blank"
   case wii=11: Moveto [Consignado           ] TypeIn "0, changeto Blank"
 endswitch
 Do_It!
 ClearAll
endfor

LimpaRodape(0)
ExibeRodape(1,"Aguarde, efetuando filtro")

Switch
  Case VSDGZERADO="0" :  ;Sem Estoque Zerado
       {Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
       Moveto [Saldo Atual          ] TypeIn "blank or 0"
       Moveto [Pedidos              ] TypeIn "blank or 0"
       Moveto [Compras_SemiAcabados ] TypeIn "blank or 0"
       Moveto [Corte_Pendente       ] TypeIn "blank or 0"
       Moveto [Campo1_Pendente      ] TypeIn "blank or 0"
       Moveto [Campo2_Pendente      ] TypeIn "blank or 0"
       Moveto [Campo3_Pendente      ] TypeIn "blank or 0"
       Moveto [Campo4_Pendente      ] TypeIn "blank or 0"
       Moveto [Campo5_Pendente      ] TypeIn "blank or 0"
       Moveto [Campo6_Pendente      ] TypeIn "blank or 0"
       Moveto [Campo7_Pendente      ] TypeIn "blank or 0"
       Moveto [Campo8_Pendente      ] TypeIn "blank or 0"
       Moveto [Consignado           ] TypeIn "blank or 0"
       Moveto [Outros_Pendente      ] TypeIn "blank or 0"
       Do_It!
       ClearAll
  Case VSDGZERADO="2" : ;S¢ Estoque Zerado
       {Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
       Moveto [Saldo Atual          ] TypeIn "not blank, not 0"
       Moveto [Pedidos              ] TypeIn "not blank, not 0"
       Moveto [Compras_SemiAcabados ] TypeIn "not blank, not 0"
       Moveto [Corte_Pendente       ] TypeIn "not blank, not 0"
       Moveto [Campo1_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Campo2_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Campo3_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Campo4_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Campo5_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Campo6_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Campo7_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Campo8_Pendente      ] TypeIn "not blank, not 0"
       Moveto [Consignado           ] TypeIn "not blank, not 0"
       Moveto [Outros_Pendente      ] TypeIn "not blank, not 0"
       Do_It!
       ClearAll
  Case VSDGZERADO="3" : ;S¢ Negativo
       {Ask} TypeIn TabelaP Enter TypeIn "Fast Delete"
       Moveto [Saldo Atual          ] TypeIn ">=0"
       Moveto [Pedidos              ] TypeIn ">=0"
       Moveto [Compras_SemiAcabados ] TypeIn ">=0"
       Moveto [Corte_Pendente       ] TypeIn ">=0"
       Moveto [Campo1_Pendente      ] TypeIn ">=0"
       Moveto [Campo2_Pendente      ] TypeIn ">=0"
       Moveto [Campo3_Pendente      ] TypeIn ">=0"
       Moveto [Campo4_Pendente      ] TypeIn ">=0"
       Moveto [Campo5_Pendente      ] TypeIn ">=0"
       Moveto [Campo6_Pendente      ] TypeIn ">=0"
       Moveto [Campo7_Pendente      ] TypeIn ">=0"
       Moveto [Campo8_Pendente      ] TypeIn ">=0"
       Moveto [Consignado           ] TypeIn ">=0"
       Moveto [Outros_Pendente      ] TypeIn ">=0"
       Do_It!
       ClearAll
EndSwitch

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

;---- Atribuindo valor e ordenando coluna de corte/producao do corte ----------- 
{Ask} TypeIn TabelaP Enter
Moveto [Compras_SemiAcabados] TypeIn "_Col1"
Moveto [Corte_Pendente      ] TypeIn "_Col2"
If SYS_CODIGO_CLIENTE="0222"
   Then Moveto [Coluna1     ] TypeIn "Changeto _Col2"
        Moveto [Coluna2     ] TypeIn "Changeto _Col1"
        ;---- Coluna 1 ----------------------------------------
        NOM_TIT_COLUNA11 = ""
        NOM_TIT_COLUNA12 = " Corte"
        TIT_COLUNA1      = "+"
        ;---- Coluna 2 ----------------------------------------
        NOM_TIT_COLUNA21 = "Estoq."
        NOM_TIT_COLUNA22 = " Corte"
        TIT_COLUNA2      = "+"
   Else Moveto [Coluna1     ] TypeIn "Changeto _Col1"
        Moveto [Coluna2     ] TypeIn "Changeto _Col2"
        ;---- Coluna 1 ----------------------------------------
        NOM_TIT_COLUNA11 = "Estoq."
        NOM_TIT_COLUNA12 = " Corte"
        TIT_COLUNA1      = "+"
        ;---- Coluna 2 ----------------------------------------
        NOM_TIT_COLUNA21 = ""
        NOM_TIT_COLUNA22 = " Corte"
        TIT_COLUNA2      = "+"
EndIf
Do_It!
ClearAll

LimpaRodape(0)
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina retorna campos do tamnaho no codigo do item                          *
;*******************************************************************************
Proc PegaCampoTamanho()
Private ii,s,v

for ii from 1 to 12
  Switch
    Case ii=1 : s=[Codigo Item1 ]                 
    Case ii=2 : s=[Codigo Item2 ]                 
    Case ii=3 : s=[Codigo Item3 ]                 
    Case ii=4 : s=[Codigo Item4 ]                 
    Case ii=5 : s=[Codigo Item5 ]                 
    Case ii=6 : s=[Codigo Item6 ]                 
    Case ii=7 : s=[Codigo Item7 ]                 
    Case ii=8 : s=[Codigo Item8 ]                 
    Case ii=9 : s=[Codigo Item9 ]                 
    Case ii=10: s=[Codigo Item10]                 
    Case ii=11: s=[Codigo Item11]                 
    Case ii=12: s=[Codigo Item12]                 
  EndSwitch
  
  s=ltrim(rtrim(s))
  if s<>""
     then quitloop
  endif   
endfor

switch
  case len(s)=1 : v=substr([Codigo do item],10,1)
  case len(s)=2 : v=substr([Codigo do item],09,2)
  otherwise     : v="00"
endswitch

Return v
Endproc

;*******************************************************************************
;* 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 ]
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=""
If Disparo="OPEN"  
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
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_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_NPPROJECAO"     : Campo="TG_REFERENCIA"
            Case Campo="TG_OPPE"           : Campo="TG_NPPROJECAO"
            Case Campo="TG_DTINI"          : Campo="TG_OPPE"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="TG_OPCOES2"        : Campo="TG_DTFIM"
            Case Campo="TG_OPOF"           : Campo="TG_OPCOES2"
            Case Campo="TG_OPANALISE"      : Campo="TG_OPPE"
            Case Campo="TG_ZERADO"         : Campo="TG_OPANALISE"
            Case Campo="TG_CODMODELO"      : Campo="TG_ZERADO"                   
            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 DATAINI = 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<DATAINI)
                            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 DATAFIM = 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_NPPROJECAO"
                    Case Campo="TG_NPPROJECAO"  : Campo = "TG_OPPE"
                         VSDGNPPROJECAO=ControlValue("TG_NPPROJECAO")
                    
                    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_DTINI"

                           Case VSDGOPPE="R"    : VSDGNOMOPPE  ="RELACAO DOS PEDIDOS"

                                                  VSDGDTINI    =BlankDate()
                                                  VSDGDTFIM    =BlankDate() 
                                                  VSDGOPCAO2[1]= False
                                                  
                                                  CheckTG_OPOF[1]=False

                                                  Campo="TG_OPANALISE"
                         EndSwitch                       
                    Case Campo="TG_DTINI"       : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"       : Campo="TG_OPCOES2"
                    Case Campo="TG_OPCOES2"     : Campo="TG_OPOF"           
                    Case Campo="TG_OPOF"        : Campo="TG_OPANALISE"
                    Case Campo="TG_OPANALISE"   : Campo="TG_ZERADO"
                         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_ZERADO"         : Campo="TG_CODMODELO" 
                    Case Campo="TG_CODMODELO"      : 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_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_NPPROJECAO":
       MSG_CAMPO="Informe o total da cole‡Æo, caso queira simular uma proje‡Æo de vendas!"
  Case Campo="TG_OPPE":
       MSG_CAMPO="Op‡Æo: D=Data de Entrega  R=Rela‡Æo de Pedidos"
  Case Campo="TG_OPCOES2":
       MensagemCheckBoxes()   
                
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

TG_CODMODELO_COMCASASDECIMAIS=true

VSDGCODMODELO     = ""
VSDGMODELO        = ""

ConfigOpcoes("ModeloRelatorio/CasasDecimais","Ler","PO_3001")  

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("01  Posi‡„o do Estoque Grade/Marca/Grupo - Paisagem/ 6 Linhas/Polegadas")
ModeloRelatoriosAdd("01A Posi‡„o do Estoque Grade/Marca/Grupo - Paisagem/11 Linhas/Polegadas")
ModeloRelatoriosAdd("01B Posi‡„o do Estoque Grade/Marca/Grupo - Paisagem/15 Linhas/Polegadas")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("02  Posi‡„o do Estoque Grade/Marca/Grupo - Paisagem II")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("03  Posi‡„o do Estoque Grade/Marca/Grupo - Retrato /Op‡Æo An lise=1")
ModeloRelatoriosAdd("03C Posi‡„o do Estoque Grade/Marca/Grupo + Consignado")
ModeloRelatoriosAdd("Fim")

EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* Copia DynArray p/ Array                                                     *
;*******************************************************************************
Proc Transfere_DynArray_Array(NomeArray)
Private NomeArray

Release Vars TIPDEST
If DynArraySize(NomeArray)=0
   Then Array TIPDEST[1]
        TIPDEST[1]=""
        Return
EndIf        

Contador = 0
Array TIPDEST[DynArraySize(NomeArray)]
Array Ordem[8]

For ii From 1 To DynArraySize(NomeArray)
  If NomeArray[ii]="" Then Loop EndIf
  NUM_SEQ = NumVal(SubStr(NomeArray[ii],1,3))
  ALINHOU = True
  For ui From 1 To DynArraySize(NomeArray)
    If NUM_SEQ > NumVal(SubStr(NomeArray[ui],1,3))
       Then ALINHOU=False 
    EndIf   
  Endfor
  If ALINHOU
     Then Contador = Contador + 1
          TIPDEST[Contador] = SubStr(NomeArray[ii],5,Len(NomeArray[ii]))
          Ordem[Contador] = TIPDEST[Contador] 
          NomeArray[ii] = ""
          ii=0
  EndIf
EndFor

EndProc ;Transfere_DynArray_Array()

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Proc"

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="0000" EndIf

LimpAguarde()
ClearAll

VSDGEMPRESA     = ""
VSDGTIPOEST     = "P" VSDGDESCTIPOEST = "PRODUTO ACABADO" ; valor obrigat¢rio e padrÆo para este script
VSDGMESANO      = ""
VSDGDTREF       = BlankDate()
DATAINI         = BlankDate()
DATAFIM         = BlankDate()
VSDGDTINI       = BlankDate()
VSDGDTFIM       = BlankDate()
VSDGFAMI        = ""
VSDGMARCA       = ""
VSDGGRP         = ""
VSDGREFERENCIA  = ""
VSDGMESANO   = AlinhM(StrVal(Month(Today())),2)+"."+AlinhM(StrVal(Year(Today())),4)
VSDGSDESTQ      = ""
VSDGDESCSDESTQ  = ""
VSDGOPANALISE    = ""
VSDGNOMOPANALISE = ""
VSDGOPPE         = "" 
VSDGNOMOPPE      = ""

Array VSDGOPCAO2[1]
VSDGOPCAO2[1]    = False

Array CheckTG_OPOF[1]        CheckTG_OPOF[1]       =False ; False=+OF, True=-OF

ModeloRelatoriosCarregaLista()

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
    @ 01,07 Height 22 Width 80

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

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

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

    Label  @ 04,00 "Op‡„o do Estoque" For "TG_SDESTQ"
    Accept @ 05,04 Width 04 "A1"  Picture "T,I,D" Tag "TG_SDESTQ" To VSDGSDESTQ
    Accept @ 05,09 Width 25 "A25"  Picture "!*!" Tag "TG_DESCSDESTQ" To VSDGDESCSDESTQ

    Label  @ 06,00 "Familia"  For "TG_FAMI"
    Accept @ 07,02 Width 06 "A3"  Picture "#*#" Tag "TG_FAMI" To VSDGFAMI
    Accept @ 07,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 08,00 "Grupo"  For "TG_GRP"
    Accept @ 09,02 Width 06 "A3"  Picture "#*#" Tag "TG_GRP" To VSDGGRP
    Accept @ 09,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 10,00 "Marca"  For "TG_MARCA"
    Accept @ 11,02 Width 06 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 11,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 12,00 "Referˆncia"  For "TG_REFERENCIA"
    Accept @ 13,01 Width 33 "A20" Picture "!*!" Tag "TG_REFERENCIA"     To VSDGREFERENCIA

    Label  @ 14,00 "Proje‡Æo N.Pe‡as (Simular)"  For "TG_NPPROJECAO"
    Accept @ 15,01 Width 13 "N" Picture "#*#" Tag "TG_NPPROJECAO"     To VSDGNPPROJECAO

    Label  @ 00,35 "Op‡äes de Pedido"  For "TG_OPPE"
    Accept @ 01,39 Width 04 "A1" Picture "D,R" Tag "TG_OPPE" To VSDGOPPE
    Accept @ 01,44 Width 25 "A25" Picture "!*!" Tag "TG_OPPE" To VSDGNOMOPPE

    Label  @ 02,35 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 03,38 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 03,51 "at‚" For "TG_DTFIM"
    Accept @ 03,56 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    CheckBoxes @ 04,35 Height 3 Width 26 Tag "TG_OPCOES2" "Incluir Suspensos" to VSDGOPCAO2[1]
    CheckBoxes @ 05,35 Height 1 Width 33 Tag "TG_OPOF"  "Ignorar OFïs nÆo emitidas"  to CheckTG_OPOF[1]

    Label  @ 08,35 "Op‡„o de An lise" For "TG_OPANALISE"
    Accept @ 09,39 Width 04 "A1"  Picture "1,2,3" Tag "TG_OPANALISE" To VSDGOPANALISE
    Accept @ 09,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPANALISE" To VSDGNOMOPANALISE
    
    Label  @ 10,35 "Op‡„o do Estoque" For "TG_ZERADO"
    Accept @ 11,39 Width 04 "A1"  Picture "0,1,2,3" Tag "TG_ZERADO" To VSDGZERADO
    Accept @ 11,44 Width 25 "A25"  Picture "!*!" Tag "TG_DESCZERADO" To VSDGDESCZERADO
    
    Label  @ 17,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 18,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 18,06  Width 47 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO        

    Pushbutton @ 18,54 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 18,66 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog

  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf
  if not ValidarModelosRelatorios() then loop endif

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

  if VSDGCODMODELO="03" and VSDGOPANALISE<>"1" 
     Then Mensagem("Modelo de relat¢rio escolhido s¢ para Op‡Æo de An lise=1, Verificar!")
          Loop
  EndIf
  
  If VSDGOPPE="R" 
     Then 
          CheckTG_OPOF[1]=False     
          VSDGOPCAO2[1] = False
          VSDGDTINI     = BlankDate()
          VSDGDTFIM     = BlankDate()
  EndIf 

  If IsBlank(VSDGDTREF)    Or
     (DATAFIM<DATAINI)
     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((DATAINI-30),(DATAFIM+30))
  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
  EndIf

;-------------------------------------------------------------------------------

  AGUARDE("Aguarde, processando dados")

  ;*** Atribuindo Valores e Colocando na ordem de um array dinƒmico ************
  DynArray TIPDEST[]
  CONT = 0
  View "\\Sistemas\\Faccao\\P_DESTI"
  
  Scan for [Codigo da Empresa]=VSDGEMPRESA
    If [Destino]="OUTROS" Then Loop EndIf
    If [utiliza Relatorio]<>""
       Then CONT = CONT + 1
            TIPDEST[CONT] = AlinhM([Utiliza Relatorio],3)+" "+[Destino]
    EndIf
  EndScan
   
  ;*** Atribuindo Valores e Colocando na ordem de um array dinƒmico ************
  DynArray TIPDEST_OUTROS[]
  CONT = 0
  View "\\Sistemas\\Faccao\\P_DESTI"
  Scan for [Codigo da Empresa]=VSDGEMPRESA
    If [Destino]="OUTROS" Or [Utiliza Relatorio]="" Or [Utiliza Relatorio]="X" 
       Then CONT = CONT + 1
            TIPDEST_OUTROS[CONT] = [Destino]
    EndIf
  EndScan
  
  ;---- Ordenando Colunas ------------------------------------------------------
  Transfere_DynArray_Array(TIPDEST)
  
  TIT_CAMPO1 = " "
  TIT_CAMPO2 = " "
  TIT_CAMPO3 = " "
  TIT_CAMPO4 = " "
  TIT_CAMPO5 = " "
  TIT_CAMPO6 = " "
  TIT_CAMPO7 = " "
  TIT_CAMPO8 = " "
  TIT_OUTROS = " "  
  CONT = 0
  For wcc From 1 To ArraySize(TIPDEST)
    Home
    Moveto [Codigo da Empresa]
    Locate VSDGEMPRESA,TIPDEST[wcc]
    If RetVal
       Then CONT = CONT + 1
            If Len([Titulo Relatorio])>9
               Then TITA=SubStr([Titulo Relatorio],1,6)
                    TITB=SubStr([Titulo Relatorio],7,6)
               Else TITA=""
                    TITB=SubStr([Titulo Relatorio],1,6)
            EndIf         
            Switch
              Case wcc = 1 : NOM_TIT_CP11=TITA
                             NOM_TIT_CP12=TITB
                             TIT_CAMPO1="+"
              Case wcc = 2 : NOM_TIT_CP21=TITA
                             NOM_TIT_CP22=TITB
                             TIT_CAMPO2="+"
              Case wcc = 3 : NOM_TIT_CP31=TITA
                             NOM_TIT_CP32=TITB     
                             TIT_CAMPO3="+"       
              Case wcc = 4 : NOM_TIT_CP41=TITA
                             NOM_TIT_CP42=TITB
                             TIT_CAMPO4="+"
              Case wcc = 5 : NOM_TIT_CP51=TITA
                             NOM_TIT_CP52=TITB
                             TIT_CAMPO5="+"
              Case wcc = 6 : NOM_TIT_CP61=TITA
                             NOM_TIT_CP62=TITB
                             TIT_CAMPO6="+"
              Case wcc = 7 : NOM_TIT_CP71=TITA
                             NOM_TIT_CP72=TITB
                             TIT_CAMPO7="+"
              Case wcc = 8 : NOM_TIT_CP81=TITA
                             NOM_TIT_CP82=TITB
                             TIT_CAMPO8="+"
            EndSwitch            
    EndIf        
  EndFor        

  TabelaP=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Faccao\\Rm_3001"  TabelaP
  Empty TabelaP
  
  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    Seleciona_Itens()
  EndWhile
  
  ;---- Processo adptado no NotaC o qual foi alterado para outra proc p/ utiliza‡Æo de REGRA
  Identifica_MesAno_Periodo(DATAINI,DATAFIM)
  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(DATAINI,DATAFIM)
  While Novo_Dir_Trab()
    Seleciona_Estoque()
    Seleciona_Corte()
    Seleciona_IE()
  EndWhile

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

  if sys_Codigo_Cliente="0391" ; KBS
     then Play "Rm_3001C"
  endif   

  Ajusta_Dados()

  If IsEmpty(TabelaP)
     Then MENSAGEM("N„o Existem Registros a Processar")
          Delete TabelaP
          Loop
  EndIf
  
  If vsdgnpprojecao>0
     Then tit_titprojecao="** SIMULADO PROJECAO DE VENDAS DE "+Ltrim(Format("W12,EIC",VSDGNPPROJECAO))+" PECAS **"
     Else tit_titprojecao=""
  EndIf
  
  Tabela_Temp=Cria_Temp(PrivDir())
  Copy "\\base\\Sistemas\\Faccao\\Rm_3001" Tabela_Temp

  Switch
    Case VSDGCODMODELO="01":
         If VSDGOPANALISE="1"                                     
            Then CopyReport Tabela_Temp "10" TabelaP "R"
            Else CopyReport Tabela_Temp "11" TabelaP "R"
         EndIf

         Impressao_Orientacao="Paisagem"
         Seta_Altura_Report(TabelaP,"R",48)
         Sys_Set_Impressora  =CI_F_TIMES+CI_20CPP+CI_6LPP        

    Case VSDGCODMODELO="01A":
         If VSDGOPANALISE="1"                                     
            Then CopyReport Tabela_Temp "10" TabelaP "R"
            Else CopyReport Tabela_Temp "11" TabelaP "R"
         EndIf

         Impressao_Orientacao="Paisagem"
         Seta_Altura_Report(TabelaP,"R",82)
         Sys_Set_Impressora  =CI_F_TIMES+CI_20CPP+chr(27)+"1"

    Case VSDGCODMODELO="01B": 
         If VSDGOPANALISE="1"        
            Then CopyReport Tabela_Temp "10" TabelaP "R"
            Else CopyReport Tabela_Temp "11" TabelaP "R"
         EndIf      

         Impressao_Orientacao="Paisagem"
         Seta_Altura_Report(TabelaP,"R",110)
         Sys_Set_Impressora  =CI_F_TIMES+CI_20CPP+chr(27)+"3"
         
    Case VSDGCODMODELO="02":
         If VSDGOPANALISE="1"                                     
            Then CopyReport Tabela_Temp "6"  TabelaP "R"
            Else CopyReport Tabela_Temp "7"  TabelaP "R"
         EndIf

         Impressao_Orientacao="Paisagem"
         Seta_Altura_Report(TabelaP,"R",47)
         Sys_Set_Impressora  =CI_F_TIMES+CI_20CPP+CI_6LPP        

    Case VSDGCODMODELO="03": 
         CopyReport Tabela_Temp "12" TabelaP "R"

         Impressao_Orientacao="Paisagem"
          
    Case VSDGCODMODELO="03C": 
         If VSDGOPANALISE="1"        
            Then CopyReport Tabela_Temp "13" TabelaP "R"
            Else CopyReport Tabela_Temp "14" TabelaP "R"
         EndIf      

         Impressao_Orientacao="Paisagem"
          
  EndSwitch
  
  IMPRIREL(TabelaP,"R")

  Delete Tabela_Temp
  Delete TabelaP

  ConfigOpcoes("ModeloRelatorio/CasasDecimais","Gravar","PO_3001")  
EndWhile
ClearAll
Release Vars All
Release Procs All
