;** ADD_LOC ********************************************************************
;*  Programa p/ Inserir Localiza‡Æo                                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 10/06/2019 por Bruno Carvalho
;Ultima Alteracao: 14/06/2019 por Bruno Carvalho                      
;Motivo Alteracao: Ajustes para atualizar/remover localiza‡Æo de todos os itens de mesma referˆncia  
;Ultima Alteracao: 21/06/2019 por Bruno Carvalho                      
;Motivo Alteracao: Alterado [Localizacao] p/ [Codigo_Localizacao] devido … altera‡Æo do campo chave na tabela "Iten_Loc" que ficou sendo CodItem,CodLocalizacao 
;Ultima Alteracao: 25/06/2019 por Bruno Carvalho                      
;Motivo Alteracao: Permitindo excluir a localiza‡Æo independente se ‚ a localiza‡Æo PRINCIPAL
;Ultima Alteracao: 30/09/2019 por Bruno Carvalho                      
;Motivo Alteracao: Ajustes #0429 

;*******************************************************************************
;* Seta Localizacao                                                            *
;*******************************************************************************                                 
Proc Seta_Localizacao(PARAM)
Private PARAM,MSG 

MSG  = ""
If PARAM_SWCONS3_VENDAS
   Then Window Select JanelaItenLoc
        CoeditKey
   Else Moveto "Iten_Loc"
EndIf
End If [Codigo do Item]<>"" Then Down EndIf
Moveto [Codigo_Localizacao]
Ativa_Lookup()
Switch
  Case PARAM="" And VSDGLOCAL="" And VSDGNOMLOCAL<>""  : Moveto [Localizacao       ] Locate VSDGNOMLOCAL
  OtherWise                                            : Moveto [Codigo_Localizacao] Locate VSDGLOCAL
EndSwitch
If RetVal
   Then VSDGLOCAL    = [Codigo_Localizacao]
        VSDGNOMLOCAL = [Localizacao       ]
   Else Switch
          Case VSDGLOCAL<>""                 : MSG = "C¢digo da localiza‡Æo "+VSDGLOCAL+" nÆo foi localizado!" 
          Case PARAM="" And VSDGNOMLOCAL<>"" : MSG = "Localiza‡Æo "+VSDGNOMLOCAL+" nÆo foi localizada!"
        EndSwitch
EndIf
KeyPress "ESC"
If [Codigo do Item]="" Then Del EndIf
If PARAM_SWCONS3_VENDAS
   Then Do_it!
EndIf
If MSG<>"" 
   Then Mensagem(MSG)
        Return False
EndIf
Return True

EndProc ;Seta_Localizacao()                                  
                                  
;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Sd_DialgogLocal(Disparo,Campo,Evento,Elemento)
Private Disparo,Campo,Evento,Elemento
            
Temp=True
MSG_CAMPO=""                      
TECLA=""

If INICIO_DIALOG
   Then INICIO_DIALOG=False
        Campo="TG_LOCAL"
EndIf

Dynarray WinArray_Loca2[]
Window Handle Dialog to JANELA_LOCAL2
Window GetAttributes JANELA_LOCAL2 To WinArray_Loca2

If Campo="TG_LOCAL"
   Then TECLA="F1=Tabelas"
   Else TECLA="" 
EndIf   

If Disparo="OPEN"
   Then TiraSombraShowDialog()
EndIf        

