;** Et_Z011 ********************************************************************
;* Monta Etiqueta p/ Impressora Termica - Eltron         - Siri Com Pre‡o      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/04/2008 por Anivel Augusto Rodrigues
;Ultima Alteracao: 14/01/2010 por Bruno Carvalho
;Motivo Alteracao: InclusÆo da Vari vel CDBAR2
;Ultima Alteracao: 15/09/2010 por Karina Andrade
;Motivo Alteracao: Ajustes codigo cliente confec‡Æo
;Ultima Alteracao: 17/11/2010 por Nikolas
;Motivo Alteracao: Ajustes novo modelo
;Ultima Alteracao: 30/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Isabela Garcia Nova Codifica‡Æo
;Ultima Alteracao: 12/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novas fun‡äes para confec‡äes  
;Ultima Alteracao: 15/08/2012 por Bruno Carvalho 
;Motivo Alteracao: Ajustes na etiqueta conforme solicita‡Æo do cliente
;Ultima Alteracao: 21/08/2012 por Bruno Carvalho 
;Motivo Alteracao: InclusÆo de Logo na Etiqueta
;Ultima Alteracao: 24/08/2012 por Bruno Carvalho 
;Motivo Alteracao: Ajustes no tamanho do PRECO da Etiqueta
;Ultima Alteracao: 16/10/2012 por Bruno Carvalho 
;Motivo Alteracao: Ajustes p/ tornar as variaveis de pre‡o em array   
;Ultima Alteracao: 28/02/2013 por Bruno Carvalho             
;Motivo Alteracao: Adicionado Descricao Cor Tecido
;Ultima Alteracao: 03/06/2015 por Bruno Carvalho             
;Motivo Alteracao: Ajustes p/ posicionamento correto da impressÆo dos CDBAR
;Ultima Alteracao: 26/10/2017 por Bruno Carvalho             
;Motivo Alteracao: Ajustes no processo p/ carregar a imagem LOGO para a impressora -> Download_Logo_Termica()
;Ultima Alteracao: 09/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar tambem EAN13  
;Ultima Alteracao: 02/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar o mesmo EAN13 para o pai tambem
;Ultima Alteracao: 06/11/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes padrÆo p/ codigo de barras EAN8, EAN13 ou COD128
;Ultima Alteracao: 25/06/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Siri 0227 pegar codigo de barras e nÆo codigo do pai raiz 

;*******************************************************************************
;* Rotina para Verificar Impressora                                            *
;*******************************************************************************
Proc Download_Logo_Termica(TIPO,IMAGEM)
Private TIPO,LimpaMemo,wy,PARAM_IMPRESSORA

ARQ_SISTEMA = PrivDir()+"Logo.ini"
If IsFile(ARQ_SISTEMA)
    Then Return True
EndIf    

;---- Limpando Mem¢ria da Impressora -------------------------------------------
LimpaMemo = True

