;** RE_0010 ********************************************************************
;*  Emissao de Etiquetas Clientes/Fornecedores                                 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 20/09/2001 por Anivel Augusto Rodrigues
;Ultima Alteracao: 11/12/2006 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao nova etiqueta
;Ultima Alteracao: 21/06/2007 por Marcelao
;Motivo Alteracao: Inclusao nova etiqueta Venus
;Ultima Alteracao: 19/12/2007 por Humberto
;Motivo Alteracao: Inclusao nova etiqueta Territorio
;Ultima Alteracao: 07/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Periodo de Compras Sele‡Ço
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 10/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 08/09/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo 11
;Ultima Alteracao: 16/10/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Sem compras
;Ultima Alteracao: 26/11/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo 12
;Ultima Alteracao: 18/02/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Data Cadastro
;Ultima Alteracao: 12/08/2009 por Cleber Alves
;Motivo Alteracao: Inclusao Modelo 13
;Ultima Alteracao: 14/10/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Usar Endereco de Fatura ou Cobranca
;Ultima Alteracao: 29/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 04/02/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao Modelo 14
;Ultima Alteracao: 23/09/2011 por Karina Andrade
;Motivo Alteracao: Inclusao Modelo 15
;Ultima Alteracao: 28/09/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo 16
;Ultima Alteracao: 17/01/2012 por Karina Andrade
;Motivo Alteracao: Altera‡äes Imprimir() e inclusÆo modelo 17 
;Ultima Alteracao: 20/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes para impressora zebra
;Ultima Alteracao: 19/09/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Substitui‡Æo Editor novo arquivo por FileWrite
;Ultima Alteracao: 01/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SetaCorRegistro("Editando") 
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes LimpaRodape()                  
;Ultima Alteracao: 22/02/2013 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 18 - Uzze Buzze
;Ultima Alteracao: 26/02/2013 por Karina Andrade
;Motivo Alteracao: Ajustes For para VSDGOPETIQUETA
;Ultima Alteracao: 21/08/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes "Situacao do Cliente" p/ permitir situa‡Æo como OTIMO
;Ultima Alteracao: 18/09/2013 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 19 - #0227#
;Ultima Alteracao: 28/04/2014 por Luis Gustavo
;Motivo Alteracao: InclusÆo Modelo 20 - #0260#
;Ultima Alteracao: 28/04/2014 por Luis Gustavo
;Motivo Alteracao: InclusÆo Modelo 20 - #0260#
;Ultima Alteracao: 04/03/2015 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 21 - #0227#
;Ultima Alteracao: 08/04/2015 por Andrey Fillipe
;Motivo Alteracao: InclusÆo Modelo 22 - #0051#
;Ultima Alteracao: 23/04/2015 por Andrey Fillipe
;Motivo Alteracao: InclusÆo Modelo 23 - #0051#
;Ultima Alteracao: 12/08/2015 por Andrey Fillipe
;Motivo Alteracao: InclusÆo Modelo 24 - #0342#
;Ultima Alteracao: 09/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 05/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog
;Ultima Alteracao: 03/01/2017 por Rafael Matos
;Motivo Alteracao: Ajustes showdialog MensagemRadioButtons()                   
;Ultima Alteracao: 07/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes cor editar
;Ultima Alteracao: 15/05/2017 por Bruno Carvalho
;Motivo Alteracao: Alterado DispositivoI() e Dispositivo() -> DispositivoEtq()
;Ultima Alteracao: 26/04/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ [Data de Nascimento] ser consultada/armazenada pela Destinat

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  End
  Down
  Moveto [Codigo]

  SetaCorRegistro("Editar")
  While True

    TECLA="F1=Tabelas"
    AguardaTeclasPadrao()

    If RetVal=-33
      Then Echo Normal
           Echo Off
           ShowPopup " Fun‡”es " CENTERED
            "~I~mprimir [F6]  ": " Selecionar/Imprimir etiqueta     " :"F6",
            "~L~impar   [F5]  ": " Limpar a lista corrente          " :"F5",
            "~S~ele‡„o  [F4]  ": " Selecionar dados                 " :"F4",
            "~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="F3": SemFicha()
    Case RetVal=-94 : MsgTeclasPadrao()
    Case RetVal="F5":
         ConfGeral("Confirma a exclus„o dos registro desta relac„o ?")
         If OK="S"
             Then Limpar()
         EndIf
         QuitLoop
    Case RetVal="F4":
         Del
         Selecao()
         QuitLoop
    Case RetVal="F6":
         Del
         If Not IsEmpty("Re_0010")
            Then Imprimir()
         EndIf
         QuitLoop
    Case RetVal="F1":
         If Field()="Codigo"
            Then If Not CONSULTAF1()
                    Then Loop
                 EndIf   
         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="ESC":
         CHAVE=9
         Del
         Return
    Case RetVal="ENTER":
         If IsBlank([])
            Then Loop
         EndIf
         []=Alinh()
         CODIGO=[]
         Del
         Locate CODIGO
         If Retval
            Then CHAVE=0
            Else CHAVE=1
                 End Down
                 [Codigo]=CODIGO
         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
  SetaCorRegistro("Editando")
  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":
       If IsBlank([])
          Then []=1
       EndIf
       [Codigo Empresa]="0001"
       QuitLoop
  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")
