;** ENT_0278 *******************************************************************
;** Imprime o Comprovante de Entrega                                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 03/05/2018 por Bruno Carvalho
;Ultima Alteracao: 22/01/2019 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Ajustes observacoes        
;Ultima Alteracao: 22/01/2019 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Adicionado endere‡o de entrega, sendo mostrado caso seja diferente do endere‡o que esta no Fatura e adicionado veiculo 
;Ultima Alteracao: 10/02/2020 por Bruno Carvalho                           
;Motivo Alteracao: Ajustes na impressÆo ao escolher entre impressoras DARUMA ou BEMATECH
;Ultima Alteracao: 15/03/2021 por Bruno Carvalho                           
;Motivo Alteracao: Adicionado op‡Æo DispositivoI() p/ permitir imprimir romaneio de entrega na daruma nao fiscal 

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPENT()
;************************* IMPRESSAO DO CABECALHO *****************************
If Not IsAssigned(NOMEMPRESA)
   Then NOMEMPRESA=""
EndIf
Pega_Endereco_Fatura([FaturaC->Numero da OF])

ENT_END = ""
ENT_BAI = ""
ENT_CEP = "" 
ENT_CID = ""
ENT_UF  = ""

GetRecord "\\Sistemas\\Vendas\\FaturaCC" [FaturaC->Numero da OF] To REG_ENDFATC
If RetVal
   Then ENT_END = REG_ENDFATC["Endereco de Entrega"]
        ENT_BAI = REG_ENDFATC["Bairro de Entrega"  ]
        ENT_CEP = REG_ENDFATC["CEP de Entrega"     ] 
        ENT_CID = REG_ENDFATC["Cidade de Entrega"  ]
        ENT_UF  = REG_ENDFATC["UF de Entrega"      ]
EndIf        

Moveto "FaturaC"
If ENT_END<>"O MESMO" And ENT_END<>"" And ENT_END<>[Endereco]
   Then 
   Else ENT_END = [Endereco]
        ENT_BAI = [Bairro  ]
        ENT_CEP = [CEP     ] 
        ENT_CID = [Cidade  ]
        ENT_UF  = [UF      ]
EndIf

Print File ARQIMP CI_15CPP
Print File ARQIMP Fill("=",TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+"\n"
Print File ARQIMP CI_IEXP
Print File ARQIMP CI_INEG

Print File ARQIMP TITULO+"\n"

Print File ARQIMP CI_FEXP
Print File ARQIMP CI_FNEG

Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+
                  "EMISSAO: "+Format("D13",Today())+"-"+Time()+"  "+" NUMERO:  "+Format("W06.3,AL",NOTAFISC))+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(04)+
                  "VEND: "+Format("W21,AL",[Nome Fantasia Represent]))+"\n"

Print File ARQIMP Fill("-",TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+"\n"

Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+
                  "CLIENTE..: "+Format("W05,AL",[Codigo])+Format("W31,AL",[Razao Social]))+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(12) + 
                  Format("W31,AL",[Nome Fantasia EmitDest]))+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+"CPF/CNPJ.: "+Format("W27,AL",[CGC]))+"\n"

CLIENTE=[Razao Social]

VEICULO=[Placa do Veiculo]
If [UF Veiculo]<>""
   Then VEICULO = VEICULO + "/" + [UF Veiculo]
EndIf

If [RNTC Veiculo]<>""
   Then VEICULO = VEICULO + "  RNTC: " + [RNTC Veiculo]
EndIf

Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+"ENDERECO.: "+ Format("W36,AL",ENT_END))+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+"BAIRRO...: "+ Format("W20,AL",ENT_BAI))+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+"FONE.....: " + Format("W19,AL",[Telefone]))+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+"CIDADE...: "+
                  Format("W20,AL",ENT_CID)+Spaces(2)+"PEDIDO: "+[Numero do Pedido])+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),Spaces(01)+"VEICULO..: "+VEICULO)+"\n"