Switch
  Case TIPO = "BEMATECH" :
      ;Desabilitado em 02.03.2017 onde estava tendo problemas na impressÆo das imagens
      LimpaMemo = False
      
      arq=PrivDir()+"Logo.ini"
      PastaLogo = SubStr(Directory(),1,2)+"\\Sistemas\\Estoque\\Logo\\"
      If IsFile(arq)
         Then Deleta_Arquivo(arq) 
      EndIf
      
      If DirExists(PastaLogo)=0
         Then Return False
      EndIf   
              
      If Seta_Printer=""
         Then Seta_Printer= Sys_Set_Porta      
      EndIf
      
      If Search("BEMA",Upper(SETA_PRINTER))=0 
         Then Mensagem("Impressora BEMATECH n„o definida!")
              Return False
      EndIf        
                       
      If Search("\\\\",SETA_PRINTER)>0
         Then PARAM_IMPRESSORA=SETA_PRINTER
         Else PARAM_IMPRESSORA="USB"
      EndIf                             
                       
      If LimpaMemo
        Then FileWrite arq From "CLS|"+PARAM_IMPRESSORA+"\n" 
        Else FileWrite arq From "" 
      EndIf
      
      EXTENSAO = ".BMP"
      FileWrite Append arq From "DWNL|"+IMAGEM+EXTENSAO+"|"+PastaLogo+IMAGEM+EXTENSAO+"|"+PARAM_IMPRESSORA+"\n"    ;Exemplo: LO_0227 
      
  Case TIPO = "ZEBRA" :  
      ;Desabilitado em 02.03.2017 onde estava tendo problemas na impressÆo das imagens
      LimpaMemo = False
                                                                              
      EXTENSAO = ".PCX"
      PastaLogo = SubStr(Directory(),1,2)+"\\Sistemas\\Estoque\\Logo\\"
      
      arq=PrivDir()+"Logo.txt"   
      If IsFile(arq) Then Deleta_Arquivo(arq) EndIf
      
      If DirExists(PastaLogo)=0
         Then Return False
      EndIf   
      
      If SETA_PRINTER=""
         Then SETA_PRINTER = Sys_Set_Porta
      EndIf
      
      If Search("ZEBRA",Upper(SETA_PRINTER))=0 And Search("ZDESIG",Upper(SETA_PRINTER))=0
          Then Mensagem("Impressora ZEBRA n„o definida!")
               Return False
      EndIf
              
      If Search("\\\\",SETA_PRINTER)>0
         Then PARAM_IMPRESSORA=SETA_PRINTER
         Else PARAM_IMPRESSORA="\\\\localhost\\"+SETA_PRINTER                   ;Zebra LOCAL "\\\\localhost\\ZEBRA"
      EndIf                
         
      If LimpaMemo
        Then FileWrite arq From "CLS|"+PARAM_IMPRESSORA+"\n" 
        Else FileWrite arq From "" 
      EndIf
      
      FileWrite Append arq From "DWNL|"+IMAGEM+"|"+PastaLogo+IMAGEM+EXTENSAO+"|"+PARAM_IMPRESSORA+"\n"    ;Exemplo: LO_0227      
EndSwitch      

If ExecViseBMT(arq,"")
   Then FileWrite ARQ_SISTEMA From "CARREGOU LOGO"
        Return True
   Else Return False 
EndIf

EndProc ;Download_Logo_Termica()

;*******************************************************************************
;*Monta Etiqueta                                                               *
;*******************************************************************************
Proc Monta_Etiqueta()

Moveto "Answer"
Print File Arquivo "O\n"
Print File Arquivo "N\n"
Print File Arquivo "q700\n"    
Print File Arquivo "Q600,24\n"
Print File Arquivo "S2\n"
Print File Arquivo "D8\n"
Print File Arquivo "ZT\n"

If Not IsBlank(CITEM[1])
   Then Print File Arquivo "GG215,001,\""+"LO_0227"+"\"\n"
        Print File Arquivo "A025,080,0,2,1,1,N,\""+""+"\"\n"        
        Print File Arquivo "A025,090,0,2,1,1,N,\""+SubStr(DITEM[1],01,23)+"\"\n"     
        Print File Arquivo "A025,116,0,2,1,1,N,\""+Ltrim(SubStr(DITEM[1],24,7))+DCOR[1]+"\"\n"
        Print File Arquivo "A065,151,0,2,2,1,N,\""+REFER[1]+"\"\n"
        Switch
          Case Search("EAN13",tpcdbar[1])>0 : Print File Arquivo "B075,185,0,E30,2,2,60,B,\""+CDBAR2[1]+"\"\n"
                                              Print File Arquivo "B075,288,0,E30,2,2,60,B,\""+CDBAR[1]+"\"\n"
                                              Print File Arquivo "B075,385,0,E30,2,2,60,B,\""+CDBAR[1]+"\"\n"
          Case Search("EAN8",tpcdbar[1])>0  : Print File Arquivo "B075,185,0,E80,2,2,60,B,\""+CDBAR2[1]+"\"\n"
                                              Print File Arquivo "B075,288,0,E80,2,2,60,B,\""+CDBAR[1]+"\"\n"
                                              Print File Arquivo "B075,385,0,E80,2,2,60,B,\""+CDBAR[1]+"\"\n" 
          OtherWise                         : Print File Arquivo "B075,185,0,1,2,30,50,B,\""+CDBAR2[1]+"\"\n"
                                              Print File Arquivo "B075,288,0,1,2,30,50,B,\""+CDBAR[1]+"\"\n"
                                              Print File Arquivo "B075,385,0,1,2,30,50,B,\""+CDBAR[1]+"\"\n" 
        EndSwitch
        Print File Arquivo "A025,500,0,3,1,1,N,\""+PR1[1]+"\"\n"
