;** RestOFSP *******************************************************************
;*  Restaura‡Æo de OFïs em Pedidos sem Pedidos e Sequencial                    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 31/08/2016 por Anivel Augusto Rodrigues
;Ultima Alteracao: 19/10/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado "Iten_Tec"
;Ultima Alteracao: 06/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Excluir_Pedidos(), nÆo incluir pedido j  existente
;Ultima Alteracao: 08/08/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Gera_Log()
;Ultima Alteracao: 14/03/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado "Iten_eco"
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx() 
;Ultima Alteracao: 13/06/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes AdicionarTabelasItens()
;Ultima Alteracao: 16/03/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes Numero_Lancamento("Interno","Locked_Down")
;Ultima Alteracao: 19/03/2019 por Bruno Carvalho 
;Motivo Alteracao: Adicionado "bar_inat"
;Ultima Alteracao: 09/10/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes p/ verificar a unidade de origem -> Verifica_Arquivo() e add vari vel de travamento PARAM_TRAVA_UNIDADE
;Ultima Alteracao: 12/12/2020 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes nÆo travar unidade #0227
;Ultima Alteracao: 05/02/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes para quando ‚ exibido a mensagem "Opera‡„o Cancelada !"
;Ultima Alteracao: 09/02/2021 por Bruno Carvalho
;Motivo Alteracao: Ajustes no pre‡o do item quando item ‚ KIT na proc Pedidos() p/ #0232#
;Ultima Alteracao: 07/04/2021 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes showdialog com anota‡äes do processo de importa‡Æo

;*******************************************************************************
;* Rotina Excluir Pedidos Existentes                                           *
;*******************************************************************************
Proc Excluir_Pedidos()
private Tabela, regfaturac, npedido

If Not IsTable(VSDGDRIVE+"\\FaturaC")
   Then Mensagem("Na Unidade "+VSDGDRIVE+" n„o contem Ordem de Faturamento !")
        Return
EndIf

ClearAll

AGUARDE("Aguarde, excluindo Pedidos existentes")

Tabela=VSDGDRIVE+"\\FaturaC"

View "PedidoC"
View "PedidoI"
View "PedidoV"
Coedit Tabela
Scan

  CopyToArray  regfaturac

  moveto "PedidoC"
  moveto [Numero Pedido Origem]
  Locate "OF "+regfaturac["Numero do Pedido"] 
  if RetVal
     then npedido=[Numero do Pedido]
     
          moveto "PedidoI"
          moveto [Numero do Pedido]
          Locate npedido
          if retval
             then while [Numero do Pedido]=npedido
                    del
                    if eot() then quitloop endif
                  endwhile
          endif
     
          moveto "PedidoV"
          moveto [Numero do Pedido]
          Locate npedido
          if retval
             then while [Numero do Pedido]=npedido
                    del
                    if eot() then quitloop endif
                  endwhile
          endif
     
          moveto "PedidoC"
          moveto [Numero do Pedido]
          Locate npedido
          if retval
             then del
          endif
  endif
  
  moveto Tabela

endScan
Do_it!
ClearAll

EndProc

;*******************************************************************************
;* Rotina Importa Clientes                                                     *
;*******************************************************************************
Proc Clientes()
ClearAll

AGUARDE("Aguarde, Restaurando Destinat")
If IsTable(VSDGDRIVE+"\\Destinat")
   Then {Ask} TypeIn VSDGDRIVE+"\\Destinat" Enter Check
        Moveto [Codigo] Example "cod"
        {Ask} TypeIn VSDGDRIVE+"\\FaturaC" Enter
        Moveto [Codigo] Example "cod"
        Do_It!
        ClearAll
        If Not ISEmpty("Answer")
           Then Add "Answer" "\\Sistemas\\Cadastro\\Destinat"
                ClearAll
        EndIf
        If IsTable("keyViol")
           Then Delete("KeyViol")
        EndIf
        IMPCLI=True
