;** RO_0167 ********************************************************************
;** Imprime a Digitacao do Romaneio                 ** FUNDICAO SAO GERALDO ** *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido  em: 23/03/2007 por Nikolas
;Alterado      em: 07/05/2007 por Nikolas
;Motivo Alteracao: Ajustes OBS fixa
;Alterado      em: 31/07/2007 por Humberto F. Santos.
;Motivo Alteracao: Inclusao do Telefone no Romaneio.
;Ultima Alteracao: 14/08/2007 por Antonio Marcelo Alves
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 30/07/2009 por Humberto F Santos.
;Motivo Alteracao: Data de Emissao
;Ultima Alteracao: 19/03/2010 por Humberto F Santos.
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 10/09/2010 por Bruno Carvalho
;Motivo Alteracao: End. de Entrega foi retirado do RO
;Ultima Alteracao: 05/12/2011  por Humberto Felipe Santos
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 30/01/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado [Informacoes_Adicionais]
;Ultima Alteracao: 26/09/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes no controle das linhas para imprimir em meia folha *An¡vel realizou altera‡äes em 24/09/19  

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPFAT()

;************************** IMPRESSAO DO CABECALHO *****************************
If Not IsAssigned(NOMEMPRESA)
   Then NOMEMPRESA=""
EndIf
Moveto "Faturac"
Print File ARQIMP chr(27)+chr(67)+chr(33) ;Imprime 33 Linhas por pagina
Print File ARQIMP CI_10CPP
Print File ARQIMP CI_6LPP

Print File ARQIMP "CONTROLE INTERNO - Emissao:" +Spaces(01)+Format("D13",[Data de Emissao])+Spaces(02)+"Impressao: "+Format("D10",Today())+Spaces(01)+"-"+Time()+ "\n"

Print File ARQIMP Spaces(40)+CI_IEXP+CI_INEG+"Orcamento N§ "+Format("W06.3,AL",NOTAFISC)+CI_FEXP+"\n"

Print File ARQIMP CI_10CPP+CI_6LPP+"Cliente : "+Format("W05,AL",[Codigo])+Format("W46,AL",[Razao Social])+"\n"

Print File ARQIMP Spaces(10)+Format("W40,AL",[Endereco])+"\n"
Print File ARQIMP Spaces(10)+Format("W20,AL",[Bairro])
Print File ARQIMP Format("W20,AL",[CEP])+"\n"

Print File ARQIMP Spaces(10)+Format("W20,AL",[Cidade])
Print File ARQIMP Format("W10,AL",[UF])+ Spaces(01)+ Format("W15,AL",[Telefone])+"\n"

Print File ARQIMP "Vendedor: "+Format("W05,AL",[Codigo do Representante])
Print File ARQIMP Format("W25,AL",[Nome Fantasia Represent])+"\n"
Print File ARQIMP CI_15CPP+CI_FNEG

;********************* IMPRESSAO DOS ITENS ********************************
Print File ARQIMP "--------------------------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP Spaces(02)+"Item                                          Informacoes Adicionais Documento Fiscal          Un  Quantidade  Unitario        Total"+"\n"
Print File ARQIMP "--------------------------------------------------------------------------------------------------------------------------------------"+"\n"
Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
CONTADOR = 0

While [Numero da OF]=[FaturaC->Numero da OF]
  Print File ARQIMP Spaces(02)+Format("W02,AL",[Item da OF])
  Print File ARQIMP Spaces(01)+Format("W11,AL",[Codigo do Item])
  Print File ARQIMP Spaces(01)+Format("W30,AL",[Descricao do Item])
  Print File ARQIMP Spaces(01)+Format("W48,AL",[Informacoes_Adicionais])
  Print File ARQIMP Spaces(01)+Format("W03,Al",[Unidade Fiscal])
  Print File ARQIMP Format("W11,EIC",[Quantidade])
  Print File ARQIMP Format("W10.2,EIC",[Preco Unitario])
  Print File ARQIMP Format("W13.2,EIC",[Preco Total])+"\n"
  Skip
  If EOT() Then QuitLoop EndIf
  CONTADOR = CONTADOR + 1
EndWhile

For ITEM From CONTADOR To 6
    Print File ARQIMP "\n"
EndFor
Print File ARQIMP "--------------------------------------------------------------------------------------------------------------------------------------"+"\n"

