;** IMP_ERRO *******************************************************************
;*  Importa Dados Corrigidos atrav‚s de arquivo .CSV                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Ultima Alteracao: 03/08/2020 por Bruno Carvalho
;Motivo Alteracao:

;Ajusta conforme planilha -> [Peso Liquido],[Altura],[Largura],[Comprimento],[Categoria],[Genero] e [Colecao]
;SYS_CODIGO_CLIENTE = "0227"                                                            

;*******************************************************************************
;* Rotina para Importar Corre‡äes                                               *
;*******************************************************************************
Proc Importa_Correcao()
Private Varinner,Contador,Pos,Posf,Lnha,NR,ID,SKU,ARRAY_ERRO,ARQIMP,TITULO,TIT 

DynArray ARRAY_ERRO[]

Empty "\\Sistemas\\Vendas\\Imp_Temp"

Aguarde("Aguarde, importando dados")
Contador=0
FileRead ARQUIVO to Varinner
Edit "\\Sistemas\\Vendas\\Imp_Temp"
Pos=1
While True
  Contador = Contador + 1
  Posf=SearchFrom("\n",Varinner,Pos)
  If Posf=0 Then QuitLoop EndIf
  If Contador>1
     Then [Field-1]=Substr(Varinner,Pos,(Posf-Pos))
          Down
  EndIf
  Pos=Posf+1
EndWhile
Do_It!
ClearAll

SetDir "\\Sistemas\\Estoque"             

Contador=0
View "Itens"
View "Iten_Eco"
Coedit "\\Sistemas\\Vendas\\Imp_Temp"         SetHighLight Current Record 23 Field 31
NR=NRecords("\\Sistemas\\Vendas\\Imp_Temp")
While True
  Contador = Contador + 1
  
  ITEM_COD       = ""
  ITEM_PESO      = BlankNum()
  ITEM_CATEGORIA = ""
  ITEM_GENERO    = ""
  ITEM_COLECAO   = "" 
  
  Linha = [Field-1]
  For ii From 1 To 15
    PosF = Search(Chr(59),Linha)    
    Switch
      Case ii=1  : ITEM_COD  = AlinhM(Substr(Linha,1,PosF-1),10)                ;Codigo do Item
      Case ii=2  :                                                              ;Descri‡Æo do Item
      Case ii=3  :                                                              ;Titulo do Erro
      Case ii=4  :                                                              ;Codigo do Grupo
      Case ii=5  :                                                              ;Descricao do Grupo
      Case ii=6  :                                                              ;Preco Unitario
      Case ii=7  : ITEM_PESO = Substr(Linha,1,PosF-1)                           ;Peso Liquido
      Case ii=8  : ITEM_CATEGORIA = Substr(Linha,1,PosF-1)                      ;Codigo da Categoria  
      Case ii=9  :                                                              ;Descricao da Categoria
      Case ii=10 : ITEM_GENERO = Substr(Linha,1,PosF-1)                         ;Codigo do Genero
      Case ii=11 :                                                              ;Descricao do Genero 
      Case ii=12 :                                                              ;Codigo da Familia
      Case ii=13 :                                                              ;Descricao da Familia 
      Case ii=14 : ITEM_COLECAO = Substr(Linha,1,PosF-1)                        ;Codigo da Colecao
      Case ii=15 : QuitLoop                                                     ;Descricao da Colecao 
    EndSwitch
    Linha = SubStr(Linha,PosF+1,Len(Linha))
  EndFor
  
  Barra(NR,Contador)
  Aguarde("Aguarde, ajustando o item "+ITEM_COD+" "+BARRA_STRING)   
                                    
  If Search(Chr(44),ITEM_PESO)=0 And Search(Chr(46),ITEM_PESO)=0 
     Then ITEM_PESO = BlankNum()
     Else PosI = Search(Chr(44),ITEM_PESO)
          If PosI > 0
             Then ITEM_PESO = SubStr(ITEM_PESO,1,PosI-1)+"."+SubStr(ITEM_PESO,PosI+1,Len(ITEM_PESO))  
          EndIf
          ITEM_PESO = NumVal(Ltrim(Rtrim(ITEM_PESO)))
  EndIf 
  
  ITEM_DESCATEGORIA = ""                        
  ITEM_DESGENERO    = ""
  ITEM_DESCOLECAO   = ""
  
  ITEM_CATEGORIA    = AlinhM(Rtrim(Ltrim(StrVal(ITEM_CATEGORIA))),3) 
  ITEM_GENERO       = AlinhM(Rtrim(Ltrim(StrVal(ITEM_GENERO))),3)
  ITEM_COLECAO      = AlinhM(Rtrim(Ltrim(StrVal(ITEM_COLECAO))),3)
  
  If ITEM_CATEGORIA<>"000"
     Then GetRecord "Categor" ITEM_CATEGORIA To REG_CATEGORIA
           If RetVal
              Then ITEM_DESCATEGORIA = REG_CATEGORIA["Descricao da Categoria"]  
           EndIf   
  EndIf   
  
  If ITEM_GENERO<>"000"
     Then GetRecord "Site_Gen" ITEM_GENERO To REG_GENERO
           If RetVal
              Then ITEM_DESGENERO = REG_GENERO["Descricao do Genero"]  
           EndIf   
  EndIf   
  
  If ITEM_COLECAO<>"000"
     Then GetRecord "Site_Col" ITEM_COLECAO To REG_COLECAO
           If RetVal
              Then ITEM_DESCOLECAO = REG_COLECAO["Descricao da Colecao"]  
           EndIf   
  EndIf       
  
  Moveto "Itens"
  Moveto [Codigo do Item]
  Locate ITEM_COD
  If RetVal
     Then If IsBlank([Peso Liquido]) Then [Peso Liquido] = ITEM_PESO UnLockRecord EndIf
          Moveto "Iten_Eco"
          Moveto [Codigo do Item]
          Locate ITEM_COD
          If Not Retval
             Then End Down
                  [Codigo do Item        ] = ITEM_COD
          EndIF
          If IsBlank([Largura               ]) Then [Largura               ] = 20                EndIf  
          If IsBlank([Altura                ]) Then [Altura                ] = 20                EndIf
          If IsBlank([Comprimento           ]) Then [Comprimento           ] = 40                EndIf
          If IsBlank([Codigo da Categoria   ]) Then [Codigo da Categoria   ] = ITEM_CATEGORIA    EndIf
          If IsBlank([Descricao da Categoria]) Then [Descricao da Categoria] = ITEM_DESCATEGORIA EndIf
          If IsBlank([Codigo do Genero      ]) Then [Codigo do Genero      ] = ITEM_GENERO       EndIf
          If IsBlank([Descricao do Genero   ]) Then [Descricao do Genero   ] = ITEM_DESGENERO    EndIf
          If IsBlank([Codigo da Colecao     ]) Then [Codigo da Colecao     ] = ITEM_COLECAO      EndIf
          If IsBlank([Descricao da Colecao  ]) Then [Descricao da Colecao  ] = ITEM_DESCOLECAO   EndIf
          UnLockRecord
  EndIf
  Moveto "\\Sistemas\\Vendas\\Imp_Temp"
  Skip 
  If Eot() Then QuitLoop EndIf