If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9   : Temp=False
     Case Evento["KeyCode"] = -59 : If Campo="TG_LOCAL"
                                       Then If PARAM_SWCONS3_VENDAS
                                               Then CoeditKey
                                                    Echo Normal
                                                    
                                            EndIf
                                            End If [Codigo do Item]<>"" Then Down EndIf   
                                            Echo Off
                                            
                                            WinArray_Loca1["FLOATING"]=False
                                            Window SetAttributes JANELA_LOCAL1 From WinArray_Loca1

                                            WinArray_Loca2["FLOATING"]=False
                                            Window SetAttributes JANELA_LOCAL2 From WinArray_Loca2
                                            
                                            If PARAM_SWCONS3_VENDAS
                                               Then SD_ConsultaWinArray["FLOATING" ] = False
                                                    Window SetAttributes SD_ConsultaJANELA From SD_ConsultaWinArray
                                            EndIf 

                                            Moveto [Codigo_Localizacao]
                                            If ConsultaF1()
                                               Then VSDGLOCAL    = [Codigo_Localizacao]
                                                    VSDGNOMLOCAL = [Localizacao       ]
                                            EndIf
                                            KeyPress "ESC"
                                            If [Codigo do Item]="" Then Del EndIf
                                            
                                            If PARAM_SWCONS3_VENDAS
                                               Then Do_it!
                                            EndIf
                                            
                                            If PARAM_SWCONS3_VENDAS
                                               Then Window Select SD_ConsultaJANELA
                                                    SD_ConsultaWinArray["FLOATING" ] = True
                                                    Window SetAttributes SD_ConsultaJANELA From SD_ConsultaWinArray
                                            EndIf
                                            
                                            Window Select JANELA_LOCAL1
                                            WinArray_Loca1["FLOATING"]=True
                                            Window SetAttributes JANELA_LOCAL1 From WinArray_Loca1

                                            Window Select JANELA_LOCAL2
                                            WinArray_Loca2["FLOATING"]=True
                                            Window SetAttributes JANELA_LOCAL2 From WinArray_Loca2
                                            
                                            If PARAM_EDITA_LOCALIZACAO
                                               Then Moveto "Itens"
                                                    KeyPress "F7"
                                            EndIf   
                          
                                            Echo Normal
                                            Echo off

                                            Temp=False 
                                    EndIf
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_LOCAL"          : CancelDialog
            Case Campo="TG_LOCALIZACAO"    : Campo="TG_LOCAL" 
            Case Campo="TG_FLAG2"          : Campo="TG_LOCALIZACAO"
          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
          Switch
           Case Campo="TG_LOCAL" :   
                VSDGLOCAL=ControlValue("TG_LOCAL")
                If Not IsBlank(VSDGLOCAL)
                   Then If Seta_Localizacao("CODIGO")
                           Then Campo="TG_FLAG2"
                        EndIf              
                   Else Campo="TG_LOCALIZACAO"
                EndIf
           Case Campo="TG_LOCALIZACAO"  : 
                VSDGNOMLOCAL=ControlValue("TG_LOCALIZACAO")
                If IsBlank(VSDGLOCAL) And IsBlank(VSDGNOMLOCAL)
                   Then Mensagem("Informe a localiza‡Æo!")
                   Else While True
                          MSG = ""
                          If Not IsBlank(VSDGLOCAL) And IsBlank(VSDGNOMLOCAL) 
                             Then Mensagem("Informe a Localiza‡Æo!")
                                  QuitLoop                                       
                          EndIf 
                          If Seta_Localizacao("")
                             Then Campo="TG_FLAG2" 
                          EndIf
                          QuitLoop
                        EndWhile   
                EndIf  
           Case Campo="TG_FLAG2" :
                VSDGFLAG2=ControlValue("TG_FLAG2")
                AcceptDialog     
        EndSwitch
        RefreshDialog
   EndSwitch
EndIf

Switch
  Case Campo="TG_LOCAL"          : MSG_CAMPO = "C¢digo da Localiza‡Æo"
  Case Campo="TG_LOCALIZACAO"    : MSG_CAMPO = "Localiza‡Æo"
  Case Campo="TG_FLAG2"          : MSG_CAMPO = "Pausa para Prosseguir"                                                
Endswitch

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp

EndProc ;Sd_DialgogLocal()

;*******************************************************************************
;* Rotina Principal De Reajuste de Preco                                       *
;*******************************************************************************
Proc Adiciona_CodLocal()                
Private POSI, Titulo, indice

Indice             = ControlValue("TG_REGISTRO")
VSDGLOCAL          = BlankNum()                            
VSDGNOMLOCAL       = BlankNum()
VSDGFLAG2          = ""
INICIO_DIALOG      = True
TAB_ANT            = Table() 
 
If PARAM_SWCONS3_VENDAS
   Then Window Select JanelaItenLoc
   Else Moveto "Iten_Loc"