EndIf

If Not IsBlank(CITEM[2])
   Then Print File Arquivo "GG600,001,\""+"LO_0227"+"\"\n"
        Print File Arquivo "A410,080,0,2,1,1,N,\""+""+"\"\n"
        Print File Arquivo "A410,090,0,2,1,1,N,\""+SubStr(DITEM[2],01,23)+"\"\n"
        Print File Arquivo "A410,116,0,2,1,1,N,\""+Ltrim(SubStr(DITEM[2],24,7))+DCOR[2]+"\"\n"
        Print File Arquivo "A450,151,0,2,2,1,N,\""+REFER[2]+"\"\n"
        Switch
          Case Search("EAN13",tpcdbar[2])>0 : Print File Arquivo "B460,185,0,E30,2,2,60,B,\""+CDBAR2[2]+"\"\n"
                                              Print File Arquivo "B460,288,0,E30,2,2,60,B,\""+CDBAR[2]+"\"\n"
                                              Print File Arquivo "B460,385,0,E30,2,2,60,B,\""+CDBAR[2]+"\"\n"
          Case Search("EAN8",tpcdbar[2])>0  : Print File Arquivo "B460,185,0,E80,2,2,60,B,\""+CDBAR2[2]+"\"\n"
                                              Print File Arquivo "B460,288,0,E80,2,2,60,B,\""+CDBAR[2]+"\"\n"
                                              Print File Arquivo "B460,385,0,E80,2,2,60,B,\""+CDBAR[2]+"\"\n"  
          OtherWise                         : Print File Arquivo "B460,185,0,1,2,30,50,B,\""+CDBAR2[2]+"\"\n"
                                              Print File Arquivo "B460,288,0,1,2,30,50,B,\""+CDBAR[2]+"\"\n"
                                              Print File Arquivo "B460,385,0,1,2,30,50,B,\""+CDBAR[2]+"\"\n"  
        EndSwitch
        Print File Arquivo "A430,500,0,3,1,1,N,\""+PR1[2]+"\"\n"
EndIf
 
If CITEM[1]=CITEM[2]
   Then Print File Arquivo "P"+StrVal(CR)+"\n"
        ce=ce+((CR-1)*3)
   Else Print File Arquivo "P1\n"
EndIf
ne=2
EndProc

;*******************************************************************************
;* Monta Comandos p/ Impressora Termica                                        *
;*******************************************************************************
Proc Monta_Comandos()

;**Substituido este processo de carregamento de imagem para a impressora p/ Download_Logo_Termica()  
;Comando="Copy "+Directory()+"LOGO\\LO_0227.txt"+" + "+Directory()+"LOGO\\LO_0227.pcx LPT1 /b"
;@ 22,00 Run NoRefresh Comando
;Sleep 1000

;Comando="Copy "+Directory()+"LOGO\\LO_0227.txt"+" + "+Directory()+"LOGO\\LO_0227.pcx"+" \\"+"\\"+"Vise-PC\\"+"\\"+"Zebra2 /b"
;@ 22,00 Run NoRefresh Comando
;Sleep 1000

;If Not IsFile("LO_0227.bat")
;   Then FileWrite "LO_0227.bat" From  "Copy "+Directory()+"LOGO\\LO_0227.txt"+" + "+Directory()+"LOGO\\LO_0227.pcx"+" \\"+"\\"+"Vise-PC\\"+"\\"+"Zebra2 /b"
;EndIf
;Executa_Programa("LO_0227.bat")
;Sleep 1000
 
Download_Logo_Termica("ZEBRA","LO_0227")
 
If IsAssigned(DITEA)
   Then Release Vars PR1, DITEM, CITEM, DCOR, CDBAR, CDBAR2, REFER, tpcdbar