;******************************** IMPRESSAO DOS ITENS ********************************
Print File ARQIMP Fill("=",TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+"\n"

Print File ARQIMP "   CODIGO     DESCRICAO"+"\n"
Print File ARQIMP "              MARCA    "+"\n"
Print File ARQIMP "       QTD  UF"+"\n"

Print File ARQIMP Fill("=",TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+"\n"

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
QUANT=0
TOT  =0
;******************************** IMPRESSAO DOS ITENS ********************************
While ([Numero da OF]=[FaturaC->Numero da OF])
  If [Entrega]<>"S"
     Then CONTA_ITEM_ENTREGA = CONTA_ITEM_ENTREGA + 1  
          getrecord "\\sistemas\\estoque\\itens" [Codigo do Item] to regitens
          if retval
             then marca=regitens["Descricao da Marca"]
             else marca=""
          endif
          Print File ARQIMP Spaces(03)+Format("W11,AL",[Codigo do Item])+
                            Format("W30,AL",[Descricao do Item])+"\n"
          Print File ARQIMP Spaces(14)+Format("W30,AL",marca)+"\n"
          Print File ARQIMP Format("W11.3,EIC",[Quantidade])+" "+
                            Format("W03,AL",[Unidade Fiscal])+"\n"
                            If Not IsBlank([Informacoes_Adicionais])
                               Then Print File ARQIMP Spaces(01)+Format("W46,AL","Inf. Item: "+
                                    SubStr([Informacoes_Adicionais],1,35))+"\n"
                                    If Not IsBlank(SubStr([Informacoes_Adicionais],36,46))
                                       Then Print File ARQIMP Spaces(01)+
                                            Format("W46,AL",SubStr([Informacoes_Adicionais],36,46))+"\n"
                                    EndIf   
                            EndIf
         QUANT=QUANT+[Quantidade]                            
   EndIf                  
   Skip
   If EOT() Then QuitLoop EndIf
EndWhile

Moveto "FaturaC"
Print File ARQIMP Spaces(05)+"------"+"\n"
Print File ARQIMP Spaces(02)+Format("W09.3,EIC",QUANT)+"\n"

imprimeobs()

Print File ARQIMP Fill("=",TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+"\n\n\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP),"RECEBI AS MERCADORIAS ACIMA _____/_____/_______")+"\n\n\n"

TM = Len(Rtrim(CLIENTE))+6
If TM>TAMANHO_COLUNA_IMPRESSORA_CI_15CPP Then TM = TAMANHO_COLUNA_IMPRESSORA_CI_15CPP EndIf

Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+",AC",Fill("_",TM))+"\n"
Print File ARQIMP Format("W"+StrVal(TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+",AC",Rtrim(CLIENTE))+"\n\n"
Print File ARQIMP Fill("=",TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+"\n"
Print File ARQIMP Spaces(3)+"NAO VALE COMO N.F PROCURE O CUPOM NO CAIXA"+"\n"
Print File ARQIMP Spaces(3)+"        AGRADECEMOS A PREFERENCIA"+"\n"
Print File ARQIMP Fill("-",TAMANHO_COLUNA_IMPRESSORA_CI_15CPP)+"\n\n\n\n\n"
Print File ARQIMP EPSON_GUILHOTINA

EndProc ; (IMPENT)

;*******************************************************************************
;* Rotina de Impressao de Observa‡äes                                          *
;*******************************************************************************
proc imprimeobs()
private TamObs, nlobs, posobs, i, s

if isblank([Observacao na Nota Fiscal])
   then return
endif   

TamObs=TAMANHO_COLUNA_IMPRESSORA_CI_15CPP

s="Observacoes: "+Tira_QuebraLinha([Observacao na Nota Fiscal])

nlobs=Len(s)/tamobs
If nlobs-Int(nlobs)>0
   Then nlobs=Int(nlobs)+1
   Else nlobs=Int(nlobs)
EndIf

posobs=1
For i from 1 to nlobs
  Print File ARQIMP CI_INEG+SubStr(s,posobs,tamobs)+CI_FNEG+"\n"
  posobs=posobs+tamobs
EndFor

endproc

;*******************************************************************************
;* Rotina p/ Checar as Entregas                                                *
;*****************+*************************************************************
Proc Entrega()
Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While ([Numero da OF]=[FaturaC->Numero da OF])
  If [Entrega]="S"
     Then ENT_BALCAO=True
     Else ENT_PATIO =True
  EndIf
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile
EndProc ; (Entrega)

;*******************************************************************************
;* Rotina Principal                                                            *
;*****************+*************************************************************
NUMCOPIA=PARAM_NVIAS_ROMANEIO
MSGDISPOSITIVO="Entrega"
DispositivoI("")
If OK=""
   Then Return
EndIf
         
BALCAO=False
PATIO =False
ENT_BALCAO=False
ENT_PATIO =False
ArqImp=PrivDir()+"ENT_0278.Txt"
If IsFile(ArqImp)
   Then Deleta_Arquivo(ARQIMP)
EndIf

If Not IsAssigned(BIBSHOW_IMPRESSORA_SETADA)                                   ;Daruma 
   Then CI_15CPP = CI_10CPP
        TAMANHO_COLUNA_IMPRESSORA_CI_15CPP = 48 
EndIf

If Isassigned(BIBSHOW_IMPRESSORA_SETADA) And (BIBSHOW_IMPRESSORA_SETADA = "EPSON" Or BIBSHOW_IMPRESSORA_SETADA="BEMATECH")
   Then Print File ARQIMP EPSON_INICIALIZA_IMPRESSAO 
        Print File ARQIMP CI_8LPP
        Print File ARQIMP CI_15CPP 
   Else Print File ARQIMP CI_15CPP      
EnDIf 

CONTA_ITEM_ENTREGA=0
TITULO="ENTREGA"
Entrega()
IMPENT()

;---- Imprime Arquivo Impressao ------------------------------------------------
If CONTA_ITEM_ENTREGA>0
   Then AUX_NUMCOPIA = NUMCOPIA
        NUMCOPIA=1
        ImpriArq(ARQIMP)
        NUMCOPIA = AUX_NUMCOPIA
        Release Vars NUMCOPIA
EndIf

Release Vars CLIENTE,ITEM,LOCAL,ENTREGA,ENT_BALCAO,ENT_PATIO,
             BALCAO,PATIO
Release Procs IMPENT,ENTREGA,imprimeobs