EndIf
ClearAll
EndProc

;*******************************************************************************
;* Rotina Importa Itens                                                        *
;*******************************************************************************
Proc Itens()
ClearAll

AGUARDE("Aguarde, Restaurando Itens")
If IsTable(VSDGDRIVE+"\\Itens")
   Then {Ask} TypeIn VSDGDRIVE+"\\Itens" Enter Check
        Moveto [Codigo do Item] Example "ite"
        {Ask} TypeIn VSDGDRIVE+"\\FaturaI" Enter
        Moveto [Codigo do Item] Example "ite"
        Do_It!
        ClearAll
        AdicionarTabelasItens()
        
        IMPITE=True
EndIf
ClearAll
EndProc


;*******************************************************************************
;* Rotina adicionar dados itens e tabelas filhos                               *
;*******************************************************************************
Proc AdicionarTabelasItens()
private TabelaReferenciaItens

TabelaReferenciaItens=Adiciona_Indice_Temp("Codigo do Item")
Add TabelaReferenciaItens "\\Sistemas\\Estoque\\Itens"
ClearAll

;---- Itens Complementos --------------------------
If IsTable(VSDGDRIVE+"\\Iten_com")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn VSDGDRIVE+"\\Iten_com" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_com"
        ClearAll
endif

;---- Informa‡äes de Tecido -----------------------
If IsTable(VSDGDRIVE+"\\Iten_tec")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn VSDGDRIVE+"\\Iten_tec" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_tec"
        ClearAll
EndIf

;---- Informa‡äes de e-Commerce -------------------
If IsTable(VSDGDRIVE+"\\Iten_eco")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn VSDGDRIVE+"\\Iten_eco" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_eco"
        ClearAll
EndIf    

;---- Informa‡äes de C¢digos de Barras ------------
If IsTable(VSDGDRIVE+"\\Iten_bar")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn VSDGDRIVE+"\\Iten_bar" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\Iten_bar"
        ClearAll
EndIf   
 
;---- Informa‡äes de C¢digos de Barras Inativo ----
If IsTable(VSDGDRIVE+"\\bar_inat")
   Then 
        {Ask} typein TabelaReferenciaItens Enter 
        Moveto [Codigo do Item ] Typein "_ci"
        {Ask} TypeIn VSDGDRIVE+"\\bar_inat" Enter Check
        Moveto [Codigo do Item ] Typein "_ci"
        Do_It!
        Add "Answer" "\\Sistemas\\Estoque\\bar_inat"
        ClearAll
EndIf    

Delete TabelaReferenciaItens

EndProc

;*******************************************************************************
;* Rotina Importa Pedidos                                                      *
;*******************************************************************************
Proc Pedidos()

If Not IsTable(VSDGDRIVE+"\\FaturaC") Or
   Not IsTable(VSDGDRIVE+"\\FaturaI") Or
   Not IsTable(VSDGDRIVE+"\\FaturaV")
   Then Mensagem("Na Unidade "+VSDGDRIVE+" n„o contem OFïs !")
        Return False
EndIf
ClearAll

AGUARDE("Aguarde, Restaurando OFïS")

{Ask} TypeIn VSDGDRIVE+"\\FaturaC" Enter Check
Moveto [Codigo da Empresa  ] TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao    ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
Do_It!
ClearAll
If IsEmpty("Answer")
   Then Mensagem("N„o existem OFïs conforme sele‡„o !")
	      Return False 
EndIf	     

View "PedidoC"
View "PedidoI"
View "PedidoV"

View VSDGDRIVE+"\\FaturaI"
View VSDGDRIVE+"\\FaturaV"

