;** RE_0010 ********************************************************************
;*  Emissao de Etiquetas Produtos - Modelo II                                  *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido    : 09/10/2001 por Anivel Augusto Rodrigues
;Ultima Alteracao: 02/03/2007 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao da etiqueta 46 e 47 Zebra
;Ultima Alteracao: 14/03/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao da etiqueta 48 Intermec code128
;Ultima Alteracao: 29/03/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Ordem Impressao
;Ultima Alteracao: 10/04/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao da etiqueta 49 Intermec ean13
;Ultima Alteracao: 14/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 30/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TN 0185 ET_Z002B
;Ultima Alteracao: 04/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TN Selecao requisicao
;Ultima Alteracao: 11/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TN Selecao requisicao item tipo P
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 26/06/2008 por Nikolas
;Motivo Alteracao: Inclusao Nova etiqueta numero 50 modamil
;Ultima Alteracao: 10/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes GDA Selecao Pedido
;Ultima Alteracao: 31/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Clientes 0003,0200
;Ultima Alteracao: 19/08/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Carol Distribuidora
;Ultima Alteracao: 03/10/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Uzze Buzze
;Ultima Alteracao: 18/01/2009 por Nikolas
;Motivo Alteracao: Inclusao Modelo Diobra 55
;Ultima Alteracao: 12/02/2009 por Nikolas
;Motivo Alteracao: Inclusao Modelo Lupus 56
;Ultima Alteracao: 17/02/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Relacao Inclusao Modelo Kaney 58
;Ultima Alteracao: 25/03/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Auditoria 59
;Ultima Alteracao: 27/03/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Bali 60
;Ultima Alteracao: 08/04/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo SIRI 61,62
;Ultima Alteracao: 17/07/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes QTD Pedido
;Ultima Alteracao: 24/08/2009 por Cleber Alves
;Motivo Alteracao: Inclusao do Modelo 63
;Ultima Alteracao: 09/09/2009 por Nikoas
;Motivo Alteracao: Inclusao do Modelo 64 (Bali II)
;Ultima Alteracao: 15/09/2009 por Nikoas
;Motivo Alteracao: Inclusao do Modelo 65 (Concretos Vico)
;Ultima Alteracao: 10/05/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 66 (Ecologica)
;Ultima Alteracao: 21/06/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 67 (Concretos Vico)
;Ultima Alteracao: 02/07/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes pegar pre‡o na tabela, inclusao modelo 36A
;Ultima Alteracao: 18/08/2010 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo Estrutura (Campo Concentrador), InclusÆo Modelo 36B
;Ultima Alteracao: 02/09/2010 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 36C
;Ultima Alteracao: 15/09/2010 por Karina Andrade
;Motivo Alteracao: Ajustes codigo cliente confec‡Æo
;Ultima Alteracao: 22/10/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao do Modelo 36R (Rolamentos Total)
;Ultima Alteracao: 22/11/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 68 (Agel)
;Ultima Alteracao: 03/01/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas 
;Ultima Alteracao: 21/01/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 69 (Queops)
;Ultima Alteracao: 21/01/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 70 (XT5)
;Ultima Alteracao: 21/01/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 71 (Zuggy-Zi)
;Ultima Alteracao: 18/02/2011 por Bruno Carvalho
;Motivo Alteracao: Novo Layout para Visualiza‡Æo de Etiquetas
;Ultima Alteracao: 18/02/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 72 (Ozanam)
;Ultima Alteracao: 11/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes imprimir na ordem digitada          
;Ultima Alteracao: 30/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Isabela Garcia Nova Codifica‡Æo
;Ultima Alteracao: 06/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao do Modelo 73 (PintaCor)          
;Ultima Alteracao: 12/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novas fun‡äes para confec‡äes  
;Ultima Alteracao: 26/05/2011 por Bruno Carvalho
;Motivo Alteracao: Modelo 74: Filtra CondPgto da Tabela de Pre‡o . Cliente 0293 (C¢pia Mod55)
;Ultima Alteracao: 13/06/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes no Modelo 63, para antigo modelo 36R (Substituido)
;Ultima Alteracao: 21/06/2011 por Karina Andrade
;Motivo Alteracao: Add Modelo 75, ajustes digita‡Æo Codigo do item
;Ultima Alteracao: 22/07/2011 por Karina Andrade
;Motivo Alteracao: Add Modelo 76 e 77, copia 75 - ajustes de tamanho e colunas
;Ultima Alteracao: 15/09/2011 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 78 (ModaMil)
;Ultima Alteracao: 16/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Modelo 56
;Ultima Alteracao: 19/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Modelo 56 e inclusao 79, etiqueta 79=56 com pre‡o
;Ultima Alteracao: 07/02/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 80
;Ultima Alteracao: 10/05/2012 por Karina Andrade
;Motivo Alteracao: Modelo 81(C¢pia Modelo 74)
;Ultima Alteracao: 15/05/2012 por Karina Andrade
;Motivo Alteracao: Alterado Modelo 81 reajustado, impressÆo por Script 
;Ultima Alteracao: 18/05/2012 por Karina Andrade
;Motivo Alteracao: Add Modelo 82 "0222" 
;Ultima Alteracao: 18/06/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Selecao() - add TG_MESANO para ET_Z001C
;Ultima Alteracao: 1/08/2012 por Kamila Gomes
;Motivo Alteracao: InclusÆo Sys_codigo_cliente para ET_z002B OAZ's
;Ultima Alteracao: 18/05/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 83 "0243" 
;Ultima Alteracao: 10/08/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 84 "GDA" 
;Ultima Alteracao: 15/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes CODIGO_CLIENTE "0243"  
;Ultima Alteracao: 16/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes ConfOpcoes("Gravar")
;Ultima Alteracao: 22/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes para Modelo 02 quando for empresa "0112"
;Ultima Alteracao: 21/09/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 85 "Moreira & Silva" 
;Ultima Alteracao: 25/09/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes ConfOpcoes("Gravar")  
;Ultima Alteracao: 02/10/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes ConfOpcoes("Gravar") e ao Carregar as Variaveis da Escolha da Op‡Æo da Etiqueta
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes LimpaRodape() 
;Ultima Alteracao: 23/05/2016 por Kamila Gomes
;Motivo Alteracao: Ajuste campo Valor IPI por Unidade para Comissao Item                 
;Ultima Alteracao: 29/09/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes #0388# -> PegaCodigoRaiz()
;Ultima Alteracao: 03/12/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes #0390# -> PegaCodigoRaiz()

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()