EndIf
While True
  Result = False
  ShowDialog "Adiciona Localiza‡Æo" Proc "Sd_DialgogLocal"
    Trigger "OPEN","ARRIVE"                                                   
    Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
      @ 11,16 Height 04 Width 42
  
     Label  @ 00,00 "Localiza‡Æo"  For "TG_LOCAL"
     Accept @ 01,01 Width 15 "A12" Picture "!*!" Tag "TG_LOCAL" To VSDGLOCAL
        
     Label  @ 00,15 ""  For "TG_LOCALIZACAO"
     Accept @ 01,16 Width 20 "A17" Tag "TG_LOCALIZACAO" To VSDGNOMLOCAL
     
     Label  @ 01,36 ""  For "TG_FLAG2"
     Accept @ 01,36 Width 1 "A3" Tag "TG_FLAG2" To VSDGFLAG2
     
  EndDialog
  If Not RetVal Then QuitLoop EndIf
  
  MSG   = ""
  Achou = False
  For ty From 1 To DynArraySize(ARRAY_LOCALIZACAO)
    If Rtrim(SubStr(ARRAY_LOCALIZACAO[ty],1,12))  = VSDGLOCAL And 
       Rtrim(SubStr(ARRAY_LOCALIZACAO[ty],14,20)) = VSDGNOMLOCAL
       Then Achou=True
    EndIf  
  Endfor
  
  If Achou
     Then MSG = "Localiza‡Æo "+VSDGNOMLOCAL+" j  est  cadastrada para este item!"          
  EndIf       
  If MSG<>""
     Then Mensagem(MSG)
          Loop
  EndIf   
  Release Vars REG_LOCAL,REG_ITEM,AUX_ITEM
  Result = True
  QuitLoop
EndWhile          

If Not PARAM_SWCONS3_VENDAS
   Then Moveto TAB_ANT 
EndIf

Release Vars REG_LOCAL  
Return Result

EndProc ;Adiciona_CodLocal()

;*******************************************************************************
;* Controle do ShowDialog                                                      *
;*******************************************************************************
Proc SD_SDialogLoc(Disparo,Campo,Evento,Elemento)
Private Disparo,Campo,Evento,Elemento

Temp           = True
MSG_CAMPO      = ""                                               
TECLA          = ""
ANT_VSDGCODIGO = VSDGCODIGO
                                     
If INICIO_DIALOG
   Then Campo = "TG_FLAG"
        INICIO_DIALOG=False
        
        Dynarray WinArray_Loca1[]
        Window Handle Dialog to JANELA_LOCAL1
        Window GetAttributes JANELA_LOCAL1 To WinArray_Loca1
EndIf  