Do_It!
Empty("RE_0010")
CoEditKey
PickForm "F"
EndProc

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona1()
ClearAll

{Ask} {Destinat}
Moveto [Codigo                 ] Check
Moveto [Tipo                   ] TypeIn "~VSDGTIPO"
Moveto [Cidade                 ] TypeIn CIDADE
Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
Moveto [Codigo Atividade       ] TypeIn "~VSDGATIVIDADE.."
Moveto [Data de Nascimento     ] Check
Moveto [Inativo                ]
Switch
  Case VSDGSTATUS="1": TypeIn "N"
  Case VSDGSTATUS="2": TypeIn "S"
EndSwitch
If Not IsBlank(VSDGSITUACAO)
   Then Moveto [Situacao do Cliente] TypeIn "~VSDGNOMSITUACAO.."
EndIf
If VSDGOPDT=2
	 Then Moveto [Data_Cadastro] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
EndIf

Do_It!
ClearAll

wc=NRecords("Answer")
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona2()
ClearAll

Seleciona1()
wc=0

CoEdit "Answer"
Scan
  cliok=false
  If Not IsBlank([Data de Nascimento])
     Then datai=DateVal(StrVal(Month([Data de Nascimento]))+"/"+StrVal(Day([Data de Nascimento]))+"/"+StrVal(Year(VSDGDTINI)))
          dataf=DateVal(StrVal(Month([Data de Nascimento]))+"/"+StrVal(Day([Data de Nascimento]))+"/"+StrVal(Year(VSDGDTFIM)))
          If Datai>=VSDGDTINI And Dataf<=VSDGDTFIM
             Then cliok=true
          EndIf
  EndIf     
  If not cliok
     Then [Codigo]=""
  EndIf   
EndScan
Do_It!
ClearAll

{Ask}{Answer} Check
Moveto [Codigo] TypeIn "Not Blank"
Do_It!
ClearAll
wc=NRecords("Answer")

EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona3()
ClearAll

SetDir "\\Sistemas\\Vendas"
Tabela2=Cria_Temp(PrivDir())
Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  If IsTable("Answer")     Then Delete "Answer" EndIf
  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
    Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
          Moveto [Codigo                 ] Check
          Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
          Moveto [Tipo Movimento Estoque ] TypeIn "S"
          Moveto [Situacao               ] TypeIn "Not C"
          Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
          Do_It!
          ClearAll
  EndIf
  If Not IsTable("Answer") Then Loop EndIf
  If IsTable(Tabela2)
     Then Add "Answer" Tabela2
     Else Rename "Answer" Tabela2
  EndIf
