;** Et_0159A *******************************************************************
;* Monta Etiqueta Impressora Termica - Zebra -                                **
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/05/2015 por Bruno Carvalho
;Ultima Alteracao: 18/06/2015 por Bruno Carvalho
;Motivo Alteracao: Os comandos iniciais p/ a impressÆo estavÆo sendo executados apenas 1 vez (INI=0)                     
;Ultima Alteracao: 22/10/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes no fator de conversÆo da embalagem para sair na frente da descricao do item
;Ultima Alteracao: 22/10/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes na fonte da descri‡Æo do item  
;Ultima Alteracao: 07/11/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes padrÆo p/ codigo de barras EAN8, EAN13 ou COD128 
;Ultima Alteracao: 28/03/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CNPJ
;Ultima Alteracao: 07/11/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Array CDITEM[] p/ um melhor controle de impressÆo ao montar -> "P"+StrVal(CR)

;*******************************************************************************
Proc Monta_Etiqueta()
Moveto "Answer"

Print File Arquivo "O\n"
Print File Arquivo "N\n"
Print File Arquivo "q880\n"
Print File Arquivo "Q400,32\n"
Print File Arquivo "S2\n"
Print File Arquivo "D12\n"
Print File Arquivo "ZT\n" 

If Not IsBlank(CDITEM[1])
   Then 
        Print File Arquivo "A255,20,1,2,2,1,N,\""+DITEA[1]+"\"\n"
        Print File Arquivo "A220,20,1,2,2,1,N,\""+DITEB[1]+"\"\n"
        Switch
          Case Search("EAN13",TPBARRA[1])>0 : Print File Arquivo "B175,35,1,E30,3,8,80,B,\""+CDBAR[1]+"\"\n" 
          Case Search("EAN8",TPBARRA[1])>0  : Print File Arquivo "B175,35,1,E80,3,8,80,B,\""+CDBAR[1]+"\"\n"
          OtherWise                         : Print File Arquivo "B175,35,1,1,3,8,80,B,\""+CDBAR[1]+"\"\n"
        EndSwitch
        switch
          case sys_Codigo_Cliente="0159"    : Print File Arquivo "A050,60,1,2,1,1,N,\"CNPJ: 07.940.543/0002-19\"\n"
        endswitch

EndIf
If Not IsBlank(CDITEM[2])
   Then                
        Print File Arquivo "A535,20,1,2,2,1,N,\""+DITEA[2]+"\"\n"
        Print File Arquivo "A500,20,1,2,2,1,N,\""+DITEB[2]+"\"\n"
        Switch
          Case Search("EAN13",TPBARRA[2])>0 : Print File Arquivo "B455,35,1,E30,3,8,80,B,\""+CDBAR[2]+"\"\n"
          Case Search("EAN8",TPBARRA[2])>0  : Print File Arquivo "B455,35,1,E80,3,8,80,B,\""+CDBAR[2]+"\"\n"
          OtherWise                         : Print File Arquivo "B455,35,1,1,3,8,80,B,\""+CDBAR[2]+"\"\n"
        EndSwitch
        switch
          case sys_Codigo_Cliente="0159"    : Print File Arquivo "A330,60,1,2,1,1,N,\"CNPJ: 07.940.543/0002-19\"\n"
        endswitch
EndIf
If Not IsBlank(CDITEM[3])
   Then       
        Print File Arquivo "A815,20,1,2,2,1,N,\""+DITEA[3]+"\"\n"
        Print File Arquivo "A780,20,1,2,2,1,N,\""+DITEB[3]+"\"\n"
        Switch
          Case Search("EAN13",TPBARRA[3])>0 : Print File Arquivo "B735,35,1,E30,3,8,80,B,\""+CDBAR[3]+"\"\n" 
          Case Search("EAN8",TPBARRA[3])>0  : Print File Arquivo "B735,35,1,E80,3,8,80,B,\""+CDBAR[3]+"\"\n"
          OtherWise                         : Print File Arquivo "B735,35,1,1,3,8,80,B,\""+CDBAR[3]+"\"\n"
        EndSwitch
        switch
          case sys_Codigo_Cliente="0159"    : Print File Arquivo "A610,60,1,2,1,1,N,\"CNPJ: 07.940.543/0002-19\"\n"
        endswitch
EndIf   

If CDITEM[1]=CDITEM[2] And CDITEM[1]=CDITEM[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, CDITEM, CDBAR, TPBARRA
EndIf
Array   DITEA[3]
Array   DITEB[3]
Array TPBARRA[3]
Array   CDBAR[3]
Array  CDITEM[3]
Array   PRUNI[3]

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

ne=3
Coedit "Answer"
Scan
  GetRecord "\\Sistemas\\Estoque\\Itens" [Codigo do Item] To ITEM
  If RetVal
     Then UN_ITEM           = Substr(ITEM["Unidade Embalagem"],1,2)
          FATOR_CONVERSAO   = ITEM["Fator Conversao Embalagem"]
          If FATOR_CONVERSAO>0
             Then FATOR_CONVERSAO = StrVal((NumVal(FATOR_CONVERSAO)))
             Else FATOR_CONVERSAO = StrVal(FATOR_CONVERSAO) 
          EndIf   
          If SubStr(FATOR_CONVERSAO,1,1)="."
             Then FATOR_CONVERSAO = "0"+FATOR_CONVERSAO
          EndIf
     Else UN_ITEM           = ""
          FATOR_CONVERSAO   = ""
  EndIf  
  
  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]=""
              CDBAR[i]=""
             CDITEM[i]=""
              PRUNI[i]=""
            EndFor
            ne=1
    EndIf
    DITEA[ne]=Ltrim(SubStr([Descricao do Item],01,26))
    DITEB[ne]=Ltrim(SubStr([Descricao do Item],27,06))+Format("W20,AR","CAP ("+FATOR_CONVERSAO+" "+UN_ITEM+")")
  TPBARRA[ne]=Upper([Tipo Codigo_Barras])  
    CDBAR[ne]=[Codigo de Barras]
   CDITEM[ne]=[Codigo do Item]
    PRUNI[ne]=Strval([Preco Unitario])
    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
