;** AC_DTCAD *******************************************************************
;*  Acerto da Data de Cadastro do Item                                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 07/11/2019 por Bruno Carvalho            
;Ultima Alteracao:   /  /     por                          
;Motivo Alteracao:     

;*******************************************************************************
;* Rotina para processar registros                                             *
;*******************************************************************************
Proc Processa_Correcao_DataCadastro()
Private DATA_CADASTRO,REG_REQ,REG_NOTAE,TabelaReq,TabelaNotaE,VSDGDTINI,VSDGDTFIM

SetDir "\\Sistemas\\Estoque"    

VSDGDTINI = Today()-365 
VSDGDTFIM = Today()

;---- Nota de Entrada: COMPRA --------------------------------------------------
{Ask} {NotaEc}
Moveto [Numero do Lancamento] Check TypeIn "_NLanc"
Moveto [Tipo de Operacao    ]       TypeIn "C"
Moveto [Data de Entrada     ] Check TypeIn ">=~VSDGDTINI ,<=~VSDGDTFIM"
{Ask} {NotaEi}
Moveto [Numero do Lancamento]       TypeIn "_NLanc"
Moveto [Codigo do Item      ] Check
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Data de Entrada    ]       TypeIn "Calc Min as Data de Entrada"
Moveto [Codigo do Item     ] Check
Do_It!
ClearAll

TabelaNotaE=Adiciona_Indice_Temp("Codigo do Item")

;---- Requisi‡Æo: ENTRADA DE PRODUCAO ------------------------------------------
{Ask} {RqCabeca}
Moveto [Numero do Lancamento] Check TypeIn "_NLanc"
Moveto [Data de Ocorrencia  ] Check TypeIn ">=~VSDGDTINI ,<=~VSDGDTFIM"
Moveto [Tipo de Movimento   ]       TypeIn "E"
Moveto [Tipo de Operacao    ]       TypeIn "P"
{Ask} {RqItem}
Moveto [Numero do Lancamento]       TypeIn "_NLanc"
Moveto [Codigo do Item      ] Check
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Data de Ocorrencia ]       TypeIn "Calc Min as Data de Ocorrencia"
Moveto [Codigo do Item     ] Check
Do_It!
ClearAll

TabelaReq=Adiciona_Indice_Temp("Codigo do Item")

Copy TabelaNotaE "TMP_NE"
Copy TabelaReq   "TMP_REQ"  

Delete TabelaNotaE                                      
Delete TabelaReq

Coedit "Itens"
Scan For IsBlank([Data_Cadastro])
  Barra(NRecords("Itens"), RecNo())
  Aguarde("Aguarde, ajustando a data do item "+[Codigo do Item]+" "+BARRA_STRING)
  
  DATA_CADASTRO = [Data da Manutencao] 
  
  ;Verifica nas Notas de Entrada
  GetRecord "TMP_NE" [Codigo do Item] To REG_NOTAE
  If RetVal
     Then If REG_NOTAE["Data de Entrada"]<DATA_CADASTRO
             Then DATA_CADASTRO = REG_NOTAE["Data de Entrada"]
          EndIf
  EnDIf   
  
  ;Verifica nas Requisi‡äes
  GetRecord "TMP_REQ" [Codigo do Item] To REG_REQ
  If RetVal
     Then If REG_REQ["Data de Ocorrencia"]<DATA_CADASTRO
             Then DATA_CADASTRO = REG_REQ["Data de Ocorrencia"]
          EndIf
  EnDIf
  [Data_Cadastro] = DATA_CADASTRO
EndScan
Do_It!
ClearAll

Delete "TMP_NE"
Delete "TMP_REQ"

EndProc ;Processa_Correcao_DataCadastro()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Vendas\\Bib_Bal,\\Sistemas\\Vendas\\Bib_Vend"
SYS_VALOR()

If SysMode()="Main" 
   Then ConfGeral("Deseja ajustar a data do cadastro dos itens?")
        If Ok<>"S"
           Then Return
        EndIf   
EndIf

Processa_Correcao_DataCadastro()
Mensagem("Processo Conclu¡do!")

Release Vars DATA_CADASTRO,REG_REQ,REG_NOTAE,TabelaReq,TabelaNotaE,VSDGDTINI,VSDGDTFIM
Release Procs Processa_Correcao_DataCadastro