EndIf
Array  PR1[2]
Array  DITEM[2]
Array  CITEM[2]
Array   DCOR[2]
Array  CDBAR[2]
Array CDBAR2[2]
Array  REFER[2]
Array tpcdbar[2]

Arquivo=PrivDir()+"SIRI.ejf"
Deleta_Arquivo(Arquivo)

REF_MMAAAA=AlinhM(StrVal(Month(Today())),2)+StrVal(Year(Today()))

ne=2
View "\\Sistemas\\Vendas\\Tbprite"
View "\\Sistemas\\Vendas\\Tbprcpg"
View "\\Sistemas\\Vendas\\CondPgto"
Coedit "Answer"
Scan
  te=[Quantidade]
  LPR1 =""
  LPR2 =""
  LPR3 =""

  CodItem=[Codigo do Item]
  CodItem=PegaCodigoRaiz(CodItem)
  
  Moveto "\\Sistemas\\Vendas\\Tbprite"
  Moveto [Codigo da Tabela]
  Locate VSDGTABELA,CodItem
  If RetVal
     Then PRECO=[Preco Unitario]

          Moveto "\\Sistemas\\Vendas\\Tbprcpg"
          Moveto [Codigo da Tabela]
          Locate VSDGTABELA
          If RetVal
             Then np=0
                  While [Codigo da Tabela]=VSDGTABELA
                    TXFIN=[Taxa Financeira]
                    CONDP=[Condicao de Pagamento]
                    Moveto "\\Sistemas\\Vendas\\CondPgto"
                    Moveto [Condicao de Pagamento]
                    Locate CONDP
                    If RetVal
                       Then np=np+1
                            Switch
                              Case np=1 : LPR1="A Vista R$"+LTrim(Format("W9.2,EIC",PRECO))
															Case np=2 : NP2=[Numero de Parcelas]
                                          PRECO2=(PRECO+((PRECO*TXFIN)/100))
                                          LPR2="A Prazo R$"+LTrim(Format("W9.2,EIC",PRECO2))

                                          PRECO2=PRECO2/NP2
                                          LPR3="      "+StrVal(NP2)+"xR$"+LTrim(Format("W9.2,EIC",PRECO2))
                                          QuitLoop
                            EndSwitch
                    EndIf
                    Moveto "\\Sistemas\\Vendas\\Tbprcpg"
                    Skip
                    If EOT() Then QuitLoop Endif
                  EndWhile
          EndIf
  EndIf
  Moveto "Answer"

  If (te-(2-ne))>2
     Then CR=Int((te-(2-ne))/2)
     Else CR=1
  EndIf
  ce=0
  While True
    ce=ce+1
    ne=ne+1
    If ne=3
       Then For i From 1 To 2
              PR1[i]=""
              DITEM[i]=""
              DCOR [i]=""
              CDBAR[i]=""
             CDBAR2[i]=""
              CITEM[i]=""
              REFER[i]=""
            tpcdbar[i]=""
            EndFor
            ne=1
    EndIf
      PR1[ne]=LPR1
    DITEM[ne]=[Descricao do Item]
    CITEM[ne]=[Codigo do Item   ]
     DCOR[ne]=" "+Substr([Descricao da Cor_Tecido],1,15)
    CDBAR[ne]=[Codigo de Barras]
   
    switch
      case sys_codigo_cliente="0227": CDBAR2[ne]=CDBAR[ne]
      
      otherwise                     : CDBAR2[ne]=CodItem
    endswitch
                
    REFER[ne]="REF "+[Referencia]
  tpcdbar[ne]=Upper([Tipo Codigo_Barras])
    If Search("EAN13",tpcdbar[ne])>0 Or Search("EAN8",tpcdbar[ne])>0
       Then CDBAR2[ne]=CDBAR[ne]
    EndIf
    If ne=2   Then Monta_Etiqueta() EndIf
    If ce>=te Then QuitLoop         EndIf
  EndWhile
EndScan
If ne<2 Then Monta_Etiqueta() EndIf
Do_It!
ClearAll

ImpriArq(Arquivo)

Sleep 700
Deleta_Arquivo(Arquivo)
ClearAll
EndProc

Monta_Comandos()
Release Procs Monta_Etiqueta,Monta_Comandos
