;** Et_0167 ********************************************************************
;* Monta Etiqueta Impressora Termica                               * Modelo 93 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 18/06/2015 por Bruno Carvalho
;Ultima Alteracao: 07/11/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes padrÆo p/ codigo de barras EAN8, EAN13 ou COD128                   
;Ultima Alteracao: 07/11/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Array CITEM[] p/ um melhor controle de impressÆo ao montar -> "P"+StrVal(CR)

;*******************************************************************************
;Etiqueta 3,3 x 2,1
;Codigo do Item + Fator de Conversao Embalagem (Montando uma expressÆo) + C¢digo de Barras
;*******************************************************************************
Proc Monta_Etiqueta()
Moveto "Answer"

Print File Arquivo "O\n"           ; Op‡äes de Impressora
Print File Arquivo "N\n"           ; Este comando limpa a imagem principal (label rec‚m criado) para uma nova imagem (label)
Print File Arquivo "q824\n"        ; Largura da Etiqueta 
Print File Arquivo "Q168,24\n"     ; Altura da Etiqueta, para ser continuo
Print File Arquivo "S2\n"          ; Velocidade da ImpressÆo
Print File Arquivo "D8\n"          ; Densidade da ImpressÆo
Print File Arquivo "ZT\n"          ; Orienta‡Æo da Etiqueta

If Not IsBlank(CITEM[1])
   Then Print File Arquivo "A10,5,0,1,1,2,N,\""+DITEA[1]+"\"\n"
        Print File Arquivo "A10,33,0,1,1,2,N,\""+DITEB[1]+"\"\n"
        Print File Arquivo "A10,61,0,1,1,2,N,\""+DITEC[1]+"\"\n"
        Switch
          Case Search("EAN13",TPBARRA[1])>0 : Print File Arquivo "B20,85,0,E30,2,4,50,B,\""+CDBAR[1]+"\"\n" 
          Case Search("EAN8",TPBARRA[1])>0  : Print File Arquivo "B20,85,0,E80,2,4,50,B,\""+CDBAR[1]+"\"\n"
          OtherWise                         : Print File Arquivo "B20,85,0,1,2,4,50,B,\""+CDBAR[1]+"\"\n"
        EndSwitch  
EndIf
If Not IsBlank(CITEM[2])
   Then Print File Arquivo "A290,5,0,1,1,2,N,\""+DITEA[2]+"\"\n"
        Print File Arquivo "A290,33,0,1,1,2,N,\""+DITEB[2]+"\"\n"
        Print File Arquivo "A290,61,0,1,1,2,N,\""+DITEC[2]+"\"\n"
        Switch
          Case Search("EAN13",TPBARRA[2])>0 : Print File Arquivo "B300,85,0,E30,2,4,50,B,\""+CDBAR[2]+"\"\n"
          Case Search("EAN8",TPBARRA[2])>0  : Print File Arquivo "B300,85,0,E80,2,4,50,B,\""+CDBAR[2]+"\"\n" 
          OtherWise                         : Print File Arquivo "B300,85,0,1,2,4,50,B,\""+CDBAR[2]+"\"\n"
        EndSwitch  
EndIf
If Not IsBlank(CITEM[3])
   Then Print File Arquivo "A575,5,0,1,1,2,N,\""+DITEA[3]+"\"\n"
        Print File Arquivo "A575,33,0,1,1,2,N,\""+DITEB[3]+"\"\n"
        Print File Arquivo "A575,61,0,1,1,2,N,\""+DITEC[3]+"\"\n"
        Switch
          Case Search("EAN13",TPBARRA[3])>0 : Print File Arquivo "B580,85,0,E30,2,4,50,B,\""+CDBAR[3]+"\"\n" 
          Case Search("EAN8",TPBARRA[3])>0  : Print File Arquivo "B580,85,0,E80,2,4,50,B,\""+CDBAR[3]+"\"\n" 
          OtherWise                         : Print File Arquivo "B580,85,0,1,2,4,50,B,\""+CDBAR[3]+"\"\n"
        EndSwitch  
EndIf

If CITEM[1]=CITEM[2] And CITEM[1]=CITEM[3]
   Then Print File Arquivo "P"+StrVal(CR)+"\n"
        ce=ce+((CR-1)*3)
   Else Print File Arquivo "P1\n"
EndIf
ne=3

EndProc

;*******************************************************************************
;* Monta Comandos p/ Impressora Termica                                        *
;*******************************************************************************
Proc Monta_Comandos()
If IsAssigned(DITEA)
   Then Release Vars DITEA, DITEB, DITEC, CITEM, CDBAR, INI,TPBARRA 
EndIf
Array   DITEA[3]
Array   DITEB[3]
Array   DITEC[3]
Array   CDBAR[3]
Array   CITEM[3]
Array TPBARRA[3]

INI = 0

COD_ITEM="***"

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

ne=3
Coedit "Answer"
Scan
  te=[Quantidade]
  If (te-(3-ne))>3
     Then CR=Int((te-(3-ne))/3)
     Else CR=1
  EndIf
  ce=0
  While True
    ce=ce+1
    ne=ne+1
    If ne=4
       Then For i From 1 To 3
              DITEA[i]=""
              DITEB[i]=""
              DITEC[i]=""
              CDBAR[i]=""
              CITEM[i]=""
            TPBARRA[i]=""       
            EndFor
            ne=1
    EndIf
    If COD_ITEM<>[Codigo do Item]
       Then COD_ITEM = [Codigo do Item] 
            GetRecord "\\Sistemas\\Estoque\\Itens" [Codigo do Item] To REG_ITEM
            If RetVal 
               Then AUX_UND = "C/"+Ltrim(StrVal(REG_ITEM["Fator Conversao Embalagem"]))+" UND"
               Else AUX_UND = "C/- UND"     
            EndIf
    EndIf    
    DITEA[ne]=Ltrim(SubStr([Descricao do Item],01,22))
    DITEB[ne]=Ltrim(SubStr([Descricao do Item],23,20))
    DITEC[ne]=AUX_UND
  TPBARRA[ne]=Upper([Tipo Codigo_Barras])
    CDBAR[ne]=[Codigo de Barras]
    CITEM[ne]=[Codigo do Item]
    If ne=3   Then Monta_Etiqueta() EndIf
    If ce>=te Then QuitLoop         EndIf
  EndWhile
EndScan
If ne<3 Then Monta_Etiqueta() EndIf               
Do_It!
ClearAll

ImpriArq(Arquivo)

Sleep 700
Deleta_Arquivo(Arquivo)
ClearAll
EndProc

Monta_Comandos()
Release Procs Monta_Etiqueta,Monta_Comandos
