;** Et_Z011B *******************************************************************
;* Monta Etiqueta p/ Impressora Termica - Eltron  COD128 - Siri Sem Pre‡o      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/04/2008 por Anivel Augusto Rodrigues
;Ultima Alteracao: 14/08/2008 por Cleber Alves
;Motivo Alteracao: Remo‡Æo do texto "Troca c/30 Dias"
;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
;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: 21/08/2012 por Bruno Carvalho 
;Motivo Alteracao: InclusÆo de Logo na 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

;*******************************************************************************
;* 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,090,0,2,1,1,N,\""+REF_MMAAAA+"\"\n"
        Print File Arquivo "A025,120,0,2,1,1,N,\""+PR1[1]+"\"\n"
        Print File Arquivo "A025,140,0,2,1,1,N,\""+PR2[1]+"\"\n"
        Print File Arquivo "A025,165,0,2,1,1,N,\""+SubStr(DITEM[1],01,23)+"\"\n"
        Print File Arquivo "A025,190,0,2,1,1,N,\""+Ltrim(SubStr(DITEM[1],24,30))+"\"\n"
        Print File Arquivo "A025,215,0,2,1,1,N,\""+DCOR[1]+"\"\n"  
        Print File Arquivo "A065,245,0,2,2,1,N,\""+REFER[1]+"\"\n"
        switch
          case tpcdbar[1]="A-EAN13":
            Print File Arquivo "B075,285,0,E30,2,2,60,B,\""+CDBAR2[1]+"\"\n"
          
            Print File Arquivo "B075,380,0,E30,2,2,60,B,\""+CDBAR[1]+"\"\n"
            Print File Arquivo "B075,475,0,E30,2,2,60,B,\""+CDBAR[1]+"\"\n"

          otherwise                :
            Print File Arquivo "B075,285,0,1,2,30,50,B,\""+CDBAR2[1]+"\"\n"

            Print File Arquivo "B075,380,0,1,2,30,50,B,\""+CDBAR[1]+"\"\n"
            Print File Arquivo "B075,475,0,1,2,30,50,B,\""+CDBAR[1]+"\"\n"

        endswitch
EndIf

If Not IsBlank(CITEM[2])
   Then Print File Arquivo "GG600,001,\""+"LO_0227"+"\"\n"
        Print File Arquivo "A420,090,0,2,1,1,N,\""+REF_MMAAAA+"\"\n"
        Print File Arquivo "A420,120,0,2,1,1,N,\""+PR1[2]+"\"\n"
        Print File Arquivo "A420,140,0,2,1,1,N,\""+PR2[2]+"\"\n"
        Print File Arquivo "A420,165,0,2,1,1,N,\""+SubStr(DITEM[2],01,23)+"\"\n"
        Print File Arquivo "A420,190,0,2,1,1,N,\""+Ltrim(SubStr(DITEM[2],24,30))+"\"\n"
        Print File Arquivo "A420,215,0,2,1,1,N,\""+DCOR[2]+"\"\n"        
        Print File Arquivo "A450,245,0,2,2,1,N,\""+REFER[2]+"\"\n"
        switch
          case tpcdbar[2]="A-EAN13":
            Print File Arquivo "B460,285,0,E30,2,2,60,B,\""+CDBAR2[2]+"\"\n"
    
            Print File Arquivo "B460,380,0,E30,2,2,60,B,\""+CDBAR[2]+"\"\n"
            Print File Arquivo "B460,475,0,E30,2,2,60,B,\""+CDBAR[2]+"\"\n"

          otherwise                :
            Print File Arquivo "B460,285,0,1,2,30,50,B,\""+CDBAR2[2]+"\"\n"

            Print File Arquivo "B460,380,0,1,2,30,50,B,\""+CDBAR[2]+"\"\n"
            Print File Arquivo "B460,475,0,1,2,30,50,B,\""+CDBAR[2]+"\"\n"

        endswitch
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

Download_Logo_Termica("ZEBRA","LO_0227")

If IsAssigned(DITEA)
   Then Release Vars PR1, PR2, DITEM, CITEM, DCOR, CDBAR, CDBAR2, REFER
EndIf
Array  PR1[2]
Array  PR2[2]
Array  DITEM[2]
Array  CITEM[2]
Array  DCOR[2] 
Array  CDBAR[2]
Array CDBAR2[2]
Array  REFER[2]
array tpcdbar[2]

Arquivo="SIRI.ejf"
Deleta_Arquivo(Arquivo)

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

ne=2
Coedit "Answer"
Scan
  te=[Quantidade]
  LPR1=""
  LPR2=""

  CodItem=[Codigo do Item]
  CodItem=PegaCodigoRaiz(CodItem)

  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]=""
                PR2[i]=""
              DITEM[i]=""
              CDBAR[i]=""
             CDBAR2[i]=""              
              CITEM[i]=""
               DCOR[i]=""
              REFER[i]=""
            tpcdbar[i]=""
            EndFor
            ne=1
    EndIf
      PR1[ne]=LPR1
      PR2[ne]=LPR2
    DITEM[ne]=[Descricao do Item]
    CITEM[ne]=[Codigo do Item   ]
     DCOR[ne]=Substr([Descricao da Cor_Tecido],1,30)
    CDBAR[ne]=[Codigo de Barras ]
   CDBAR2[ne]=CodItem
    REFER[ne]="REF "+[Referencia]
  tpcdbar[ne]=[Tipo Codigo_Barras]

    if tpcdbar[ne]="A-EAN13"
       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