While True
  End
  Switch
    Case FORMU=3 : Down Down
    OtherWise    : Down
  EndSwitch
  Moveto [Codigo do Item]

  SetaCorRegistro("Editar")
  While True

  TECLA="F1=Tabelas"
  AguardaTeclasPadrao()


    If RetVal=-33
       Then Echo Normal
            Echo Off
            ShowPopup " Fun‡”es " CENTERED                           
             "F4 ~V~isualiza‡äes   " : " Definir diferente visualiza‡Æo de dados " : "F4",       
             "F5 ~L~impar          " : " Limpar lista de Itens                   " : "F5",
             "F6 ~I~mprimir        " : " Imprimir etiquetas                      " : "F6",
             "F7 ~S~ele‡„o         " : " Sele‡„o de Itens                        " : "F7",
             "F8 ~T~abela de Pre‡o " : " Informar a Tabela de Pre‡o              " : "F8",
             "~C~ancelar           " : " Cancelar a Opera‡„o                     " : "CANCELAR"
            EndMenu
             To MenuVar

            echo off
            If MenuVar="CANCELAR" or MenuVar="Esc"
                Then Loop                                       
            EndIf

            RetVal=MenuVar
    EndIf

 Switch
    Case RetVal="F1":
         If Field()="Codigo do Item"
            Then Moveto [Lookup_Item]
                 CONSULTAF1()
                 [Codigo do Item]=[]
                 []=""
                 Moveto [Codigo do Item]
         EndIf 
    Case RetVal="F3": SemFicha()
    Case RetVal=-94 : MsgTeclasPadrao()  
    Case RetVal="F5":
         ConfGeral("Confirma a exclus„o dos registro desta relac„o ?")
         If OK="S"
             Then Del
                  Limpar()
         EndIf
         QuitLoop
    Case RetVal="F7":
         Del
         If FORMU=2
            Then If Not IsAssigned(VSDGTABELA) Or
                    IsBlank(VSDGTABELA)
                    Then Mensagem("Selecione uma tabela de pre‡o ! ")
                         QuitLoop
                 EndIf
         EndIf
         Selecao()
         QuitLoop
    Case RetVal="F6":
         Del
         If Not IsEmpty("Re_0010")
            Then Imprimir()
         EndIf
         QuitLoop
    Case RetVal="F1":
         If Field()="Codigo do Item"
            Then CONSULTAF1()
         EndIf
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         While True
           PAGINA("Re_0010","MR")
           If EDITAR="S"
              Then CHAVE=0
                   Controla_EdicaoC()
              Else If EXCLUIR="S"
                      Then If QuerExcluir("")
                              Then DEL
                              Else UnLockRecord
                           EndIf
                      Else QuitLoop
                   EndIf
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop
    Case RetVal="F8":
         Del
         TabelaPreco()
         QuitLoop
    Case Retval="F4":
         Del

        Echo Normal
        Echo Off
        ShowPopup " Fun‡”es " CENTERED                           
         "~1~ PadrÆo          " : " Visualizador padrÆo                     " : "VIS1",       
         "~2~ Pre‡o           " : " Visualizador com pre‡o                  " : "VIS2",
         "~3~ Fabrica‡Æo      " : " Visualizador com data fabrica‡Æo        " : "VIS3",
         "~C~ancelar          " : " Cancelar a Opera‡„o                     " : "CANCELAR"
        EndMenu
         To MenuVar
        
        echo off
        If MenuVar="CANCELAR" or MenuVar="Esc"
            Then QuitLoop                                       
        EndIf
        RetVal=MenuVar
        
        Switch
          Case MenuVar="VIS1" : Pickform "F" FORMU=1
          Case MenuVar="VIS2" : Pickform "1" FORMU=2
          Case MenuVar="VIS3" : Pickform "2" FORMU=3
        EndSwitch
        QuitLoop
    Case Retval="ESC":
         CHAVE=9
         Del
         Return
    Case RetVal="ENTER":
         If IsBlank([])Then Loop EndIf

         If FORMU=2
            Then If Not IsAssigned(VSDGTABELA) Or
                    IsBlank(VSDGTABELA)
                    Then Mensagem("Selecione uma tabela de pre‡o ! ")
                         Del
                         QuitLoop
                 EndIf
         EndIf
         CODIGO=AlinhM([],10)
         Moveto [Lookup_Item]
         If Not Busca_Lookup("Codigo do Item",CODIGO,"")
          Then Moveto [Codigo do Item]
               Loop
          Else [Lookup_Item]=CODIGO     
         EndIf  
         Moveto [Codigo do Item]
         Del
         Locate CODIGO
         If Retval
            Then CHAVE=0
            Else CHAVE=1
                 End 
                 Switch
                   Case FORMU=3 : Down Down
                   OtherWise    : Down
                 EndSwitch
                 [Lookup_Item]=CODIGO
                 [Codigo do Item]=CODIGO
                 UnLockRecord
                 Locate CODIGO

                 If FORMU=2
                    Then 
                         coditem=CODIGO
                         If Not IsBlank([Codigo da Grade])
                            Then CodItem=PegaCodigoRaiz(CodItem)
                         EndIf
                         If SYS_CODIGO_CLIENTE="0239" Or
                            SYS_CODIGO_CLIENTE="0388" Or
                            SYS_CODIGO_CLIENTE="0171" Or
                            SYS_CODIGO_CLIENTE="0390" Or
                            SYS_CODIGO_CLIENTE="0345"
                            Then CodItem=PegaCodigoRaiz(CodItem)
                         EndIf

                         PRECO=BlankNum()
                         Moveto "\\sistemas\\vendas\\Tbprite"
                         Moveto [Codigo da tabela]
                         LOCATE VSDGTABELA,coditem
                         If Retval
                            Then PRECO=[Preco Unitario]
                         EndIf        
                         Moveto "Re_0010"
                         If IsBlank(PRECO)
                            Then Mensagem("Este Item esta sem pre‡o na tabela escolhida ! ")
                                 Del
                                 QuitLoop
                            Else [Preco Unitario]=PRECO
                         EndIf
                         Return   
                 EndIf
         EndIf
         If Not IsLockRecord()
            Then Return
         EndIf

         Quitloop
    EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitar Quantidade                                              *
;*******************************************************************************
Proc DIGITA()
Moveto [Quantidade    ]
While True

  TECLA=" Esc=Retornar  "

  If CHAVE=0
     Then TECLA=TECLA+"Del=Excluir  "
  EndIf

  Prompt TECLA

  Wait Field
       Until "ESC","ENTER","DEL","FIELDVIEW","F35"

  Switch
  Case Retval="ESC":
       If QuerDesfazer("")
          Then If CHAVE=1
                  Then Del
                  Else Undo
               EndIf
               CHAVE=9
               QuitLoop
       EndIf
  Case Retval="ENTER":
       Switch
         Case Field()="Quantidade":
              If IsBlank([])
                 Then []=1
              EndIf
              [Aliquota de IR]=Recno()  ;Impor Ordem Digitacao
              QuitLoop
       EndSwitch
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVE=0
          Then If QuerExcluir("")
                  Then DEL
                       QuitLoop
               EndIf
       EndIf
  EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitar Dados Fabricacao                                        *
;*******************************************************************************
Proc DIGITA3()
Moveto [Data_Fabricacao    ]
While True

  TECLA=" Esc=Retornar  "

  If CHAVE=0
     Then TECLA=TECLA+"Del=Excluir  "
  EndIf

  Switch
   Case Field()="Data_Fabricacao": MSGCAMPO="Informe a data de fabrica‡Æo"
   Case Field()="Validade"       : MSGCAMPO="Informe a validade, campo LIVRE"
   Case Field()="Lote"           : MSGCAMPO="Informe o lote, campo LIVRE"
   Case Field()="Responsavel"    : MSGCAMPO="Informe a respons vel, campo LIVRE"
   OtherWise                     : MSGCAMPO=Field()
  EndSwitch

  Prompt TECLA

  Wait Field
    Message MSGCAMPO
       Until "ESC","ENTER","DEL","FIELDVIEW","F35"

  Switch
  Case Retval="ESC":
       Switch
         Case Field()="Data_Fabricacao":
           If QuerDesfazer("")
              Then If CHAVE=1
                      Then Del
                      Else Undo
                   EndIf
                   CHAVE=9
                   QuitLoop
           EndIf
         Case Field()="Validade"   : Moveto [Data_Fabricacao]
         Case Field()="Lote"       : Moveto [Validade]
         Case Field()="Responsavel": Moveto [Lote]
         Case Field()="Quantidade" : Moveto [Responsavel]
       EndSwitch
  Case Retval="ENTER":
       Switch
         Case Field()="Data_Fabricacao": Moveto [Validade]
         Case Field()="Validade"       : Moveto [Lote]
         Case Field()="Lote"           : Moveto [Responsavel]
         Case Field()="Responsavel"    : Moveto [Quantidade]
         Case Field()="Quantidade"     :
              If IsBlank([])
                 Then []=1
              EndIf
              [Aliquota de IR]=Recno()  ;Impor Ordem Digitacao
              QuitLoop
       EndSwitch
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVE=0
          Then If QuerExcluir("")
                  Then DEL
                       QuitLoop
               EndIf
       EndIf
  EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina Limpar Registros                                                     *