EndWhile
ClearAll

SetDir "\\Sistemas\\Cadastro"
{Ask} {Destinat}
Moveto [Codigo                 ] Check Example "cli"
Moveto [Tipo                   ] TypeIn "~VSDGTIPO"
Moveto [Cidade                 ] TypeIn CIDADE
Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
Moveto [Codigo Atividade       ] TypeIn "~VSDGATIVIDADE.."
Moveto [Inativo]
Switch
  Case VSDGSTATUS="1": TypeIn "N"
  Case VSDGSTATUS="2": TypeIn "S"
EndSwitch
If Not IsBlank(VSDGSITUACAO)
   Then Moveto [Situacao do Cliente] TypeIn "~VSDGNOMSITUACAO.."
EndIf
{Ask} TypeIn Tabela2 Enter
Moveto [Codigo                 ] Example "cli"
Do_It!
ClearAll

Delete Tabela2
wc=NRecords("Answer")
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona4()
ClearAll

SetDir "\\Sistemas\\Vendas"
Tabela2=Cria_Temp(PrivDir())
Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  If IsTable("Answer")     Then Delete "Answer" EndIf
  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
    Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
          Moveto [Codigo                 ] Check
          Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
          Moveto [Tipo Movimento Estoque ] TypeIn "S"
          Moveto [Situacao               ] TypeIn "Not C"
          Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
          Do_It!
          ClearAll
  EndIf
  If Not IsTable("Answer") Then Loop EndIf
  If IsTable(Tabela2)
     Then Add "Answer" Tabela2
     Else Rename "Answer" Tabela2
  EndIf
EndWhile
ClearAll


SetDir "\\Sistemas\\Cadastro"
{Ask} {Destinat}
Moveto [Codigo                 ] Check
Moveto [Tipo                   ] TypeIn "~VSDGTIPO"
Moveto [Cidade                 ] TypeIn CIDADE
Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
Moveto [Codigo Atividade       ] TypeIn "~VSDGATIVIDADE.."
Moveto [Inativo]
Switch
  Case VSDGSTATUS="1": TypeIn "N"
  Case VSDGSTATUS="2": TypeIn "S"
EndSwitch
If Not IsBlank(VSDGSITUACAO)
   Then Moveto [Situacao do Cliente] TypeIn "~VSDGNOMSITUACAO.."
EndIf
Do_It!
ClearAll

{Ask} TypeIn Tabela2 Enter
Moveto [Codigo                 ] Example "cli"
{Ask} {Answer} TypeIn "Fast Delete"
Moveto [Codigo                 ] Example "cli"
Do_It!
ClearAll