If Disparo="OPEN" Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =   9 : Temp=False
     Case Evento["KeyCode"] =  27 :
          Temp=False
          Switch
            Case Campo="TG_CODIGO"   : CancelDialog
            Case Campo="TG_FLAG"     : CancelDialog
            Case Campo="TG_REGISTRO" : Campo="TG_FLAG"
          EndSwitch
     Case Evento["KeyCode"] = -82 Or Evento["KeyCode"]=Asc("INS") : 
          If PARAM_EDITA_LOCALIZACAO 
             Then Moveto "Itens"
                  KeyPress "F7"
                  Echo Normal
                  Echo Off
          EndIf   
          If Adiciona_CodLocal()
             Then If DynArraySize(ARRAY_LOCALIZACAO)=00
                     Then AJUSTA_PRINCIPAL=True
                     Else AJUSTA_PRINCIPAL=False 
                  EndIf
                  If PARAM_SWCONS3_VENDAS
                     Then Window Select JanelaItenLoc
                          CoeditKey
                     Else Moveto "Iten_Loc"
                  EndIf          
                  End 
                  If [Codigo do Item]<>"" Then Down EndIf
                  [Codigo do Item    ] = VSDGCODIGO
                  [Codigo_Localizacao] = VSDGLOCAL
                  [Localizacao       ] = VSDGNOMLOCAL
                  [Data da Manutencao] = Today()
                  [Hora da Manutencao] = Time()
                  [Chapa             ] = SYS_CHAPA_USUARIO
                  UnLockRecord
                  
                  If PARAM_AJUSTA_LOCALIZADO_TODAS_REF                  
                     Then GetRecord "\\Sistemas\\Estoque\\Itens" VSDGCODIGO To REG_ITEM
                          If RetVal
                             Then If PARAM_SWCONS3_VENDAS
                                     Then Window Select JanelaItens
                                     Else Moveto "Itens"
                                  EndIf 
                                  Moveto [Referencia]
                                  Locate REG_ITEM["Referencia"]
                                  If Retval
                                     Then While [Referencia]=REG_ITEM["Referencia"]
                                            If AJUSTA_PRINCIPAL
                                              Then [Codigo_Localizacao] = VSDGLOCAL
                                                   [Localizacao       ] = VSDGNOMLOCAL
                                            EndIf
                                            If [Codigo do Item]<>VSDGCODIGO
                                               Then AUX_CODIGO = [Codigo do Item]
                                                     If PARAM_SWCONS3_VENDAS
                                                        Then Window Select JanelaItenLoc
                                                        Else Moveto "Iten_Loc"
                                                     EndIf
                                                     Home
                                                     Moveto [Codigo do Item]
                                                     Locate AUX_CODIGO,VSDGLOCAL
                                                     If Not RetVal
                                                        Then End 
                                                             If [Codigo do Item]<>"" Then Down EndIf
                                                             [Codigo do Item]=AUX_CODIGO
                                                     EndIf
                                                     [Codigo_Localizacao] = VSDGLOCAL
                                                     [Localizacao       ] = VSDGNOMLOCAL
                                                     [Data da Manutencao] = Today()
                                                     [Hora da Manutencao] = Time()
                                                     [Chapa             ] = SYS_CHAPA_USUARIO
                                                     UnLockRecord       
                                            EndIf
                                            If PARAM_SWCONS3_VENDAS
                                               Then Window Select JanelaItens
                                               Else Moveto "Itens"
                                            EndIf 
                                            Skip
                                            If Eot() Then QuitLoop EndIf
                                          EndWhile
                                          Release Vars AUX_CODIGO
                                  EndIf
                          EndIf
                  EndIf
                  
                  If PARAM_SWCONS3_VENDAS
                     Then Do_it!
                  EndIf
                  CONT = DynArraySize(ARRAY_LOCALIZACAO)+1
                  ARRAY_LOCALIZACAO[CONT] = Format("W12",VSDGLOCAL)+Spaces(1)+
                                                                         Format("W20",VSDGNOMLOCAL) +Spaces(1)+
                                                                         Format("D13",Today())
                  If AJUSTA_PRINCIPAL
                     Then ARRAY_LOCALIZACAO[CONT] = ARRAY_LOCALIZACAO[CONT] + "  <- PRINCIPAL"
                  EndIf                                                    
                  Release Vars CONT,AJUSTA_PRINCIPAL
          EndIf
          TECLA=""
     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"] = 32  And Campo="TG_REGISTRO" :
          If DynArraySize(ARRAY_LOCALIZACAO)>0 
             Then Indice       = ControlValue("TG_REGISTRO")
                  VSDGLOCAL    = Rtrim(SubStr(ARRAY_LOCALIZACAO[Indice],1,12))
                  VSDGNOMLOCAL = Rtrim(SubStr(ARRAY_LOCALIZACAO[Indice],14,20))
                  
                  ACHOU_ITEM        = False
                  LOCALIZACAO_ATUAL = ""
                  GetRecord "\\Sistemas\\Estoque\\Itens" VSDGCODIGO To REG_ITEM
                  If RetVal
                     Then ACHOU_ITEM        = True 
                          LOCALIZACAO_ATUAL = Format("W12",REG_ITEM["Codigo_Localizacao"])+" "+REG_ITEM["Localizacao"]
                  EndIf    
                  
                  If Search("PRINCIPAL",ARRAY_LOCALIZACAO[Indice])>0
                     Then Mensagem("A localiza‡Æo "+VSDGLOCAL+" j  est  definida como principal!")
                     Else If LOCALIZACAO_ATUAL<>""
                             Then MSG =       Completa("- Localiza‡Æo atual....: "+LOCALIZACAO_ATUAL,64," ")+"//"
                                  MSG = MSG + Completa("- Localiza‡Æo escolhida: "+Format("W12",VSDGLOCAL)+" "+VSDGNOMLOCAL,64," ")+"//"
                                  MSG = MSG + Completa("Deseja alterar a localiza‡Æo atual para a localiza‡Æo escolhida?",64," ")
                             Else MSG =       "Deseja informar a localiza‡Æo "+VSDGLOCAL+" como principal?"     
                          EndIf   
                          If ConfGeral(MSG) And ACHOU_ITEM
                             Then GetRecord "\\Sistemas\\Estoque\\Itens" VSDGCODIGO To REG_ITEM
                                  If RetVal
                                     Then If PARAM_SWCONS3_VENDAS
                                             Then Window Select JanelaItens
                                                  CoeditKey 
                                             Else Moveto "Itens"
                                          EndIf
                                          Moveto [Referencia]
                                          Locate REG_ITEM["Referencia"]
                                          If Retval
                                             Then While [Referencia]=REG_ITEM["Referencia"]
                                                    [Codigo_Localizacao] = VSDGLOCAL
                                                    [Localizacao       ] = VSDGNOMLOCAL
                                                    Skip
                                                    If Eot() Then QuitLoop EndIf
                                                  EndWhile
                                                  UnLockRecord
                                          EndIf
                                          
                                          Release Vars ARRAY_LOCALIZACAO
                                          CONT = 0
                                          DynArray ARRAY_LOCALIZACAO[]
                                          
                                          If PARAM_SWCONS3_VENDAS
                                             Then Window Select JanelaItenLoc 
                                             Else Moveto "Iten_Loc"
                                          EndIf
                                          Moveto [Codigo do Item]
                                          Locate VSDGCODIGO
                                          If RetVal
                                             Then While VSDGCODIGO=[Codigo do Item]
                                                    CONT = CONT + 1
                                                    ARRAY_LOCALIZACAO[CONT] = Format("W12",[Codigo_Localizacao])+Spaces(1)+
                                                                              Format("W20",[Localizacao]) +Spaces(1)+
                                                                              Format("D13",[Data da Manutencao])
                                                    If VSDGLOCAL=[Codigo_Localizacao]
                                                       Then ARRAY_LOCALIZACAO[CONT] = ARRAY_LOCALIZACAO[CONT] + "  <- PRINCIPAL"
                                                    EndIf
                                                    Skip
                                                    If Eot() Then QuitLoop EnDIf
                                                    Locate Next VSDGCODIGO
                                                    If Not RetVal Then QuitLoop EndIf
                                                  EndWhile  
                                          EndIf
                                          
                                          If PARAM_SWCONS3_VENDAS
                                             Then Do_it!
                                          EndIf
                                  EndIf
                          EndIf
                  EndIf
                  Release Vars CONT,MSG,ACHOU_ITEM,REG_ITEM
          EndIf
     Case Evento["KeyCode"] = -83 And Campo="TG_REGISTRO" : 
          If DynArraySize(ARRAY_LOCALIZACAO)>0 
             Then 
          Indice       = ControlValue("TG_REGISTRO")
          VSDGLOCAL    = Rtrim(SubStr(ARRAY_LOCALIZACAO[Indice],1,12))
          VSDGNOMLOCAL = Rtrim(SubStr(ARRAY_LOCALIZACAO[Indice],14,20))
          
          ;If Search("PRINCIPAL",ARRAY_LOCALIZACAO[Indice])>0
          ;   Then ;Mensagem(Completa("N„o  ‚  poss¡vel  remover  uma localiza‡Æo que esta inserida",62," ")+"//"+
                  ;         Completa("no cadastro de itens.",62," ")+"////"+
                  ;         Completa("Se  necess rio, remover  a localiza‡Æo do cadastro de itens.",62," "))
          ;   Else 
          ConfGeral("Deseja remover a localiza‡Æo "+VSDGLOCAL+" deste item?")
          If Ok="S"  
             Then If PARAM_SWCONS3_VENDAS
                     Then Window Select JanelaItenLoc
                     Else Moveto "Iten_Loc"
                  EndIf 
                  Moveto [Codigo do Item]
                  Locate VSDGCODIGO,VSDGLOCAL
                  If RetVal
                     Then If PARAM_SWCONS3_VENDAS
                             Then CoeditKey
                                  Del
                             Else Del
                          EndIf
                          UnLockRecord
                          
                          If PARAM_AJUSTA_LOCALIZADO_TODAS_REF
                             Then GetRecord "\\Sistemas\\Estoque\\Itens" VSDGCODIGO To REG_ITEM
                                  If RetVal
                                     Then If PARAM_SWCONS3_VENDAS
                                             Then Window Select JanelaItens
                                             Else Moveto "Itens"
                                          EndIf
                                          Moveto [Referencia]
                                          Locate REG_ITEM["Referencia"]
                                          If Retval
                                             Then While [Referencia]=REG_ITEM["Referencia"]
                                                    If [Codigo do Item]<>VSDGCODIGO
                                                       Then AUX_CODIGO = [Codigo do Item]
                                                            If PARAM_SWCONS3_VENDAS
                                                               Then Window Select JanelaItenLoc
                                                               Else Moveto "Iten_Loc"
                                                            EndIf
                                                            Home
                                                            Moveto [Codigo do Item]
                                                            Locate AUX_CODIGO,VSDGLOCAL
                                                            If RetVal
                                                               Then Del
                                                                    UnLockRecord 
                                                            EndIf
                                                    EndIf
                                                    If PARAM_SWCONS3_VENDAS
                                                       Then Window Select JanelaItens
                                                       Else Moveto "Itens"
                                                    EndIf 
                                                    Skip
                                                    If Eot() Then QuitLoop EndIf
                                                  EndWhile
                                                  Release Vars AUX_CODIGO
                                          EndIf
                                  EndIf
                          EndIf
                          
                          If PARAM_SWCONS3_VENDAS
                             Then Do_it!
                          EndIf
                  EndIf
                  Release Vars ARRAY_LOCALIZACAO
                  CONT = 0
                  DynArray ARRAY_LOCALIZACAO[]
                 
                  If PARAM_SWCONS3_VENDAS
                     Then Window Select JanelaItenLoc
                     Else Moveto "Iten_Loc"
                  EndIf
                  Moveto [Codigo do Item]
                  Locate VSDGCODIGO
                  If RetVal
                     Then While VSDGCODIGO=[Codigo do Item]
                            CONT = CONT + 1
                            ARRAY_LOCALIZACAO[CONT] = Format("W12",[Codigo_Localizacao])+Spaces(1)+
                                                      Format("W20",[Localizacao]) +Spaces(1)+
                                                      Format("D13",[Data da Manutencao])
                            If CODIGO_LOCALIZACAO=[Codigo_Localizacao]
                               Then ARRAY_LOCALIZACAO[CONT] = ARRAY_LOCALIZACAO[CONT] + "  <- PRINCIPAL"
                            EndIf
                            Skip
                
                            If Eot() Then QuitLoop EnDIf
                            Locate Next VSDGCODIGO
                            If Not RetVal Then QuitLoop EndIf
                          EndWhile  
                  EndIf
                  Release Vars AUX_ARRAY_LOCALIZACAO,CONTADOR,TM,i,Indice,ITEM     
          EndIf             
          EndIf
          ;EndIf
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_CODIGO"       : Campo="TG_REGISTRO"
                         VSDGCODIGO=ControlValue("TG_CODIGO")
                         If Not IsBlank(ANT_VSDGCODIGO) And ANT_VSDGCODIGO<>VSDGCODIGO
                            Then VSDGCODIGO = ANT_VSDGCODIGO
                                 GetRecord "\\Sistemas\\Estoque\\Itens" VSDGCODIGO To REG_CODIGO
                                 If Not RetVal
                                    Then VSDGNOMCODIGO=""
                                         FastMsg("Item "+VSDGCODIGO+" n„o localizado!")
                                    Else VSDGNOMCODIGO = REG_CODIGO["Descricao do ITem"]
                                 EndIf   
                         EndIf
                    Case Campo="TG_FLAG"     : Campo="TG_REGISTRO"    
                    Case Campo="TG_REGISTRO" : If DynArraySize(ARRAY_LOCALIZACAO)>0 
                                                  Then Indice = ControlValue("TG_REGISTRO")
                                                       If Search("PRINCIPAL",ARRAY_LOCALIZACAO[Indice])>0
                                                          Then Mensagem("Esta localiza‡Æo j  est  sendo utilizada neste item!")
                                                          Else AcceptDialog
                                                       EnDIf
                                               EndIf           
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