Coedit "Answer"
scan

  copytoarray regfaturac

  moveto "PedidoC"
  moveto [Numero Pedido Origem]
  Locate "OF "+regfaturac["Numero do Pedido"] 
  if RetVal
     then moveto "Answer"
          loop
  endif

  moveto "PedidoC"
  moveto [Numero Pedido Origem]
  Locate "OF "+regfaturac["Numero do Pedido"] 
  if RetVal
     then Moveto "Answer"
          Loop
  endif        
     
  moveto "PedidoC"
  While True
    End
    Moveto [Numero do Pedido]
    If Numero_Lancamento("Interno","Locked_Down")
       Then CX_LANC = PROXLANCTO_NLANC
            Release Vars PROXLANCTO_NLANC
            quitloop
    EndIf    
  EndWhile
  
  regfaturac["Numero do Pedido"    ]=CX_LANC
  regfaturac["Numero Pedido Origem"]="OF "+[Answer->Numero do Pedido]
  regfaturac["Situacao do Pedido"  ]="ABERTO"
  copyfromarray regfaturac
  unlockrecord

  moveto VSDGDRIVE+"\\FaturaI"
  moveto [Numero do Pedido]
  locate [Answer->Numero do Pedido]
  if retval
     then while [numero do Pedido]=[Answer->Numero do Pedido]
     
            copytoarray regfaturai
            regfaturai["Numero do Pedido"    ]=CX_LANC
            
            If SYS_CODIGO_CLIENTE="0232" And Search("KIT",regfaturai["Variacoes"])>0 
               Then regfaturai["Preco Unitario"]=regfaturai["Preco Unitario"]/2
                    regfaturai["Preco Total"   ]=Round(regfaturai["Preco Unitario"]*regfaturai["Quantidade"],2) 
            EndIf
            
            moveto "PedidoI"
            end 
            down
            copyfromarray regfaturai            
            unlockrecord
     
            moveto VSDGDRIVE+"\\FaturaI"
            skip
            if eot() then quitloop endif
          endwhile
     
  endif   

  moveto VSDGDRIVE+"\\FaturaV"
  moveto [Numero do Pedido]
  locate [Answer->Numero do Pedido]
  if retval
     then while [numero do Pedido]=[Answer->Numero do Pedido]
     
            copytoarray regfaturav
            regfaturav["Numero do Pedido"    ]=CX_LANC
        
            moveto "Pedidov"
            end                                        
            down
            copyfromarray regfaturav            
            unlockrecord
     
            moveto VSDGDRIVE+"\\FaturaV"
            skip
            if eot() then quitloop endif
          endwhile
     
  endif   

  SaveTables
  moveto "Answer"
endscan
do_it!
clearall

IMPPED=True
Return True
EndProc

;*******************************************************************************
;* Rotina para gerar o log de registro por usu rio                             *
;*******************************************************************************
Proc Gera_Log()          

If VSDGDTINI<>BlankDate()
   Then AUX_DATA = ", periodo de "+StrVal(VSDGDTINI)+" ate "+StrVal(VSDGDTFIM)
   Else AUX_DATA = ", periodo ate "+StrVal(VSDGDTFIM)
EndIf   
          
If VSDGDTREF<>BlankDate()
   Then AUX_DTREF = ", data de transa‡„o em "+StrVal(VSDGDTREF)
   Else AUX_DTREF = ""
EndIf

AUX_OPCAO=""
If CheckTG_OPCAO[1] Then AUX_OPCAO = ", opcao marcada para substituir pedidos" EndIf  

Grava_LogEx("VENDAS RestOFSP")                        

EndProc ;Gera_Log()

;*******************************************************************************
;* Rotina para Verificar o Nome do Arquivo                                     *
;*******************************************************************************          
Proc Verifica_Arquivo()
Private Array_Arquivo,wcs,ELinha,MSG

Aguarde("Aguarde, verificando o arquivo")          
          
DynArray Array_Arquivo[]

Wcs=0
If IsFile(PrivDir()+"Dir.Txt")
   Then Deleta_Arquivo(PrivDir()+"Dir.Txt")
EndIf