Delete Tabela2
wc=NRecords("Answer")
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  
   Then AoCriarShowDialog()
   
        if OP_SHOW="I"
           then  TiraSombraShowDialog()
        endif   
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_TIPO"           : Campo="NO"
            Case Campo="TG_STATUS"         : Campo="TG_TIPO"
            Case Campo="TG_SITUACAO"       : Campo="TG_STATUS"
            Case Campo="TG_REPRESEN"       : Campo="TG_SITUACAO"
            Case Campo="TG_AREA"           : Campo="TG_REPRESEN"
            Case Campo="TG_ATIVIDADE"      : Campo="TG_AREA"
            Case Campo="TG_CIDADE"         : Campo="TG_ATIVIDADE"
            Case Campo="TG_OPDT"           : Campo="TG_CIDADE"
            Case Campo="TG_DTINI"          : Campo="TG_OPDT"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="TG_QUANTIDADE"     :
                 If VSDGTIPO="C"
                    Then Campo="TG_OPDT"
                    Else Campo="TG_STATUS"
                 EndIf
            ;** Imprimir **
            Case Campo="TG_OPETIQUETA"     : Campo="NO"
            Case Campo="TG_OPRELCODALFDIG" : Campo="TG_OPETIQUETA"
            Case Campo="TG_ENDERECO"       : Campo="TG_OPRELCODALFDIG"

            Case Campo="YES" Or Campo="NO" :
                 If OP_SHOW="S"
                    Then Campo="TG_TIPO"
                    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_TIPO" : 
                         VSDGTIPO=ControlValue("TG_TIPO")
                         If Not IsBlank(VSDGTIPO)
                            Then Switch
                                   Case VSDGTIPO="C": VSDGNOMTIPO="CLIENTES"
                                   Case VSDGTIPO="F": VSDGNOMTIPO="FORNECEDORES"
                                 EndSwitch
                                 Campo="TG_STATUS"
                         EndIf
                    Case Campo="TG_STATUS"   :  
                         If VSDGTIPO="F"
                            Then VSDGREPRESEN =""
                                 VSDGNOMREPR  =""
                                 VSDGATIVIDADE=""
                                 VSDGNOMATIV  =""
                                 VSDGAREA     =""
                                 VSDGNOMAREA  =""
                                 VSDGCIDADE   =""
                                 VSDG_OPDT    =4
                                 VSDGDTINI   =BlankDate()
                                 VSDGDTFIM   =BlankDate()
                                 VSDGSITUACAO=""
                                 VSDGNOMSITUACAO=""
                                 Campo="TG_QUANTIDADE"
                            Else Campo="TG_SITUACAO"
                         EndIf
                    Case Campo="TG_SITUACAO"    : Campo="TG_REPRESEN"
                        VSDGSITUACAO=ControlValue("TG_SITUACAO")
                        Switch
                          Case VSDGSITUACAO="O": VSDGNOMSITUACAO="OTIMO"
                          Case VSDGSITUACAO="B": VSDGNOMSITUACAO="BOM"
                          Case VSDGSITUACAO="R": VSDGNOMSITUACAO="REGULAR"
                          Case VSDGSITUACAO="P": VSDGNOMSITUACAO="PESSIMO"
                          Case VSDGSITUACAO="E": VSDGNOMSITUACAO="RECADASTRO"
                          Case VSDGSITUACAO="" : VSDGNOMSITUACAO="TODOS"
                        EndSwitch
                    Case Campo="TG_REPRESEN" : Campo="TG_AREA"
                    Case Campo="TG_AREA"     : Campo="TG_ATIVIDADE"
                    Case Campo="TG_ATIVIDADE": Campo="TG_CIDADE"
                    Case Campo="TG_CIDADE"   : Campo="TG_OPDT"
                         If Upper(VSDGCIDADE)="TODAS"
                            Then CIDADE=""
                            Else CIDADE=VSDGCIDADE
                         EndIf
                    Case Campo="TG_OPDT"  : Campo="TG_DTINI"
                         VSDGOPDT=ControlValue("TG_OPDT")
                         If VSDGOPDT=5 Then Campo="TG_QUANTIDADE" EndIf
                    Case Campo="TG_DTINI"   : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"   : Campo="TG_QUANTIDADE"
                    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="TG_ENDERECO"
                    Case Campo="TG_ENDERECO"       : Campo="YES"
                         VSDGENDERECO=ControlValue("TG_ENDERECO")
                         Switch
                           Case VSDGENDERECO="2" : VSDGNOMENDERECO="COBRANCA"
                           OtherWise             : VSDGNOMENDERECO="FATURA"
                                                   VSDGENDERECO   ="1"
                         EndSwitch
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_TIPO":
     MSG_CAMPO="Informe C -> Cliente, F -> Fornecedor"
  Case Campo="TG_SITUACAO":
     MSG_CAMPO="Informe(O=Otimo  B=Bom  R=Regular  P=Pessimo  E=Recadastro  Em Branco=Todos)"
  Case Campo="TG_OPETIQUETA" or Campo="TG_OPDT" :
     MensagemRadioButtons()
  Case Campo="TG_QUANTIDADE":
     MSG_CAMPO="Informe a quantidade de repeti‡„o da etiqueta ou Cartao Postal"
  Case Campo="TG_ENDERECO":
     MSG_CAMPO="Tipo endere‡o: 1=Fatura  2=Cobran‡a"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

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