MSG_CAMPO = "Ins=Inserir  Barra de espa‡o=Define Principal  "

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp

EndProc ;SD_Dialog

;*******************************************************************************
;* Edi‡Æo do recebimento da Ordem de Compra                                    *
;*******************************************************************************
Proc INSERIR_LOCALIZACAO()

;Echo Normal
;Echo Off                                        

INICIO_DIALOG=True

While True
  Result = False
  VSDGFLAG = ""
  ShowDialog "Localiza‡Æo" Proc "SD_SDialogLoc"
  Trigger "OPEN","ARRIVE","CLOSE","SELECT"
  Key "F1","ENTER","ESC","INS",-82,-83,
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140, 32  
       @ 05,02   Height 14 Width 75
  
      Label  @ 00,00 "Item" For "TG_CODIGO"
      Accept @ 01,01 Width 14 "A10"  Picture "[&,#][#*#]" Tag "TG_CODIGO" To VSDGCODIGO
      Accept @ 01,12 Width 59 "A30"  Picture "!*!" Tag "TG_CODIGO" To VSDGNOMCODIGO
      
      Label  @ 00,53 "" For "TG_FLAG"
      Accept @ 01,54 Width 03 "A1" Picture "!*!" Tag "TG_FLAG" To VSDGFLAG

      Label @ 03,00 ""  For "TG_REGISTRO"
      Label @ 03,00 " C¢digo       Localiza‡Æo          Data"  For "TG_REGISTRO"
                   ;" 123456789012 12345678901234567890 1234567890  <- PRINCIPAL"
  
      PickDynArray @04,01 Height 7 width 71
        Columns 1
         ARRAY_LOCALIZACAO
          Tag "TG_REGISTRO"
           To VSDGNOMLOCAL
           
      ;Label @ 10,00 "Ins=Inserir"  For "TG_REGISTRO"     
                
  EndDialog
  If Not RetVal 
     Then Result=False
          QuitLoop 
  EndIf                                        
  
  AUX_VSDGLOCAL    = Rtrim(SubStr(ARRAY_LOCALIZACAO[Indice],1,12))
  AUX_VSDGNOMLOCAL = Rtrim(SubStr(ARRAY_LOCALIZACAO[Indice],14,20))
  Loop