Lista_DiretorioF(VSDGDRIVE+"\\","PT*.ARJ")

If Not IsFile(PrivDir()+"Dir.Txt")
   Then Sleep(1000)
        Return False
   Else Editor Open PrivDir()+"Dir.Txt"
        If ErrorCode()=27
           Then Sleep 1000
                Return False
        EndIf
        wcs=0
        While True
          Extrair_Linha()
          If IsBlank(ELinha) Then QuitLoop EndIf
          wcs=wcs+1
          Array_Arquivo[wcs] = Completa(SubStr(ELINHA,1,Len(ELINHA)-1),40," ")+" "
        EndWhile
        CancelEdit
EndIf     

ARQ_ARJ = ""
If DynArraySize(Array_Arquivo)=0
   Then Mensagem("Arquivo de importa‡Æo nÆo foi localizado!") 
        Return False
   Else MSG = ""
        For wi From 1 To DynArraySize(Array_Arquivo)
          If Upper(SubStr(Array_Arquivo[wi],1,2))="PT"   And
             Upper(SubStr(Array_Arquivo[wi],5,2))="OF"   And
             Upper(SubStr(Array_Arquivo[wi],8,4))=CODEMP And
             Upper(SubStr(Array_Arquivo[wi],13,4))=AlinhM(StrVal(Year(VSDGDTREF)),4)  And
             Upper(SubStr(Array_Arquivo[wi],17,2))=AlinhM(StrVal(Month(VSDGDTREF)),2) And
             Upper(SubStr(Array_Arquivo[wi],19,2))=AlinhM(StrVal(Day(VSDGDTREF)),2)
             Then ARQ_ARJ = Array_Arquivo[wi]
                  If PARAM_TRAVA_UNIDADE
                     Then If Upper(SubStr(Array_Arquivo[wi],4,1)) = SubStr(Upper(Directory()),1,1)
                             Then MSG = "NÆo ‚ poss¡vel importar o arquivo na unidade de origem!"
                             Else MSG = ""           
                          EndIf
                     Else QuitLoop     
                  EndIf
          EndIf
        EndFor
        If MSG<>""
           Then Mensagem(MSG)
                Return False
        EndIf   
        Release Vars Array_Arquivo,MSG
        If ARQ_ARJ=""
           Then Mensagem("Arquivo de importa‡Æo nÆo foi localizado!")
                Return False
        EndIf
EndIf

Return True                  
                  
EndProc ;Verifica_Arquivo()      