VSDGTIPO     =""
VSDGNOMTIPO  =""
VSDGREPRESEN =""
VSDGNOMREPR  =""
VSDGATIVIDADE=""
VSDGNOMATIV  =""
VSDGAREA     =""
VSDGNOMAREA  =""
VSDGCIDADE   =""
VSDGDTINI   =BlankDate()
VSDGDTFIM   =BlankDate()
VSDGSTATUS   =""
VSDGOPDT     =5
VSDGSITUACAO =""

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 19 Width 72

  Label  @ 00,00 "Tipo" For "TG_TIPO"
  Accept @ 01,04 Width 04 "A1"  Picture "C,F, " Tag "TG_TIPO" To VSDGTIPO
  Accept @ 01,09 Width 25 "A13" Picture "!*!" Tag "TG_NOMTIPO" To VSDGNOMTIPO

  Label  @ 02,00 "Status"  For "TG_STATUS"
  Accept @ 03,04 Width 04 "A1"  Picture "1,2,3" Tag "TG_STATUS" To VSDGSTATUS
  Accept @ 03,09 Width 25 "A12" Picture "!*!" Tag "TG_NOMSTATUS" To VSDGNOMSTATUS

  Label  @ 04,00 "Situacao do Cliente" For "TG_SITUACAO"
  Accept @ 05,04 Width 04 "A1"  Picture "O,B,R,P" Tag "TG_SITUACAO"  To VSDGSITUACAO
  Accept @ 05,09 Width 25 "A12" Picture "!*!" Tag "TG_NOMSITUACAO" To VSDGNOMSITUACAO

  Label  @ 06,00 "Representante"  For "TG_REPRESEN"
  Accept @ 07,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_REPRESEN"   To VSDGREPRESEN
  Accept @ 07,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMREPR" To VSDGNOMREPR

  Label  @ 08,00 "Area"  For "TG_AREA"
  Accept @ 09,03 Width 05 "A2"  Picture "#*#" Tag "TG_AREA"  To VSDGAREA
  Accept @ 09,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMAREA" To VSDGNOMAREA

  Label  @ 10,00 "Atividade"  For "TG_ATIVIDADE"
  Accept @ 11,01 Width 07 "A4"  Picture "#*#" Tag "TG_ATIVIDADE"  To VSDGATIVIDADE
  Accept @ 11,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMATIV" To VSDGNOMATIV

  Label  @ 12,00 "Cidade"  For "TG_CIDADE"
  Accept @ 13,01 Width 33 "A20"  Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE

  Label  @ 00,35 "Op‡”es de Datas"  For "TG_OPDT"
  RadioButtons @ 01,35 Height 5 Width 25
   "~A~nivers rio",
   "Ca~d~astro",
   "~C~om Compras",
   "~S~em Compras",
   "~I~gnorar"
   Tag "TG_OPDT"
   To VSDGOPDT

  Label  @ 06,35 "Per¡odo Referente de" For "TG_DTINI"
  Accept @ 07,38 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
  Label  @ 07,51 "at‚" For "TG_DTFIM"
  Accept @ 07,56 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

  Label  @ 08,35 "Quantidade" For "TG_QUANTIDADE"
  Accept @ 09,36 Width 10 "S"  Tag "TG_QUANTIDADE" To VSDGQUANTIDADE

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

EndDialog
If Not RetVal Or Not Usuario_Vendedor()
   Then ClearAll
        CoEdit "RE_0010"
        PickForm "F"
        Return
EndIf        

  
LimpaRodape(0)
Aguarde("Aguarde, Selecionando registros")
wc=0
Switch
  Case VSDGOPDT=1: Seleciona2()
  Case VSDGOPDT=3: Seleciona3()
  Case VSDGOPDT=4: Seleciona4()
  OtherWise      : Seleciona1()