EndWhile
Release Vars REG_OCI,VSDGITENSOC,AUX_ARRAY_COMPRA,ARRAY_LOCALIZACAO, EDITAR_COMPRA,
             VSDGOC,VSDGNOMOC,VSDGFLAG,VSDGFLAG2,indice,ANT_VSDGQTD,VSDGQTD,VSDGPRUNIT,VSDGPRTOTAL
             
Return Result             
  
EndProc ;INSERIR_LOCALIZACAO()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************             
If Not IsAssigned(PARAM_EDITA_LOCALIZACAO) Then PARAM_EDITA_LOCALIZACAO=False EndIf
If Not IsAssigned(PARAM_SWCONS3_VENDAS)    Then PARAM_SWCONS3_VENDAS=False    EndIf

If SysMode()="Main" And PARAM_SWCONS3_VENDAS=False
   Then Mensagem("Processo executado no script Itens!")
        Return
EndIf

If SYS_CODIGO_CLIENTE="0388" or
   SYS_CODIGO_CLIENTE="0429"
   Then PARAM_AJUSTA_LOCALIZADO_TODAS_REF = True
   Else PARAM_AJUSTA_LOCALIZADO_TODAS_REF = False
EndIf

If PARAM_EDITA_LOCALIZACAO
   Then Do_it!
        View NOWINDOW "\\Sistemas\\Estoque\\iten_loc"
        Moveto "Itens"
        Moveto [Codigo do Item]
        CoeditKey
        KeyPress "F7"