;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =   9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case (Evento["KeyCode"] <= -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"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_DTINI"         : Campo="TG_EMPRESA"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_DTREF"         : Campo="TG_DTFIM"
            Case Campo="TG_DRIVES"        : Campo="TG_DTREF"
            Case Campo="TG_OPCAO1"        : Campo="TG_DRIVES"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA" : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"   : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"   : Campo="TG_DTREF"
                    Case Campo="TG_DTREF"   : Campo="TG_DRIVES"
                    Case Campo="TG_DRIVES"  : Campo="TG_OPCAO1"
                         VSDGDRIVE=ControlValue("TG_DRIVES")
                    Case Campo="TG_OPCAO1"  : Campo="YES"
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Switch
  Case Campo="TG_OPCAO1" or Campo="TG_OPCAO2":
     MSG_CAMPO="Defina a op‡„o"
     TECLA="Barra de Espa‡o=Marca/Desmarca  "   
  Case Campo="TG_OPCAO1" or Campo="TG_OPCAO2":
     MensagemCheckBoxes()   
EndSwitch

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc


Proc Deleta_Arquivos()

  Deleta_Arquivo(VSDGDRIVE+"\\Fatura*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Fatura*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Fatura*.PX")

  Deleta_Arquivo(VSDGDRIVE+"\\Destinat*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Destinat*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Destinat*.PX")

  Deleta_Arquivo(VSDGDRIVE+"\\Itens*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Itens*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Itens*.PX")

  Deleta_Arquivo(VSDGDRIVE+"\\Iten_*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Iten_*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Iten_*.PX")

	Sleep 2000
EndProc


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

LimpAguarde()
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=""    EndIf

PARAM_TRAVA_UNIDADE = True
If SYS_CODIGO_CLIENTE = "0227"   
   Then PARAM_TRAVA_UNIDADE = False
   Else PARAM_TRAVA_UNIDADE = True
EndIf

VSDGEMPRESA = ""
VSDGDTINI   = BlankDate()
VSDGDTFIM   = Today()
VSDGDTREF   = BlankDate()

DynArray Array_Drives[]
SysInfo Drives To Array_Drives
VSDGDRIVE="C:"
                      
Array TG_OPCAO[1]
TG_OPCAO[1]="Substituir pedidos das OFïs j  existentes"

Array CheckTG_OPCAO[ArraySize(TG_OPCAO)]
CheckTG_OPCAO[1]=False

While True
  ShowDialog "Importa‡„o de OF/Pedidos II" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 19 Width 72

    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_NOMEMP"  To VSDGNOMEMP

    Label  @ 02,00 "Per¡odo EmissÆo de" For "TG_DTINI"
    Accept @ 03,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 03,16 "at‚" For "TG_DTFIM"
    Accept @ 03,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 04,00 "Data Transa‡„o" For "TG_DTREF"
    Accept @ 05,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREF" To VSDGDTREF

    CheckBoxes @ 07,00 Height 1 Width 50 Tag "TG_OPCAO1"
    TG_OPCAO[1] to CheckTG_OPCAO[1]


    Label  @ 00,35 "Drives:" For "TG_DRIVES"
    PickDynArrayIndex @ 01,36 Height 4 width 33
     Columns 7
      Array_Drives
       Tag "TG_DRIVES"
        To VSDGDRIVE

    @ 09,01 ?? "Dados relacionados as OFïs"
    @ 10,01 ?? "- Importa Clientes"
    @ 11,01 ?? "- Importa Itens com os mesmos c¢digos/dados"
    @ 12,01 ?? "- Gera Pedidos com numera‡Æo em ordem sequencial"

    Pushbutton @ 15,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 15,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  IMPCLI=False
  IMPITE=False
  IMPPED=False
  
  Deleta_Arquivos()
  Gera_Log()
  
  If VSDGEMPRESA="" 
    Then CODEMP="0000" 
    Else CODEMP=VSDGEMPRESA
  EndIf

  If Not Verifica_Arquivo()
     Then Loop 
  EndIf  

	Aguarde("Aguarde, Descompactando arquivos de "+VSDGDRIVE+"\\"+ARQ_ARJ)
  Executa_Programa("c:\\vise\\Varj.exe e -y "+VSDGDRIVE+"\\"+ARQ_ARJ+" "+VSDGDRIVE+"\\")
  Sleep 3000

  If CheckTG_OPCAO[1]
     Then Excluir_Pedidos()
  EndIf

  Clientes()
  Itens()
  Pedidos()

  Sleep(1000)
	Deleta_Arquivos()
  Limpaguarde()

  If Not IMPCLI And Not IMPITE And Not IMPPED
     Then MENSAGEM("Opera‡„o Cancelada !")
     Else ARQ_IMP=VSDGDRIVE+"\\IMPORTADO_"+
                  Substr(ARQ_ARJ,1,20)+"_"+
                  Substr(Time(),1,2)  +
                  Substr(Time(),4,2)  +
                  Substr(Time(),7,2)  +
                  ".ARJ"
  
          ExecVise("REN "+VSDGDRIVE+"\\"+ARQ_ARJ+" \""+ARQ_IMP+"\"")
          Sleep 1000
          
          MENSAGEM("Opera‡„o Finalizada !")
  EndIf        
EndWhile
ClearAll
Release Vars All
Release Procs All