EndSwitch
If wc=0
   Then Mensagem("N„o existe registro conforme sele‡„o !")
   Else

  {Ask} {Answer} 
  Moveto [Codigo                 ] Example "a1"
  {Ask} {Re_0010} TypeIn "Fast Delete"
  Moveto [Codigo                 ] Example "a1"
  Do_It!
  ClearAll
  
  View "Re_0010"
  CoEdit "Answer"
  Scan
    Moveto "Re_0010"
    End Down
    [Codigo    ]=[Answer->Codigo]
    [Quantidade]=VSDGQUANTIDADE
    Moveto "Answer"
  EndScan
  Do_It!
  ClearAll
EndIf

CoEdit "RE_0010"
PickForm "F"
EndProc

;*******************************************************************************
;* Rotina Impressao                                                            *
;*******************************************************************************
Proc Imprimir()
Private EndOk

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 22 Width 80

    Label @ 00,00 "Codigo  Col  Dimens„o/cm   Impressora          Descri‡„o"  For "TG_OPETIQUETA"
    PickArray @01,01 Height 13 width 75
     Columns 1
      Array_OpEtiquetas
       Tag "TG_OPETIQUETA"
        To VSDGOPETIQUETA

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

    Label  @ 15,35 "Endere‡o ?" For "TG_ENDERECO"
    Accept @ 16,39 Width 04 "A1"  Picture "1,2" Tag "TG_ENDERECO" To VSDGENDERECO
    Accept @ 16,44 Width 25 "A12" Picture "!*!" Tag "TG_NOMENDERECO" To VSDGNOMENDERECO
    
    Pushbutton @ 18,20 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 18,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
 
  MSGDISPOSITIVO="Etiqueta"
  DispositivoEtq()
  If OK="" Then Loop EndIf
  AGUARDE("Aguarde, Gerando Relat¢rio")
  
  {Ask} {Re_0010} Check
  Do_It! ClearAll
  Empty("Answer")   
  
    
  If MODETIQ="17" Or MODETIQ="18" Or MODETIQ="22" Or MODETIQ="23"
     Then View "End_Cob"
          View "Answer"
          CoEdit "Re_0010"
          Scan
            CopyToArray REG
        
            EndOk=False
            If VSDGENDERECO="2"
               Then Moveto "End_Cob"
                    Moveto [Codigo]
                    Locate [Re_0010->Codigo]
                    If RetVal
                       Then If [Endereco de Cobranca]<>"O MESMO" And 
                               Not IsBlank([Endereco de Cobranca])
                               Then EndOk=True
                            EndIf
                    EndIf    
            EndIf
          
            Moveto "Answer"
            End
            Down
            CopyFromArray Reg
            [Codigo Empresa]=SYS_EMPRESA_DEFAULT
            
            If VSDGENDERECO="2" And EndOk
               Then [Endereco      ]=[End_Cob->Endereco de Cobranca]
                    [Bairro        ]=[End_Cob->Bairro de Cobranca  ]
                    [CEP           ]=[End_Cob->CEP de Cobranca     ]
                    [Cidade        ]=[End_Cob->Cidade de Cobranca  ]
                    [UF            ]=[End_Cob->UF de Cobranca      ]
            EndIf
        
            Moveto "Re_0010"
          EndScan
          Do_It!
          ClearAll
          If VSDGOPRELCODALFDIG  = "1" Then Sort "Answer" On "Codigo"        EndIf
          If VSDGOPRELCODALFDIG  = "2" Then Sort "Answer" On "Razao Social"  EndIf
                          
          If MODETIQ="17" Then Play "Et_Z001"                             EndIf
          If MODETIQ="18" Then Play "Et_Z002"                             EndIf                           
          If MODETIQ="22" Then Play "Et_Z003"                             EndIf
          If MODETIQ="23" Then Play "Et_Z004"                             EndIf
                          
     Else View "End_Cob"
          View "Answer"
          CoEdit "Re_0010"
          Scan
            CopyToArray REG
        
            EndOk=False
            If VSDGENDERECO="2"
               Then Moveto "End_Cob"
                    Moveto [Codigo]
                    Locate [Re_0010->Codigo]
                    If RetVal
                       Then If [Endereco de Cobranca]<>"O MESMO" And 
                               Not IsBlank([Endereco de Cobranca])
                               Then EndOk=True
                            EndIf
                    EndIf    
            EndIf
          
            Moveto "Answer"
            For I From 1 to [Re_0010->Quantidade]
              End
              Down
              CopyFromArray Reg
              [Codigo Empresa]=SYS_EMPRESA_DEFAULT
              
              If VSDGENDERECO="2" And EndOk
                 Then [Endereco      ]=[End_Cob->Endereco de Cobranca]
                      [Bairro        ]=[End_Cob->Bairro de Cobranca  ]
                      [CEP           ]=[End_Cob->CEP de Cobranca     ]
                      [Cidade        ]=[End_Cob->Cidade de Cobranca  ]
                      [UF            ]=[End_Cob->UF de Cobranca      ]
              EndIf
              
            EndFor
        
            Moveto "Re_0010"
          EndScan
          Do_It!
          ClearAll
          If VSDGOPRELCODALFDIG  = "1" Then Sort "Answer" On "Codigo"        EndIf
          If VSDGOPRELCODALFDIG  = "2" Then Sort "Answer" On "Razao Social"  EndIf

          If MODETIQ="01" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "1"  "Answer" "R" EndIf
          If MODETIQ="02" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "2"  "Answer" "R" EndIf
          If MODETIQ="03" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "3"  "Answer" "R" EndIf
          If MODETIQ="04" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "4"  "Answer" "R" EndIf
          If MODETIQ="05" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "5"  "Answer" "R" EndIf
          If MODETIQ="06" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "6"  "Answer" "R" EndIf
          If MODETIQ="07" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "7"  "Answer" "R" EndIf
          If MODETIQ="08" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "8"  "Answer" "R" EndIf
          If MODETIQ="09" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "9"  "Answer" "R" EndIf
          If MODETIQ="10" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "10" "Answer" "R" EndIf
          If MODETIQ="11" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "11" "Answer" "R" EndIf
          If MODETIQ="12" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "10" "Answer" "R" EndIf
          If MODETIQ="13" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "12" "Answer" "R" EndIf
          If MODETIQ="14" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "14" "Answer" "R" EndIf
          If MODETIQ="15" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010"  "R"  "Answer" "R" EndIf
          If MODETIQ="16" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010a" "R"  "Answer" "R" EndIf
          If MODETIQ="18" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010a" "1"  "Answer" "R" EndIf                  
          If MODETIQ="19" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010a" "2"  "Answer" "R" EndIf
          If MODETIQ="20" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010a" "3"  "Answer" "R" EndIf
          If MODETIQ="21" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010a" "4"  "Answer" "R" EndIf
          If MODETIQ="24" Then CopyReport "\\Base\\Sistemas\\Cadastro\\RE_0010a" "5"  "Answer" "R" EndIf
          
          IMPRIREL("Answer","R") 
          
  EndIf

  Delete "Answer"
  ConfOpcoes("Gravar")

  QuitLoop