EndIf   

CONT_ARRAY=0
DynArray ARRAY_LOCALIZACAO[]

VSDGCODIGO          = [Codigo do Item    ]
VSDGNOMCODIGO       = [Descricao do Item ]
AUX_LOCALIZACAO     = [Localizacao       ]
CODIGO_LOCALIZACAO  = [Codigo_Localizacao] 
AUX_DATA_MANUTENCAO = [Data da Manutencao]
AUX_VSDGLOCAL       = ""
AUX_VSDGNOMLOCAL    = ""

If PARAM_SWCONS3_VENDAS
   Then Window Select JanelaItenLoc
   Else Moveto "\\Sistemas\\Estoque\\iten_loc"
EndIf  
Moveto [Codigo do Item]
Locate VSDGCODIGO
If RetVal
   Then CONT_ARRAY = DynArraySize(ARRAY_LOCALIZACAO)
        While [Codigo do Item] = VSDGCODIGO  
          CONT_ARRAY = CONT_ARRAY + 1
          ARRAY_LOCALIZACAO[CONT_ARRAY] = Format("W12",[Codigo_Localizacao])+Spaces(1)+
                                          Format("W20",[Localizacao]) +Spaces(1)+
                                          Format("W10",Format("D13",[Data da Manutencao]))
          If CODIGO_LOCALIZACAO=[Codigo_Localizacao]
             Then ARRAY_LOCALIZACAO[CONT_ARRAY] = ARRAY_LOCALIZACAO[CONT_ARRAY] + "  <- PRINCIPAL"  
          EndIf                                            
          Skip
          If Eot() Then QuitLoop EnDIf
        EndWhile  