;********************* IMPRESSAO DOS TOTAIS **************************
Moveto "FaturaC"

Print File ARQIMP Spaces(104)+"Mercadorias........"+Format("W11.2,EIC",[Valor Mercadoria])+"\n"

Print File ARQIMP CI_INEG+"  * FAVOR ENVIAR O CHEQUE PELO MOTORISTA *"+CI_FNEG+Spaces(43)

Print File ARQIMP Spaces(19)+"Desconto"+Format("W06.2,EIC",[Taxa de Desconto]) + "%...."+Format("W11.2,EIC",[Valor Desconto])+"\n"
Print File ARQIMP Spaces(104)+        "Total.............."+Format("W11.2,EIC",[Valor Mercadoria Liquido])+"\n"
Print File ARQIMP Spaces(104)+CI_INEG+"Valor Substituicao."+Format("W11.2,EIC",[Valor Despesas Acessorias])+CI_FNEG+"\n"

imprimeobs()
LocalEntrega()

Print File ARQIMP "  Cond. Pagto..: "+[Descricao CondPagto]
Print File ARQIMP "   NP: "+StrVal([Numero de Parcelas])
Print File ARQIMP "   CD: "+[Composicao de Dias]+"\n"

Vencimentos()

;************************* IMPRESSAO DO RODAPE *********************************
;Print File ARQIMP "\n"
Print File ARQIMP Spaces(14)+"   /   /     -                                   " + "\n"
Print File ARQIMP Spaces(14)+"-------------------------------------------------" + "\n"
Print File ARQIMP Spaces(14)+"              Data e Assinatura"+"\n"
Print File ARQIMP CI_6LPP
Print File ARQIMP CI_10CPP
Print File ARQIMP "\f"
EndProc

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

TamObs=132

s="Observa‡äes..: "+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 de Impressao de Local Entrega                                        *
;*******************************************************************************
proc LocalEntrega()
private s,regfaturacc

getrecord "FaturaCC" [FaturaC->Numero da OF] to regfaturacc
if not retval
   then return
endif
If regfaturacc["Endereco de Entrega"]="O MESMO" or
   regfaturacc["Endereco de Entrega"]=[FaturaC->Endereco]
   then return
endif   
   
s="Local Entrega: "+regfaturacc["Endereco de Entrega"]+" - "+regfaturacc["Bairro de Entrega"]+" - "+regfaturacc["CEP de Entrega"]+" - "+
                    regfaturacc["UF de Entrega"]+"/"+regfaturacc["Cidade de Entrega"]

Print File ARQIMP CI_INEG+"  "+s+CI_FNEG+"\n"

endproc

;*******************************************************************************
;* Rotina de Impressao dos Vencimentos                                         *
;*******************************************************************************
Proc Vencimentos()
private s1,s2,s3, kv

s1="  Vencimentos..: "
s2="                 "
s3="                 "
kv=0

Moveto "FaturaV"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While [Numero da OF]=[FaturaC->Numero da OF]
 if kv=10
    then Print File ARQIMP s1+"\n"
         Print File ARQIMP s2+"\n"
         Print File ARQIMP s3+"\n"

         kv=0
         s1="               "
         s2="               "
         s3="               "
 endif

 kv=kv+1
 s1=s1+spaces(08)+[Forma de Pagamento]+Spaces(02)
 s2=s2+Format("D13",[Data])+Spaces(02)
 s3=s3+Format("W10.2,EIC",[Valor])+Spaces(02)

  Skip
  If EOT() Then QuitLoop EndIf
EndWhile
if kv>0
  then Print File ARQIMP s1+"\n"
       Print File ARQIMP s2+"\n"
       Print File ARQIMP s3+"\n"
endif
endproc


;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************

ArqImp=PrivDir()+"Ro_0167.Txt"
If IsFile(ArqImp)
   Then Deleta_Arquivo(ARQIMP)
EndIf

AGUARDE("Imprimindo Romaneio -> "+NOTAFISC)
IMPFAT()

;---- Imprime Arquivo Impressao ------------------------------------------------
ImpriArq(ARQIMP)

Release Vars ITEM,CONTADOR
Release Procs IMPFAT,VENC,imprimeobs,LocalEntrega,Vencimentos
LIMPAGUARDE()