EndWhile
ClearAll

ClearAll
CoEdit "RE_0010"
PickForm "F"

EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ConfOpcoes(Opcao)
Private Opcao

Switch
  Case Opcao="Ler":
       Array Array_OpEtiquetas[26]
                                
       Array_OpEtiquetas[01]="01      1    8,9x2,4 cm"
       Array_OpEtiquetas[02]="06      1    8,9x3,6 cm"
       Array_OpEtiquetas[03]="08      1    8,9x2,4 cm                       sem AT"
       Array_OpEtiquetas[04]="14      1    8,1x3,6 cm"
       Array_OpEtiquetas[05]="02      2    8,9x2,4 cm"
       Array_OpEtiquetas[06]="07      2   10,1x5,8 cm"
       Array_OpEtiquetas[07]="09      2   10,1x2,5 cm"
       Array_OpEtiquetas[08]="10      2    7,0x2,3 cm"
       Array_OpEtiquetas[09]="03      3    8,9x2,4 cm"
       Array_OpEtiquetas[10]="04                                            Cart„o Postal"
       Array_OpEtiquetas[11]="------------------------------------------------------------------------"
       Array_OpEtiquetas[12]="11      2   10,1x3,4 cm   Laser/Jato Tinta"
       Array_OpEtiquetas[13]="15      2   10,1x2,5 cm   Laser/Jato Tinta"
       Array_OpEtiquetas[14]="12      3    6,4x2,4 cm   Laser/Jato Tinta" 
       Array_OpEtiquetas[15]="13      3    6,6x2,5 cm   Laser/Jato Tinta"
       Array_OpEtiquetas[16]="16      3    6,7x2,5 cm   Laser/Jato Tinta    Modelo 1"
       Array_OpEtiquetas[17]="21      3    6,7x2,5 cm   Laser/Jato Tinta    Modelo 2"; #0227#
       Array_OpEtiquetas[18]="19      3    6,7x2,5 cm   Laser/Jato Tinta    Sem AT       "
       Array_OpEtiquetas[19]="05                        Laser/Jato Tinta    Cart„o Postal"       
       Array_OpEtiquetas[20]="24      2    9,9x3,8 cm   Laser/Jato Tinta    Pimaco A4363"; #0342#
       Array_OpEtiquetas[21]="------------------------------------------------------------------------"
       Array_OpEtiquetas[22]="17      1   10,1x6,1 cm   Termica/Zebra" 
       Array_OpEtiquetas[23]="18      1   10,3x2,1 cm   Termica/Eltron"
       Array_OpEtiquetas[24]="20      1    8,9x3,6 cm"
       Array_OpEtiquetas[25]="22      1    9,0x3,0 cm   Termica/Zebra"
       Array_OpEtiquetas[26]="23      1    6,5x3,5 cm   Termica/Zebra"
       
       VSDGQUANTIDADE=1
       If IsFile("OE_0010.sc")
           Then Play "OE_0010"
           Else VSDGOPETIQUETA       =1
                VSDGOPRELCODALFDIG   =""
                VSDGNOMOPRELCODALFDIG=""
       EndIf

       For wi From 1 to ArraySize(Array_OpEtiquetas)
         If RTrim(SubStr(Array_OpEtiquetas[wi],1,3))=VSDGOPETIQUETA
            Then VSDGOPETIQUETA=wi
                 QuitLoop
         EndIf
       EndFor

  Case Opcao="Gravar":
       FileWrite        "OE_0010.sc" From ";* Variaveis de Configura‡„o Modelo Etiqueta Vise Informatica"+"\n"
       FileWrite Append "OE_0010.sc" From "VSDGOPETIQUETA    ="+Chr(34)+MODETIQ+Chr(34)+"\n"
       FileWrite Append "OE_0010.sc" From "VSDGOPRELCODALFDIG="+Chr(34)+VSDGOPRELCODALFDIG+Chr(34)+"\n"
EndSwitch
EndProc ;

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITA()
If RecordStatus("Locked") Then UnLockRecord EndIf         
Endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

If Not IsAssigned(SYS_EMPRESA_DEFAULT) Then SYS_EMPRESA_DEFAULT="" EndIf
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf

VSDGOPRELCODALFDIG    = ""
VSDGNOMOPRELCODALFDIG = ""
VSDGOPRELLISTCAD      = ""
VSDGNOMOPRELLISTCAD   = ""
VSDGQUANTIDADE        =  1
VSDGOPENDERECO        = "1"
CIDADE                = ""

ConfOpcoes("Ler")
CoEdit "Re_0010"
PickForm "F"

While True
  CHAVE()
  If CHAVE=9 Then QuitLoop EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