EndIf

If PARAM_SWCONS3_VENDAS
   Then Window Select JanelaItens
   Else Moveto "Itens"
EndIf   
Moveto [Codigo do Item]
Locate VSDGCODIGO
ADICIONA_LOCALIZACAO = False
If INSERIR_LOCALIZACAO()
   Then ADICIONA_LOCALIZACAO = True
EndIf   

If PARAM_SWCONS3_VENDAS
   Then Window Select JanelaItens
   Else Moveto "Itens"
EndIf
Moveto [Codigo do Item]
Locate VSDGCODIGO
If ADICIONA_LOCALIZACAO And [Localizacao]<>"" And AUX_VSDGNOMLOCAL<>"" And AUX_VSDGLOCAL<>""
   Then COR_MENSAGEM="ALERTA"
        ConfGeral("Deseja alterar a localiza‡Æo atual?")
        If Ok="S"
           Then ADICIONA_LOCALIZACAO=True
           Else ADICIONA_LOCALIZACAO=False
        EndIf
EndIf           
           
If ADICIONA_LOCALIZACAO
   Then [Codigo_Localizacao] = AUX_VSDGLOCAL
        [Localizacao       ] = AUX_VSDGNOMLOCAL
        
        If PARAM_SWCONS3_VENDAS
           Then Window Select JanelaItenLoc
           Else Moveto "\\Sistemas\\Estoque\\Iten_Loc"
        EndIf
        Moveto [Codigo do Item]
        Locate VSDGCODIGO,AUX_VSDGLOCAL
        If RetVal
           Then Del
        EndIf
EndIf  
If PARAM_SWCONS3_VENDAS
   Then Window Select JanelaItens
   Else Moveto "Itens"
EndIf

If PARAM_EDITA_LOCALIZACAO
   Then Do_it!
        Moveto "\\Sistemas\\Estoque\\iten_loc" ClearImage
        Moveto "Itens"
        Moveto [Codigo do Item]
        CoeditKey
        KeyPress "F7"
EndIf

Release Vars CONT_ARRAY,ARRAY_LOCALIZACAO,VSDGCODIGO,VSDGNOMCODIGO,AUX_LOCALIZACAO,ADICIONA_LOCALIZACAO,AUX_VSDGNOMLOCAL, 
             AUX_VSDGLOCAL,JANELA_LOCAL1,JANELA_LOCAL2, WinArray_Loca2, WinArray_Loca1,PARAM_EDITA_LOCALIZACAO  
Release Procs INSERIR_LOCALIZACAO,Sd_DialgogLocal,Adiciona_CodLocal,SD_SDialogLoc
