;** Et_Z425A *******************************************************************
;* Monta Etiqueta p/ Impressora Termica - Eltron                   * Modelo 118 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 15/10/2018 por Bruno Carvalho
;Ultima Alteracao: 07/11/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes padrÆo p/ codigo de barras EAN8, EAN13 ou COD128 

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

Moveto "Answer"
Print File Arquivo "O\n"
Print File Arquivo "N\n"
Print File Arquivo "q640\n"
Print File Arquivo "Q440+\n"
Print File Arquivo "S8\n"
Print File Arquivo "D12\n"
Print File Arquivo "ZB\n"

If Not IsBlank(LINHA6[1])
   Then Print File Arquivo "A010,060,0,3,1,1,N,\""+LINHA1[1]+"\"\n"    
        Print File Arquivo "A010,100,0,3,1,1,N,\""+LINHA2[1]+"\"\n"
        Print File Arquivo "A010,125,0,3,1,1,N,\""+LINHA3[1]+"\"\n"
        Print File Arquivo "A010,170,0,2,1,1,N,\""+LINHA4[1]+"\"\n"
        Print File Arquivo "A010,195,0,2,1,1,N,\""+LINHA5[1]+"\"\n"
        Print File Arquivo "A010,220,0,2,1,1,N,\""+LINHA7[1]+"\"\n"
        
        ;**** 1§ Cądigo de Barras **********************************************
        Switch
          Case Search("EAN13",TPBARRA[1])>0 : Print File Arquivo "B035,260,0,E30,2,1,50,B,\""+LINHA6[1]+"\"\n" 
          Case Search("EAN8",TPBARRA[1])>0  : Print File Arquivo "B035,260,0,E80,2,1,50,B,\""+LINHA6[1]+"\"\n" 
          OtherWise                         : Print File Arquivo "B045,260,0,1,2,1,40,B,\""+LINHA6[1]+"\"\n"
        EndSwitch  
        
        ;**** 2§ Cądigo de Barras **********************************************
        Switch
          Case Search("EAN13",TPBARRA[1])>0 : Print File Arquivo "B035,360,0,E30,2,1,50,B,\""+LINHA6[1]+"\"\n"  
          Case Search("EAN8",TPBARRA[1])>0  : Print File Arquivo "B035,360,0,E80,2,1,50,B,\""+LINHA6[1]+"\"\n" 
          OtherWise                         : Print File Arquivo "B045,360,0,1,2,1,40,B,\""+LINHA6[1]+"\"\n"
        EndSwitch  
EndIf

If Not IsBlank(LINHA6[2])
   Then Print File Arquivo "A330,060,0,3,1,1,N,\""+LINHA1[2]+"\"\n"    
        Print File Arquivo "A330,100,0,3,1,1,N,\""+LINHA2[2]+"\"\n"
        Print File Arquivo "A330,125,0,3,1,1,N,\""+LINHA3[2]+"\"\n"
        Print File Arquivo "A330,170,0,2,1,1,N,\""+LINHA4[2]+"\"\n"
        Print File Arquivo "A330,195,0,2,1,1,N,\""+LINHA5[2]+"\"\n"
        Print File Arquivo "A330,220,0,2,1,1,N,\""+LINHA7[2]+"\"\n"

        ;**** 1§ Cądigo de Barras **********************************************
        Switch
          Case Search("EAN13",TPBARRA[2])>0 : Print File Arquivo "B330,260,0,E30,2,1,50,B,\""+LINHA6[2]+"\"\n" 
          Case Search("EAN8",TPBARRA[2])>0  : Print File Arquivo "B330,260,0,E80,2,1,50,B,\""+LINHA6[2]+"\"\n"
          OtherWise                         : Print File Arquivo "B360,260,0,1,2,1,40,B,\""+LINHA6[2]+"\"\n" 
        EndSwitch
        
        ;**** 2§ Cądigo de Barras **********************************************
        Switch
          Case Search("EAN13",TPBARRA[2])>0 : Print File Arquivo "B330,360,0,E30,2,1,50,B,\""+LINHA6[2]+"\"\n" 
          Case Search("EAN8",TPBARRA[2])>0  : Print File Arquivo "B330,360,0,E80,2,1,50,B,\""+LINHA6[2]+"\"\n" 
          OtherWise                         : Print File Arquivo "B360,360,0,1,2,1,40,B,\""+LINHA6[2]+"\"\n" 
        EndSwitch  
EndIf
 
If LINHA6[1]=LINHA6[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()
 
If IsAssigned(LINHA1)
   Then Release Vars LINHA1,LINHA2,LINHA3,LINHA4,LINHA5,LINHA6,LINHA7,TPBARRA,REG_ITEM,TPBARRA
EndIf

Array  LINHA1[2]
Array  LINHA2[2]
Array  LINHA3[2]
Array  LINHA4[2]
Array  LINHA5[2]
Array  LINHA6[2]
Array  LINHA7[2]
Array TPBARRA[2]

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

ne=2
Coedit "Answer"
Scan
  REFERENCIA   = ""
  DEPARTAMENTO = ""
  DESC_COR     = ""
  TAMANHO      = ""
  COLECAO      = ""  
  GetRecord "\\Sistemas\\Estoque\\Itens" [Codigo do Item] To REG_ITEM 
  If RetVal
     Then DEPARTAMENTO = REG_ITEM["Descricao do Departamento"]
          DESC_COR     = REG_ITEM["Descricao da Cor_Tecido"]
          TAMANHO      = StrVal(REG_ITEM["DTamanho"])
          REFERENCIA   = REG_ITEM["Referencia"]
          COLECAO      = REG_ITEM["Descricao da Marca"]
  EndIf
  
  If TAMANHO<>""
     Then For ii From 1 To Len(TAMANHO)
            If SubStr(TAMANHO,ii,1)="0"
               Then If ii>1
                       Then TAMANHO = " "+SubStr(TAMANHO,ii+1,Len(TAMANHO))
                       Else TAMANHO = SubStr(TAMANHO,ii-1,Len(TAMANHO))+" "+SubStr(TAMANHO,ii+1,Len(TAMANHO))
                    EndIf   
               Else QuitLoop
            EndIF    
          EndFor
          TAMANHO = Rtrim(Ltrim(TAMANHO)) 
  EndIf   

  te      = [Quantidade]
 ;CodItem = PegaCodigoRaiz([Codigo do Item])
  
  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
               LINHA1[i]=""
               LINHA2[i]=""
               LINHA3[i]=""
               LINHA4[i]=""
               LINHA5[i]=""
               LINHA6[i]=""
               LINHA7[i]=""
              TPBARRA[i]=""
            EndFor
            ne=1
    EndIf
    LINHA1[ne] = Format("W20,AC",Rtrim(Ltrim(DEPARTAMENTO))) 
    LINHA2[ne] = Format("W20",Ltrim(SubStr([Descricao do Item],01,20)))
    LINHA3[ne] = Format("W20",Ltrim(SubStr([Descricao do Item],21,20)))
    LINHA4[ne] = Format("W15","COR: "+DESC_COR)+" "+Format("W8","TAM: "+Ltrim(TAMANHO))
    LINHA5[ne] = Format("W23","REF: "+REFERENCIA)
    LINHA6[ne] = [Codigo de Barras]
    LINHA7[ne] = Format("W23","COL: "+COLECAO) 
   TPBARRA[ne] = Upper([Tipo Codigo_Barras])
    
    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
