;** AC_S_RQ ********************************************************************
;* Programa de Acerto p/ refazer todas as tabelas da Requisi‡Æo                *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 24/07/2020 por Bruno Carvalho
;Ultima Alteracao:   /  /     por                          
;Motivo Alteracao:

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

ConfGeral("Rotina p/ refazer as tabelas da RQ, continuar com esse processo?")
If Ok<>"S"
   Then Return
EndIf

Array Tabela_Requisicao[5]
Tabela_Requisicao[1]= "RqCabeca"
Tabela_Requisicao[2]= "RqItem"
Tabela_Requisicao[3]= "RqItemg"
Tabela_Requisicao[4]= "RqMatPri"
Tabela_Requisicao[5]= "Rqtrf"

SetDir "\\Sistemas\\Estoque"
ConfGeral("Deseja efetuar o backup dos arquivos da REQUISICAO envolvidos?")

If Ok="S"
   Then For i From 1 To ArraySize(Tabela_Requisicao)
          Switch
            Case Tabela_Requisicao[i]= "RqCabeca" : TAB_REN = "BK_RQCAB"
            Case Tabela_Requisicao[i]= "RqItem"   : TAB_REN = "BK_RQITE"
            Case Tabela_Requisicao[i]= "RqItemg"  : TAB_REN = "BK_RQITG"
            Case Tabela_Requisicao[i]= "RqMatPri" : TAB_REN = "BK_RQMAT" 
            Case Tabela_Requisicao[i]= "Rqtrf"    : TAB_REN = "BK_RQTRF"
          EndSwitch 
          Aguarde("Realizando o Backup "+Tabela_Requisicao[i])
          Copy Tabela_Requisicao[i] TAB_REN
        EndFor      
EndIf

For i From 1 To ArraySize(Tabela_Requisicao)
  If Tabela_Requisicao[i]="RqCabeca" Or
     Tabela_Requisicao[i]="RqItem"   Or
     Tabela_Requisicao[i]="RqItemg"  Or
     Tabela_Requisicao[i]="RqMatPri" Or
     Tabela_Requisicao[i]="Rqtrf" 
     Then ;Debug 
  EndIf
  If Istable(Tabela_Requisicao[i])
     Then Aguarde("Refazendo a Tabela "+Tabela_Requisicao[i])
          ;CONTADOR = 0
          ;Coedit Tabela_Requisicao[i]
          ;While True
          ;  If [Numero da Of]=""
          ;     Then Del
          ;          Home
          ;  EndIf
          ;  Skip
          ;  If Eot() Then QuitLoop EndIf
          ;EndWhile
          ;Do_it!
          ;ClearAll
          ;Rename Tabela_Requisicao[i] "Answer"
          
          {Ask} TypeIn Tabela_Requisicao[i] Enter Check
          Moveto [Numero do Lancamento] TypeIn "Not Blank"
          Do_It!
          ClearAll
           
          Switch
            Case Tabela_Requisicao[i]= "RqCabeca" : TAB_REN = "BK_RQCAB"
            Case Tabela_Requisicao[i]= "RqItem"   : TAB_REN = "BK_RQITE"
            Case Tabela_Requisicao[i]= "RqItemg"  : TAB_REN = "BK_RQITG"
            Case Tabela_Requisicao[i]= "RqMatPri" : TAB_REN = "BK_RQMAT" 
            Case Tabela_Requisicao[i]= "Rqtrf"    : TAB_REN = "BK_RQTRF"
          EndSwitch
          Rename "Answer" TAB_REN
          
          If IsEmpty(TAB_REN)
             Then Copy "\\Base\\Sistemas\\Estoque\\"+Tabela_Requisicao[i] Tabela_Requisicao[i]
                  Delete TAB_REN
                  If Tabela_Requisicao[i]<> "RqCabeca" And
                     Tabela_Requisicao[i]<> "RqItem"   And
                     Tabela_Requisicao[i]<> "RqItemg"  And
                     Tabela_Requisicao[i]<> "RqMatPri" And
                     Tabela_Requisicao[i]<> "Rqtrf" 
                     Then If Istable(TAB_REN)
                             Then Delete TAB_REN
                          EndIf    
                  EndIf
                  Loop
          EndIf   
          
          Tabela=Cria_Temp(PrivDir())
          Create Tabela Like "\\Base\\Sistemas\\Estoque\\"+Tabela_Requisicao[i]
          
          CONTADOR = 0
          View Tabela
          CoEdit TAB_REN
          Scan
            Barra(NRecords(TAB_REN), RecNo())
            Aguarde("Refazendo a Tabela "+Tabela_Requisicao[i]+" "+BARRA_STRING)
            
            CopyToArray REG_RQ
            CONTADOR = CONTADOR + 1
            Moveto Tabela
            If CONTADOR=1
               Then End
               Else End Down
            EndIf
            CopyFromArray REG_RQ
            UnLockRecord   
            
            Moveto TAB_REN
          EndScan
          Do_it!
          ClearAll
          
          ;---- Excluindo a Tabela de Origem p/ ser realizado o processo -------
          Delete Tabela_Requisicao[i]
          
          ;---- Copiando a Familia da Tabela do Base p/ a Answer e renomeando p/ Nome Original
          If Tabela_Requisicao[i]="RqCabeca" Or
             Tabela_Requisicao[i]="RqItem"   Or
             Tabela_Requisicao[i]="RqItemg"  Or
             Tabela_Requisicao[i]="RqMatPri" Or
             Tabela_Requisicao[i]="Rqtrf" 
             Then ;Debug 
          EndIf
          Copy Tabela "\\Sistemas\\Estoque\\"+Tabela_Requisicao[i]
          {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\"+Tabela_Requisicao[i] Enter TypeIn Tabela_Requisicao[i] Enter {Replace}
          
          ;--- Add = Problema com muitos Registros -----------------------------
          ;Add Tabela Tabela_Requisicao[i]          
          
          Delete TAB_REN
          Delete Tabela
          
          ;---- Excluindo Bk's desnecess rios ----------------------------------
          If Tabela_Requisicao[i]<> "RqCabeca" And
             Tabela_Requisicao[i]<> "RqItem"   And
             Tabela_Requisicao[i]<> "RqItemg"  And
             Tabela_Requisicao[i]<> "RqMatPri" And
             Tabela_Requisicao[i]<> "Rqtrf" 
             Then If Istable(TAB_REN)
                     Then Delete TAB_REN
                  EndIf    
          EndIf
     Else Mensagem("Tabela n„o encontrado no Estoque: "+Tabela_Requisicao[i])
  EndIf   
EndFor 
SetDir "\\Sistemas\\Cadastro"

Mensagem("Processo Conclu¡do//Todas as tabelas da Requisi‡Æo foram refeitas!")

Release Vars All
Release Procs All