;*******************************************************************************
Proc Limpar()
Aguarde("Aguarde, Excluindo registros")
While RecordStatus("New")=False
  Del
EndWhile
EndProc

;*******************************************************************************
;* Rotina para a escolha da tabela de Pre‡o                                                                    *
;*******************************************************************************
Proc SD_Dialog1(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"] =  27:
          Temp=False
          Switch
            Case Campo="TG_TABELA" :Campo="NO"
            Case Campo= "YES" or Campo="NO":Campo="TG_TABELA"
          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
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_TABELA"                     :
                         If Not Isblank(VSDGTABELA)
                            Then Campo="YES"
                         EndIf
                    Case Campo="YES" : AcceptDialog
                    Case Campo="NO"  : CancelDialog
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_TABELA":
     MSG_CAMPO="Informe a tabela de pre‡o a ser utilizada"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina -Tela Selecionar Tabela                                              *
;*******************************************************************************
Proc TabelaPreco()
LimpAguarde()
Do_It!
ClearAll

Echo Normal
Echo Off
ClearAll

VSDGTABELA  = ""
OP_SHOW="T"
ShowDialog "Tabela de Pre‡o" Proc "SD_Dialog1"
Trigger "OPEN","ARRIVE"
Key "F1","ENTER","ESC","TAB",
    -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
 @ 09,53 Height 07 Width 50

 Label  @ 00,00 "Tabela"  For "TG_TABELA"
 Accept @ 01,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
 Accept @ 01,10 Width 33 "A30" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB

 Pushbutton @ 03,10 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
 Pushbutton @ 03,24 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

EndDialog

ClearAll
CoEdit "Re_0010"
If FORMU=1
	 Then PickForm "F"
	 Else PickForm "1"
EndIf
EndProc  ;(Tabela Sele‡Æo)

;*******************************************************************************
;* 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"] =  27: 
          Temp=False
          Switch 
            ;** Selecao **
            Case Campo="TG_NREQ"           : Campo="NO"
            Case Campo="TG_NPED"           : Campo="TG_NREQ"
            Case Campo="TG_TIPOEST"        : Campo="TG_NPED"
            Case Campo="TG_FAMI"           : Campo="TG_TIPOEST"
            Case Campo="TG_GRP"            : Campo="TG_FAMI"
            Case Campo="TG_MARCA"          : Campo="TG_GRP"
            Case Campo="TG_REFERENCIA"     : Campo="TG_MARCA"
            Case Campo="TG_CODIGOI"        : Campo="TG_REFERENCIA"
            Case Campo="TG_CODIGOF"        : Campo="TG_CODIGOI"
            Case Campo="TG_MESANO"         : Campo="TG_CODIGOF"
            Case Campo="TG_QUANTIDADE"     : Campo="TG_MESANO" 
            
            ;** Imprimir **
            Case Campo="TG_OPETIQUETA"     : Campo="NO"
            Case Campo="TG_OPRELCODALFDIG" : Campo="TG_OPETIQUETA"

            Case Campo="YES" Or Campo="NO" :
                 If OP_SHOW="S"
                    Then Campo="TG_NREQ"
                    Else Campo="TG_OPETIQUETA"
                 EndIf
          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
          If Checa_TAG()
             Then Switch
                    ;** Selecao **
                    Case Campo="TG_NREQ"     : 
                         VSDGNREQ=ControlValue("TG_NREQ")
                         If Not IsBlank(VSDGNREQ)
                            Then VSDGNREQ=AlinhM(VSDGNREQ,6)
                                 Campo="YES"
                            Else Campo="TG_NPED"
                         EndIf   
                    Case Campo="TG_NPED"     :
                         VSDGNPED=ControlValue("TG_NPED")
                         If Not IsBlank(VSDGNPED)
                            Then VSDGNPED=AlinhM(VSDGNPED,6)
                                 Campo="YES"
                            Else Campo="TG_TIPOEST"
                         EndIf   
                    Case Campo="TG_TIPOEST"     : Campo="TG_FAMI"
                    Case Campo="TG_FAMI"        : Campo="TG_GRP"
                    Case Campo="TG_GRP"         : Campo="TG_MARCA"
                    Case Campo="TG_MARCA"       : Campo="TG_REFERENCIA"
                    Case Campo="TG_REFERENCIA"  : Campo="TG_CODIGOI"
                    Case Campo="TG_CODIGOI"     : Campo="TG_CODIGOF"
                    Case Campo="TG_CODIGOF"     : Campo="TG_MESANO"
                    Case Campo="TG_MESANO"      : Campo="TG_QUANTIDADE"
                    Case Campo="TG_TABELA"      : 
                         VSDGTABELA=ControlValue("TG_TABELA")
                         If Not Isblank(VSDGTABELA)
                            Then Campo="YES"
                         EndIf
                    Case Campo="TG_QUANTIDADE"  : 
                         VSDGQUANTIDADE=ControlValue("TG_QUANTIDADE")
                         If Not Isblank(VSDGQUANTIDADE)
                            Then Campo="YES" 
                         EndIf

                    ;** Imprimir **
                    Case Campo="TG_OPETIQUETA"     : Campo="TG_OPRELCODALFDIG"
                    Case Campo="TG_OPRELCODALFDIG" : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_OPETIQUETA":
     MSG_CAMPO="Selecione o op‡„o desejada !"
     TECLA    ="=Selecionar  "
  Case Campo="TG_QUANTIDADE":
     MSG_CAMPO="Informe a quantidade de repeti‡„o da etiqueta"
  Case Campo="TG_TABELA":
     MSG_CAMPO="Informe a tabela de pre‡o a ser utilizada"
  Case Campo="TG_NREQ":
     MSG_CAMPO="Informe o Lan‡amento de Requisi‡„o de entrada de produ‡„o"

EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao()
LimpAguarde()
Do_It!
ClearAll
Echo Normal
Echo Off

VSDGNREQ        = ""
VSDGNPED        = ""
VSDGTIPOEST     = ""
VSDGDESCTIPOEST = ""
VSDGFAMI        = ""
VSDGMARCA       = ""
VSDGGRP         = ""
VSDGCODIGOI     = ""
VSDGCODIGOF     = ""
VSDGMESANO      = ""

OP_SHOW="S"
ShowDialog "Sele‡„o de Registros a Incluir" Proc "SD_Dialog"
Trigger "OPEN","ARRIVE"
Key "F1","ENTER","ESC","TAB",
    -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
 @ 01,01 Height 21 Width 55

  Label  @ 00,00 "Requisi‡„o"  For "TG_NREQ"
  Accept @ 01,01 Width 09 "A6"  Picture "#*#" Tag "TG_NREQ" To VSDGNREQ

  Label  @ 00,12 "Pedido"  For "TG_NPED"
  Accept @ 01,13 Width 09 "A6"  Picture "#*#" Tag "TG_NPED" To VSDGNPED

  Label  @ 02,00 "Tipo do Estoque"  For "TG_TIPOEST"
  Accept @ 03,01 Width 04 "A1"  Picture "!" Tag "TG_TIPOEST" To VSDGTIPOEST
  Accept @ 03,06 Width 25 "A30"  Picture "!*!" Tag "TG_DESCTIPOEST" To VSDGDESCTIPOEST

  Label  @ 04,00 "Familia"  For "TG_FAMI"
  Accept @ 05,01 Width 07 "A3"  Picture "#*#" Tag "TG_FAMI" To VSDGFAMI
  Accept @ 05,09 Width 28 "A25" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

  Label  @ 06,00 "Grupo"  For "TG_GRP"
  Accept @ 07,01 Width 07 "A3"  Picture "#*#" Tag "TG_GRP" To VSDGGRP
  Accept @ 07,09 Width 28 "A25" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

  Label  @ 08,00 "Marca"  For "TG_MARCA"
  Accept @ 09,01 Width 07 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
  Accept @ 09,09 Width 28 "A25" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

  Label  @ 10,00 "Faixa de C¢digo" For "TG_CODIGOI"
  Label  @ 11,02 "de" For "TG_CODIGOI"
  Accept @ 11,06 Width 13 "A10"  Picture "#*#" Tag "TG_CODIGOI" To VSDGCODIGOI
  Label  @ 11,19 "at‚" For "TG_CODIGOF"
  Accept @ 11,24 Width 13 "A10"  Picture "#*#" Tag "TG_CODIGOF" To VSDGCODIGOF

  Label  @ 10,38 "Referˆncia"  For "TG_REFERENCIA"
  Accept @ 11,39 Width 13 "A10" Picture "#*#" Tag "TG_REFERENCIA"     To VSDGREFERENCIA

  Label  @ 12,00 "Tabela"  For "TG_TABELA"
  Accept @ 13,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
  Accept @ 13,10 Width 33 "A30" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB

  Label  @ 14,00 "Mes/Ano"  For "TG_MESANO"
  Accept @ 15,01 Width 10 "A07"  Picture "##;.####" Tag "TG_MESANO"  To VSDGMESANO

  Label  @ 14,11 "Quantidade" For "TG_QUANTIDADE"
  Accept @ 15,12 Width 10 "S"  Tag "TG_QUANTIDADE" To VSDGQUANTIDADE

  Pushbutton @ 17,10 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
  Pushbutton @ 17,24 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

EndDialog
If RetVal
   Then LimpaRodape(0)
        Aguarde("Aguarde, Selecionando registros")
        ClearAll
        Switch
         Case Not IsBlank(VSDGNREQ):
          {Ask} {RqCabeca}
          Moveto [Numero do Lancamento   ] Example "nlanc" TypeIn ", ~VSDGNREQ"
          Moveto [Tipo de Movimento      ] TypeIn "E"
          Moveto [Tipo de Operacao       ] TypeIn "P"
          {Ask} {RqItem}
          Moveto [Numero do Lancamento   ] Example "nlanc"
          Moveto [Codigo do Item         ] Check 
          Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
          Do_It!
          ClearAll

          CoEdit "Answer"
          Scan
            If Not ISBlank([Codigo do Item])
               Then [Codigo do Item]=MudaCodigoPara([Codigo do Item],"P")
            EndIf
          EndScan
          Do_It!
          ClearAll
         Case Not IsBlank(VSDGNPED): 
          {Ask} {\\Sistemas\\Vendas\\PedidoI}
          Moveto [Numero do Pedido       ] TypeIn "~VSDGNPED"
          Moveto [Codigo do Item         ] Check 
          Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
          Do_It!
          ClearAll
         OtherWise:
          {Ask} {Itens}
          Moveto [Codigo do Item         ] Check TypeIn ">=~VSDGCODIGOI, <=~VSDGCODIGOF"
          Moveto [Tipo do Item           ]
          Switch
             Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
             Case VSDGTIPOEST = "2"       : TypeIn "P or T"
             Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
             OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
          EndSwitch
          Moveto [Codigo da Familia] TypeIn "~VSDGFAMI.."
          Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
          Moveto [Codigo da Marca  ] TypeIn "~VSDGMARCA.."
          Moveto [Referencia       ] TypeIn "~VSDGREFERENCIA.."
          Do_It!
          ClearAll
        EndSwitch

        If IsEmpty("Answer")
           Then Mensagem("N„o exite registro conforme sele‡„o !")
           Else
                View "\\Sistemas\\Vendas\\Tbprite"
                View "Re_0010"
                CoEdit "Answer"
                Scan
                  PRECO=BlankNum()
                  If FORMU=2
                     Then Moveto "\\sistemas\\vendas\\Tbprite"
                          Moveto [Codigo da tabela]
                          LOCATE VSDGTABELA,[Answer->Codigo do Item]
                          If Retval
                             Then PRECO=[Preco Unitario        ]

                          EndIf
                  EndIf

                  Moveto "Re_0010"
                  End Down
                  [Lookup_Item       ]=[Answer->Codigo do Item]
                  [Codigo do Item    ]=[Answer->Codigo do Item]
                  Switch
                    Case Not ISBlank(VSDGNREQ):
                      [Quantidade    ]=[Answer->Quantidade    ]
                    Case Not ISBlank(VSDGNPED):
                      [Quantidade    ]=[Answer->Quantidade    ]
                    OtherWise:
                      [Quantidade        ]=VSDGQUANTIDADE
                  EndSwitch    
                  If FORMU=2
                     Then [Preco Unitario    ]=PRECO
                  EndIf
                  [Aliquota de IR    ]=Recno() ;Impor Ordem Digitacao
                  UnLockRecord

                  Moveto "Answer"
                EndScan
                Do_It!
                ClearAll
        EndIf
EndIf
ClearAll

CoEdit "Re_0010"
If FORMU=1
	 Then PickForm "F"
	 Else PickForm "1"
EndIf
EndProc

;*******************************************************************************
;* Rotina Impressao                                                            *
;*******************************************************************************
Proc Imprimir()
LimpaRodape(0)
Do_It!
ClearAll

While True

  OP_SHOW="I"
  ShowDialog "Selecione o Modelo de Etiqueta" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 01,01 Height 20 Width 80

    PickArray @2,01 Height 11 width 75
     Columns 1
      Array_OpEtiquetas
       Tag "TG_OPETIQUETA"
        To VSDGOPETIQUETA
    Label @ 00,00 "Op‡”es de Etiqueta"  For "TG_OPETIQUETA"
    Label @ 01,00 "Codigo  Col  Dimens„o/cm   Impressora          Descri‡„o"  For "TG_OPETIQUETA"

    Label  @ 13,00 "Ordem" For "TG_OPRELCODALFDIG"
    Accept @ 14,01 Width 04 "A1"  Picture "1,2,3" Tag "TG_OPRELCODALFDIG" To VSDGOPRELCODALFDIG
    Accept @ 14,06 Width 15 "A12" Picture "!*!" Tag "TG_NOMOPRELCODALFDIG" To VSDGNOMOPRELCODALFDIG

    Pushbutton @ 16,20 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 16,34 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  
  MODETIQ=RTrim(SubStr(Array_OpEtiquetas[VSDGOPETIQUETA],1,3))

  If MODETIQ="---"
     Then Mensagem("Modelo Inv lido !")
          Loop
  EndIf
    
  If MODETIQ="25"  Or  ;Play Et_z*
     MODETIQ="35"  Or
     MODETIQ="36"  Or
     MODETIQ="36A" Or
     MODETIQ="36B" Or
     MODETIQ="36C" Or   
     MODETIQ="63"  Or ;Alterado para 63 (Antes 36R)                            
     MODETIQ="37"  Or
     MODETIQ="38"  Or
     MODETIQ="45"  Or
     MODETIQ="46"  Or
     MODETIQ="47"  Or
     MODETIQ="48"  Or
     MODETIQ="49"  Or
     MODETIQ="51"  Or
     MODETIQ="52"  Or
     MODETIQ="53"  Or
     MODETIQ="54"  Or
     MODETIQ="56"  Or
     MODETIQ="59"  Or
     MODETIQ="60"  Or
     MODETIQ="61"  Or
     MODETIQ="62"  Or
     MODETIQ="66"  Or
     MODETIQ="68"  Or
     MODETIQ="68A" Or
     MODETIQ="69"  Or
     MODETIQ="70"  Or
     MODETIQ="71"  Or
     MODETIQ="73"  Or                  
     MODETIQ="75"  Or
     MODETIQ="78"  Or
     MODETIQ="79"  Or
     MODETIQ="80"  Or
     MODETIQ="81"  Or
     MODETIQ="82"  Or
     MODETIQ="83"  Or
     MODETIQ="84"  Or
     MODETIQ="85"  
     Then MSGDISPOSITIVO="Etiqueta"
          DispositivoI("ETQ")
          If OK="" Then Loop EndIf

          AGUARDE("Aguarde, Gerando Relat¢rio")
          {Ask} {Re_0010} Check
          Do_It!
          ClearAll

          If VSDGOPRELCODALFDIG  = "1" Then Sort "Answer" On "Codigo do Item"     EndIf
          If VSDGOPRELCODALFDIG  = "2" Then Sort "Answer" On "Descricao do Item"  EndIf
          If VSDGOPRELCODALFDIG  = "3" 
             Then Empty("Answer")
                  Add "Re_0010" "Answer"    
          EndIf

          If MODETIQ="25" Then Play "Et_Cr"                             EndIf
          If MODETIQ="35" Then Play "Et_Z001"                           EndIf
          If MODETIQ="36"
             Then Switch ;Alterado Karina
                    Case SYS_CODIGO_CLIENTE="0320"  : Play "Et_z002B"
                    Case SYS_CLIENTE_CONFEC="0185" Or
                         SYS_CLIENTE_CONFEC="0243"  : Play "Et_Z002B"  
                    OtherWise                       : Play "Et_Z002"
                  EndSwitch
          EndIf
          If MODETIQ="36A" Then Play "Et_Z002C"                          EndIf
          If MODETIQ="36B" Then Play "Et_Z002D"                          EndIf
          If MODETIQ="36C" Then Play "Et_Z002E"                          EndIf
          If MODETIQ="63"  Then Play "Et_Z002R"                          EndIf
          If MODETIQ="37"  Then Play "Et_Z003"                           EndIf
          If MODETIQ="38"  Then Play "Et_Z004"                           EndIf
          If MODETIQ="45"  Then Play "Et_Z005"                           EndIf
          If MODETIQ="46"  Then Play "Et_Z006"                           EndIf
          If MODETIQ="47"  Then Play "Et_Z007"                           EndIf
          If MODETIQ="48"  Then Play "Et_Z008"                           EndIf
          If MODETIQ="49"  Then Play "Et_Z008B"                          EndIf
          If MODETIQ="51"  Then Play "Et_Z009A"                          EndIf
          If MODETIQ="52"  Then Play "Et_Z009B"                          EndIf
          If MODETIQ="53"  Then Play "Et_Z009C"                          EndIf
          If MODETIQ="54"  Then Play "Et_E0204"                          EndIf
          If MODETIQ="56"  Then Play "Et_Z001B"                          EndIf
          If MODETIQ="59"  Then Play "Et_Z001C"                          EndIf
          If MODETIQ="66"  Then Play "Et_Z012"                           EndIf
          If MODETIQ="68"  Then Play "Et_CB001"                          EndIf
          If MODETIQ="82"  Then Play "Et_Z001F"                          EndIf
          If MODETIQ="84"  Then Play "Et_Z014"                           EndIf
          If MODETIQ="85"  Then Play "Et_Z015"                           EndIf
          If MODETIQ="83"  
             Then Moveto "Answer"
                  ClearImage
                  
                  {Ask} {Answer} 
                  Moveto [Codigo da Marca] TypeIn "Changeto Blank"
                  Do_It!
                  ClearImage
                  
                  {Ask} {Answer} 
                  Moveto [Codigo do Item ] Example "CodI"
                  Moveto [Codigo da Marca] TypeIn "Changeto " Example "Tam"
                  
                  {Ask} {\\Sistemas\\Estoque\\Itens} 
                  Moveto [Codigo do Item] Example "CodI"
                  Moveto [DTamanho      ] Example "Tam"
                  Do_It!
                  ClearAll
                  
                  Play "Et_Z0243"
          EndIf
                            
          If MODETIQ="68A" 
             Then Moveto "Answer"
                  ClearImage
                  {Ask} {Answer}
                  Moveto [Comissao do Item     ] TypeIn "Changeto Blank" 
                  Moveto [Preco Unitario       ] TypeIn "Changeto Blank" 
                  Do_It!
                  ClearImage
                  
                  View "\\Sistemas\\Vendas\\TbprIte"
                  Coedit "Answer"
                  Scan
                    Moveto "Answer" 
                    For Tabela_Preco from 1 to 2
                      Switch
                        Case Tabela_Preco=1 : CODIGO_TABELA_PRECO="00001"
                        Case Tabela_Preco=2 : CODIGO_TABELA_PRECO="00002"
                      EndSwitch  
                      
                      PRECO=BlankNum()                                    
                      Moveto "\\Sistemas\\Vendas\\TbprIte" 
                      Moveto [Codigo da Tabela]
                      Locate CODIGO_TABELA_PRECO,[Answer->Codigo do Item]
                      If RetVal
                         Then PRECO=[Preco Unitario]
                      EndIf    
                      
                      Moveto "Answer"
                      Switch
                        Case Tabela_Preco=1 : [Preco Unitario       ]=PRECO  ; Pre‡o a Vista
                        Case Tabela_Preco=2 : [Comissao do Item     ]=PRECO  ; Pre‡o a Prazo 
                      EndSwitch       
                    EndFor
                  EndScan
                  Do_It!
                  Play "Et_CB004"                         
          EndIf   
                             
          If MODETIQ="69"  Then Play "Et_CB002"                          EndIf
          If MODETIQ="70"  Then Play "Et_Z003A"                          EndIf
          If MODETIQ="71"  Then Play "Et_Z001D"                          EndIf
          If MODETIQ="73"  Then Play "Et_Z144"                           EndIf
          If MODETIQ="78"  Then Play "Et_Z051"                           EndIf
          If MODETIQ="80"  Then Play "Et_CB003"                          EndIf
 
          If MODETIQ="79" 
             Then If Not IsAssigned(VSDGTABELA)
                     Then Mensagem("Tabela de Pre‡o nÆo foi selecionda !")
                     Else Play "Et_Z001E"
                  EndIf
          EndIf

          If MODETIQ="60"
             Then If Not IsAssigned(VSDGTABELA)
                     Then Mensagem("Tabela de Pre‡o nÆo foi selecionda !")
                     Else Play "Et_Z010"
                  EndIf
          EndIf
          If MODETIQ="61"
             Then If Not IsAssigned(VSDGTABELA)
                     Then Mensagem("Tabela de Pre‡o nÆo foi selecionda !")
                     Else Play "Et_Z011"
                  EndIf
          EndIf
          If MODETIQ="75"
             Then If Not IsAssigned(VSDGTABELA)
                     Then Mensagem("Tabela de Pre‡o nÆo foi selecionda !")
                     Else Play "Et_Z013"
                  EndIf
          EndIf
          If MODETIQ="62"  Then Play "Et_Z011B"                          EndIf
          If MODETIQ="64"  Then Play "Et_Z010B"                          EndIf
          
          If MODETIQ="81"
             Then If Not IsAssigned(VSDGTABELA)
                     Then Mensagem("Tabela de Pre‡o nÆo foi selecionda !")
                     Else View "\\sistemas\\vendas\\Tbprcpg"
                          Moveto [Codigo da tabela]
                          LOCATE VSDGTABELA
                          If RetVal
                             Then DESC_VISTA = [Descricao CondPagto] 
                                  TAXA_VISTA = [Taxa Financeira]
                                  Skip
                                  If VSDGTABELA=[Codigo da tabela]
                                     Then DESC_PRAZO = [Descricao CondPagto]
                                  EndIf
                             Else DESC_VISTA = ""
                                  DESC_PRAZO = ""
                                  TAXA_VISTA = BlankNum()
                          EndIf 
                          Play "Et_0316"
                  EndIf
          EndIf          
     Else Dispositivo()
          If OK="" Then Loop EndIf                          ; Report

          AGUARDE("Aguarde, Gerando Relat¢rio")
          {Ask} {Re_0010} Check
          Do_It!
          ClearAll

          Empty("Answer")

          View "Answer"
          CoEdit "Re_0010"
          Scan
            CopyToArray REG
            Moveto "Answer"
            For I From 1 to [Re_0010->Quantidade]
              End
              Down
              CopyFromArray Reg
            EndFor
            Moveto "Re_0010"
          EndScan
          Do_It!
          ClearAll

          If VSDGOPRELCODALFDIG  = "1" Then Sort "Answer" On "Codigo do Item"     EndIf
          If VSDGOPRELCODALFDIG  = "2" Then Sort "Answer" On "Descricao do Item"  EndIf
;;;;;;;;;;;;;;;;;;If VSDGOPRELCODALFDIG  = "3" Then Sort "Answer" On "Aliquota de IR"     EndIf

          If MODETIQ="01" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "1"  "Answer" "R" EndIf         
          If MODETIQ="03" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "3"  "Answer" "R" EndIf
          If MODETIQ="04" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "4"  "Answer" "R" EndIf
          If MODETIQ="05" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "5"  "Answer" "R" EndIf
          If MODETIQ="06" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "6"  "Answer" "R" EndIf
          If MODETIQ="07" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "7"  "Answer" "R" EndIf
          If MODETIQ="08" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "8"  "Answer" "R" EndIf
          If MODETIQ="09" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "9"  "Answer" "R" EndIf
          If MODETIQ="20" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "13" "Answer" "R" EndIf
          If MODETIQ="23" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "11" "Answer" "R" EndIf
          If MODETIQ="24" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "10" "Answer" "R" EndIf
          If MODETIQ="26" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "12" "Answer" "R" EndIf
          If MODETIQ="27" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "14" "Answer" "R" EndIf
          If MODETIQ="28" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "14" "Answer" "R" EndIf
          If MODETIQ="29" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "2"  "Answer" "R" EndIf
          If MODETIQ="30" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "3"  "Answer" "R" EndIf
          If MODETIQ="31" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "4"  "Answer" "R" EndIf
          If MODETIQ="32" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "5"  "Answer" "R" EndIf
          If MODETIQ="33" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "6"  "Answer" "R" EndIf
          If MODETIQ="34" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "8"  "Answer" "R" EndIf
          If MODETIQ="39" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "9"  "Answer" "R" EndIf
          If MODETIQ="40" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "R"  "Answer" "R" EndIf
          If MODETIQ="41" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "R"  "Answer" "R" EndIf
          If MODETIQ="42" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010c" "R"  "Answer" "R" EndIf
          If MODETIQ="43" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010c" "1"  "Answer" "R" EndIf
          If MODETIQ="44" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "10" "Answer" "R" EndIf
          If MODETIQ="50" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "R"  "Answer" "R" EndIf 
          If MODETIQ="55" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "1"  "Answer" "R" EndIf
          If MODETIQ="58" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "11" "Answer" "R" EndIf
         ;If MODETIQ="63" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "12" "Answer" "R" EndIf
          If MODETIQ="65" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "13" "Answer" "R" EndIf
          If MODETIQ="67" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010c" "7"  "Answer" "R" EndIf
          If MODETIQ="72" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "2"  "Answer" "R" EndIf
          If MODETIQ="74" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "3"  "Answer" "R" EndIf
          If MODETIQ="76" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "4"  "Answer" "R" EndIf
          If MODETIQ="77" Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "5"  "Answer" "R" EndIf
          
          If MODETIQ="02" And SYS_CODIGO_CLIENTE<>"0112"
             Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "2"  "Answer" "R"
          EndIf
          
          If MODETIQ="74" or MODETIQ="76" or MODETIQ="77"
             Then If Not IsAssigned(VSDGTABELA)
                     Then Mensagem("Tabela de Pre‡o nÆo foi selecionda !")
                          QuitLoop
                     Else View "\\sistemas\\vendas\\Tbprcpg"
                          Moveto [Codigo da tabela]
                          LOCATE VSDGTABELA
                          If RetVal
                             Then DESC_VISTA = [Descricao CondPagto] 
                                  TAXA_VISTA = [Taxa Financeira]
                                  Skip
                                  If VSDGTABELA=[Codigo da tabela]
                                     Then DESC_PRAZO = [Descricao CondPagto]
                                  EndIf
                             Else DESC_VISTA = ""
                                  DESC_PRAZO = ""
                                  TAXA_VISTA = BlankNum()
                          EndIf 
                  EndIF
          EndIf
          
          If MODETIQ="02" And SYS_CODIGO_CLIENTE="0112"
             Then Play "ET_0112"
             Else IMPRIREL("Answer","R")
          EndIf              
  EndIf

  Delete "Answer"
  ConfOpcoes("Gravar")

  QuitLoop
EndWhile
ClearAll

CoEdit "Re_0010"
If FORMU=1
   Then PickForm "F"
   Else PickForm "1"
	 EndIf
EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ConfOpcoes(Opcao)
Private Opcao
                         
Switch
  Case Opcao="Ler":
       Array Array_OpEtiquetas[80]
       Array_OpEtiquetas[01]="01      1    8,9x2,4 cm"
       Array_OpEtiquetas[02]="04      1    8,9x2,4 cm"
       Array_OpEtiquetas[03]="07      1    8,9x2,4 cm"
       Array_OpEtiquetas[04]="30      1    8,9x2,4 cm                       c/ Des.Comp"
       Array_OpEtiquetas[05]="34      1    8,9x2,4 cm                       c/ Codigo/Classe/PEI"
       Array_OpEtiquetas[06]="40      1    8,9x2,4 cm"
       Array_OpEtiquetas[07]="02      2    8,9x2,4 cm"
       Array_OpEtiquetas[08]="08      2    8,9x2,4 cm"
       Array_OpEtiquetas[09]="05      2    8,9x2,4 cm"
       Array_OpEtiquetas[10]="31      2    8,9x2,4 cm                       c/ Cod/UN"
       Array_OpEtiquetas[11]="41      2    8,9x2,4 cm                       c/ Preco"
       Array_OpEtiquetas[12]="23      2    8,9x2,4 cm                       c/ Pre‡o [Jato Tinta]"
       Array_OpEtiquetas[13]="50      2    8,9x2,4 cm                       Referencia"
       Array_OpEtiquetas[14]="03      3    8,9x2,4 cm"
       Array_OpEtiquetas[15]="06      3    8,9x2,4 cm"
       Array_OpEtiquetas[16]="09      3    8,9x2,4 cm"
       Array_OpEtiquetas[17]="27      1    9,9x3,6 cm                       c/ Pre‡o"
       Array_OpEtiquetas[18]="28      2    9,9x3,6 cm                       c/ Pre‡o"
       Array_OpEtiquetas[19]="33      5    3,8x2,1 cm                       c/ C¢digo de Barras"
       Array_OpEtiquetas[20]="42      1    8,0x3,5 cm                       c/ Preco"
       Array_OpEtiquetas[21]="43      1    8,0x3,5 cm                       S/ Preco"
       Array_OpEtiquetas[22]="26      2    7,0x2,4 cm"
       Array_OpEtiquetas[23]="55      2    7,0x2,4 cm                       c/Preco e Cod. For."
       Array_OpEtiquetas[24]="74      2    7,0x2,4 cm                       c/Preco - VISTA/PRAZO"
       Array_OpEtiquetas[25]="76      2    9,0x2,4 cm                       c/Preco - VISTA/PRAZO" 
       Array_OpEtiquetas[26]="81      2   10,1x2,5 cm                       c/Preco - VISTA/PRAZO"             
       Array_OpEtiquetas[27]="77      1    9,0x2,4 cm                       c/Preco - VISTA/PRAZO"       
       Array_OpEtiquetas[28]="32      4    4,9x1,5 cm                       c/ Cod/Des/Marca/Loc"
       Array_OpEtiquetas[29]="67      1    1,9x1,5 cm                       c/ Cod/Des/Marca/Loc"
       Array_OpEtiquetas[30]="65      4    4,9x1,5 cm                       c/ Cod/Des/Marca/Loc/Pre‡o"
       Array_OpEtiquetas[31]="44      4    4,9x1,5 cm                       c/ Preco"
       Array_OpEtiquetas[32]="39      5    2,5x1,5 cm                       Embalagem"
       Array_OpEtiquetas[33]="29      5    2,5x1,5 cm                       s/ Pre‡o"
       Array_OpEtiquetas[34]="58      5    2,5x1,5 cm                       Tm/Cor/Pre‡o"
       Array_OpEtiquetas[35]="24      1                                     c/Pre‡o+DescrComplem"
       Array_OpEtiquetas[36]="------------------------------------------------------------------------"
       Array_OpEtiquetas[37]="20      5    3,8x2,1 cm   Laser/Jato Tinta"
       Array_OpEtiquetas[38]="68      3    6,4x2,5 cm   Laser/Jato Tinta    33 Etiquetas" 
       Array_OpEtiquetas[39]="68A     3    6,4x2,5 cm   Laser/Jato Tinta    33 Etiquetas c/Pre‡o"
       Array_OpEtiquetas[40]="69      3    6,6x2,5 cm   Laser/Jato Tinta    30 Etiquetas" 
       Array_OpEtiquetas[41]="80      3    3,8x2,1 cm   Laser/Jato Tinta    65 Etiquetas"  
       Array_OpEtiquetas[42]="72      3                 Laser/Jato Tinta                      [0102]" ;Concretos Vico 
       Array_OpEtiquetas[43]="------------------------------------------------------------------------"
       Array_OpEtiquetas[44]="25      3                 Termica/Eltron      C¢digo de Barras"
       Array_OpEtiquetas[45]="54      3                 Termica/Eltron      CODE128           [0204]" ;Uzze Buzze
       Array_OpEtiquetas[46]="61      2                 Termica/Eltron      CODE128 c/Pre‡o   [0227]" ;Siri
       Array_OpEtiquetas[47]="62      2                 Termica/Eltron      CODE128 s/Pre‡o   [0227]" ;Siri
       Array_OpEtiquetas[48]="------------------------------------------------------------------------"
       Array_OpEtiquetas[49]="63      3   6,6 x  2,5 cm Termica/Zebra       c/Preco           [0160]" ;Rolamentos Total
       Array_OpEtiquetas[50]="35      3                 Termica/Zebra       EAN13 Modelo I"
       Array_OpEtiquetas[51]="45      3                 Termica/Zebra       EAN13 Modelo II"
       Array_OpEtiquetas[52]="46      1                 Termica/Zebra       EAN13 Modelo III"
       Array_OpEtiquetas[53]="47      3                 Termica/Zebra       EAN13 Modelo IV"
       Array_OpEtiquetas[54]="56      3                 Termica/Zebra       EAN13 Modelo V"
       Array_OpEtiquetas[55]="79      3                 Termica/Zebra       EAN13 Modelo V c/Pre‡o"
       Array_OpEtiquetas[56]="59      3                 Termica/Zebra       EAN13 Modelo VI"
       Array_OpEtiquetas[57]="82      3   3,3 x  2,1 cm Termica/Zebra       EAN13 Modelo VII"
       Array_OpEtiquetas[58]="83      3   3,3 x  2,1 cm Termica/Zebra       CDBAR Modelo VIII"
       Array_OpEtiquetas[59]="71      3                 Termica/Zebra                         [0232]" ;Zuggy-Zi
       Array_OpEtiquetas[60]="70      3                 Termica/Zebra                         [0282]" ;XT5
       Array_OpEtiquetas[61]="36      3                 Termica/Zebra       Interno Modelo I"
       Array_OpEtiquetas[62]="36A     3                 Termica/Zebra       Interno Modelo I"
       Array_OpEtiquetas[63]="36B     3                 Termica/Zebra       Interno Modelo I"
       Array_OpEtiquetas[64]="36C     3                 Termica/Zebra       Interno Modelo I"    
       Array_OpEtiquetas[65]="37      3                 Termica/Zebra       Interno Modelo II"
       Array_OpEtiquetas[66]="38      2                 Termica/Zebra       Interno Modelo III"
       Array_OpEtiquetas[67]="66      3                 Termica/Zebra       Interno           [0252]" ;Ecologica
       Array_OpEtiquetas[68]="51      1                 Termica/Zebra       EAN13 Modelo I    [0159]" ;Carol
       Array_OpEtiquetas[69]="52      1                 Termica/Zebra       EAN13 Modelo II   [0159]" ;Carol
       Array_OpEtiquetas[70]="53      1                 Termica/Zebra       EAN13 Modelo III  [0159]" ;Carol
       Array_OpEtiquetas[71]="60      1                 Termica/Zebra       Interno Modelo I  [0226]" ;Bali
       Array_OpEtiquetas[72]="64      1                 Termica/Zebra       Interno Modelo II [0226]" ;Bali
       Array_OpEtiquetas[73]="73      3   2,1 x  3,3 cm Termica/Zebra       Dt FabricacÆo"
       Array_OpEtiquetas[74]="75      1   3,0 x  9,9 cm Termica/Zebra       Gondola c/ Pre‡o I."         
       Array_OpEtiquetas[75]="78      2   1,3 x 10,6 cm Termica/Zebra                         [0051]" ;ModaMil
       Array_OpEtiquetas[76]="84      2   5,0 x  7,5 cm Termica/Zebra                         [0199]" ;GDA
       Array_OpEtiquetas[77]="------------------------------------------------------------------------"
       Array_OpEtiquetas[78]="85      2   4,0 x  6,0 cm Termica/Intermec                      [    ]" ;Moreira & Silva
       Array_OpEtiquetas[79]="48      2                 Termica/Intermec    CODE128"
       Array_OpEtiquetas[80]="49      2                 Termica/Intermec    EAN13"
       
       VSDGQUANTIDADE        = 1
       VSDGOPETIQUETA        = 1
       VSDGOPRELCODALFDIG    = ""
       VSDGNOMOPRELCODALFDIG = ""   
       
       If IsFile("OE_0010.txt")
           Then LeiaNoArquivo("OE_0010.txt","VSDGOPETIQUETA.VSDGOPRELCODALFDIG")
       EndIf
                
       ;For wi From 1 to 80
       ;  If RTrim(SubStr(Array_OpEtiquetas[wi],1,3))=VSDGOPETIQUETA
       ;     Then VSDGOPETIQUETA=wi
       ;          QuitLoop
       ;  EndIf
       ;EndFor
       
  Case Opcao="Gravar":
       LINHA =         GravaExpressao("****** Variaveis de Configura‡„o Modelo Etiqueta Vise Informatica","T","")
       LINHA = LINHA + GravaExpressao("VSDGOPETIQUETA","S",MODETIQ)        
       LINHA = LINHA + GravaExpressao("VSDGOPRELCODALFDIG","S",VSDGOPRELCODALFDIG)        
       
       FileWrite "OE_0010.txt" From LINHA  
        
;  Rotina cancelada para a nova regra p/ gravar no arquivo .sc       
;  Case Opcao="Gravar":
;       Deleta_Arquivo("OE_0010.sc")
;       Editor New "OE_0010.sc"
;       TypeIn ";****** Variaveis de Configura‡„o Modelo Etiqueta Vise Informatica"
;       Enter
;       TypeIn "VSDGOPETIQUETA=\""+MODETIQ+"\"" Enter
;       TypeIn "VSDGOPRELCODALFDIG="+Chr(34)+VSDGOPRELCODALFDIG+Chr(34) Enter
;       Enter
;       Do_It!       
EndSwitch
EndProc

;*******************************************************************************
;* Rotina para Gravar ExpressÆo em Arquivo                                     *
;*******************************************************************************
Proc GravaExpressao(VARIAVEL,TIPO,VALOR)
Private VARIAVEL,TIPO,VALOR,EXPRESSAO 

Switch
  Case Upper(TIPO)="T" : EXPRESSAO = ";"+VARIAVEL+"\n"
  Case Upper(TIPO)="S" : EXPRESSAO = VARIAVEL+"="+Chr(34)+VALOR+Chr(34)+"\n"
  Case Upper(TIPO)="N" : EXPRESSAO = VARIAVEL+"="+VALOR+"\n"
EndSwitch

Return EXPRESSAO

EndProc ;GravaExpressao()      

;*******************************************************************************
;* Rotina para Ler o Arquivo e Setar Vari veis                                 *
;*******************************************************************************
Proc LeiaNoArquivo(ARQUIVO,VARIAVEL)
Private CONTARQ,ARQUIVO,VARIAVEL,NVAR,VAR_AUX

; (Arquivo,Valor da variavel a ser localizada)
; PS: Podendo verificar mais de uma variavel, utilizando o "." para separar o que for localizado
; EX: LeiaNoArquivo("OE_0010.txt","VSDGOPETIQUETA.VSDGOPRELCODALFDIG")        

If IsFile(ARQUIVO)
   Then FileRead ARQUIVO to Linha
        
        ; **** Verificando Quantas variaveis serÆo setadas *********************
        CONTADOR_VARIAVEIS = 1
        VAR_AUX = VARIAVEL
        NVAR = Search(".",VAR_AUX)
        While NVAR > 0 
          CONTADOR_VARIAVEIS = CONTADOR_VARIAVEIS + 1
          VAR_AUX = SubStr(VAR_AUX,NVAR+1,Len(VAR_AUX))
          NVAR = Search(".",VAR_AUX)
        EndWhile
        NVAR = CONTADOR_VARIAVEIS
        
        ; **** Capturando o nome das variaveis *********************************
        DynArray VAR_ARQUIVO[]
        If NVAR > 0 
           Then For CONTARQ From 1 To NVAR
                  PosI=SearchFrom(".",VARIAVEL,1)
                  If PosI=0 
                     Then VAR_ARQUIVO[CONTARQ]=SubStr(VARIAVEL,1,Len(VARIAVEL))
                          QuitLoop 
                  EndIf
                  VAR_ARQUIVO[CONTARQ]=SubStr(VARIAVEL,1,PosI-1)
                  If CONTARQ <> NVAR
                     Then VARIAVEL = SubStr(VARIAVEL,PosI+1,Len(VARIAVEL))
                  EndIf   
                EndFor    
        EndIf
        VAR_ARQUIVO[NVAR]=VARIAVEL
 
        ; **** Analisando linha a linha e a capturando p/ verifica‡Æo posterior
        CONTARQ=0
        DynArray CONSULTA_ARQ[]
        PosI=1
        While True
          CONTARQ = CONTARQ + 1
          PosF=SearchFrom("\n",Linha,PosI)
          If PosF=0 
             Then CONSULTA_ARQ[CONTARQ]=Substr(Linha,PosI,Len(Linha))
                  QuitLoop 
          EndIf
          CONSULTA_ARQ[CONTARQ]=Substr(Linha,PosI,(PosF-PosI))
          PosI=PosF+1
        EndWhile  

        ; **** Setando as vari veis ********************************************
        For CONTARQ1 From 1 To DynArraySize(VAR_ARQUIVO)
          For CONTARQ2 From 1 To DynArraySize(CONSULTA_ARQ)
           Pos=SearchFrom(VAR_ARQUIVO[CONTARQ1],CONSULTA_ARQ[CONTARQ2],1)
           If Pos=0 Then Loop EndIf
           VAR_AUX = SubStr(CONSULTA_ARQ[CONTARQ2],Pos+Len(VAR_ARQUIVO[CONTARQ1]),Len(CONSULTA_ARQ[CONTARQ2])) 
           Pos=SearchFrom("=",VAR_AUX,1)
           If SubsTr(VAR_AUX,Pos+1,1)=Chr(34)
              Then VAR_AUX = SubStr(VAR_AUX,Pos+2,Len(VAR_AUX))
                   PosF=SearchFrom(Chr(34),VAR_AUX,1)
                   VAR_AUX = SubStr(VAR_AUX,1,PosF-1)
              Else VAR_AUX = SubStr(VAR_AUX,Pos+1,Len(VAR_AUX))
           EndIf
           Execute VAR_ARQUIVO[CONTARQ1]+"="+VAR_AUX
           QuitLoop
          EndFor
        EndFor
        
EndIf

EndProc ;GravaNoArquivo()   

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
Switch
  Case FORMU=3 : DIGITA3()
  OtherWise    : DIGITA()
EndSwitch
If RecordStatus("Locked") Then UnLockRecord EndIf         
Endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""    EndIf
If Not IsAssigned(SYS_CLIENTE_CONFEC)  Then SYS_CLIENTE_CONFEC=""    EndIf

view"\\sistemas\\vendas\\Tbprite"
view"\\sistemas\\vendas\\Tbprcpg"

ConfOpcoes("Ler")

CoEdit "Re_0010"
PickForm "F"
FORMU=1
While True
  CHAVE()
  If CHAVE=9 Then QuitLoop EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