EndWhile
Do_It!
ClearAll

SetDir "\\Sistemas\\Exporta"  

EndProc ;Importa_Correcao()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
TECLA=""
MSG_CAMPO=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = -59: 
          Dialog_F1()            
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch                          
            Case Campo="YES" : Campo="NO"
            Case Campo="NO"  : Campo="YES" 
          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
          Checa_TAG()
          RefreshDialog
   EndSwitch
EndIf

Switch
 Case Campo="TG_FINALIDADE" : MensagemRadioButtons()
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp

EndProc ;SD_Dialog()      

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

If SYS_CODIGO_CLIENTE="0227" Or SYS_CHAPA_USUARIO ="9999" 
   Then ROTINA_LIBERADA = True
   Else ROTINA_LIBERADA = False       
EndIf

If Not ROTINA_LIBERADA
   Then Mensagem("Rotina indispon¡vel !//Verificar com o Suporte VISE !")
        Return
EndIf    

DIR_SITE =  SubStr(Directory(),1,2) + "\\Sistemas\\Exporta\\Dados\\TRAYCORP\\IMP_ERP"

If DirExists(DIR_SITE)=0
   Then Mensagem("NÆo foi poss¡vel realizar a importa‡Æo de dados corrigidos em arquivo .CSV//"+ 
                 "Diret¢rio \\Sistemas\\Exporta\\Dados\\TRAYCORP\\IMP_ERP nÆo foi localizado!")
        Return
EndIf

While True
 ShowDialog "Importa‡Æo de dados corrigidos em arquivo .CSV" Proc "SD_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "TAB","ReverseTab","ENTER","ESC","F1",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140    
     @ 05,12 Height 05 Width 72
    
    Pushbutton @ 01,22 width 13 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 01,36 width 13 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
                 
  ARQUIVO = "SIT_ERRO.CSV"
  
  DIRETORIO_ATUAL=Directory() 
  SetDir "\\Sistemas\\Exporta\\Dados\\TRAYCORP\\IMP_ERP"
  If Not IsFile(ARQUIVO)
     Then SetDir DIRETORIO_ATUAL
          Mensagem("NÆo foi localizado o arquivo "+ARQUIVO+" para realizar a importa‡Æo!")
          Loop 
  EndIf
  Importa_Correcao()
  SetDir DIRETORIO_ATUAL
  
  Mensagem("Processo Conclu¡do!")   
EndWhile
Release Vars All
Release Procs All