;** RO_0144 ********************************************************************
;** Imprime a Digitacao do Romaneio                          ** PINTACOR **    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 15/01/2000 por Geraldo Denilson Barroso
;Alterado em     : 06/10/2005 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao das formas de pagamento
;Alterado em     : 11/04/2007 por Nikolas
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 14/08/2007 por Antonio Marcelo Alves
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 01/10/2012 por Kamila Gomes         
;Motivo Alteracao: Ajustes Impressao de totais dos itens
;Ultima Alteracao: 05/10/2012 por Kamila Gomes         
;Motivo Alteracao: Ajustes Impressao de pre‡o unitario dos itens
;Ultima Alteracao: 02/05/2019 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Ajustes obs e layout
;Ultima Alteracao: 14/02/2020 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Ajustes obs e layout

;*******************************************************************************
;* 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 "\027E"

;Print File ARQIMP Format("W57,AL","  ORCAMENTO")+"          N§ "+Format("W06.3,AL",NOTAFISC)+"\n"
;Print File ARQIMP Format("W59,AL","")+Format("D10",Today())+"-"+Time()+"\n"

Print File ARQIMP Format("W57,AL","                      PINTACOLOR IND. QUIMICA LTDA")+"          N§ "+Format("W06.3,AL",NOTAFISC)+"\n"
Print File ARQIMP "\027F"
Print File ARQIMP Format("W59,AL","                     Rua Joao Antonio Goncalves, 321")+Format("D10",Today())+"-"+Time()+"\n"
Print File ARQIMP Format("W65,AL","        Bairro J.A. Goncalves - Tel.: 37-3221-0640/3212-6138")+"\n"
Print File ARQIMP "----------------------------------------------------------------------------"+"\n"

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

Print File ARQIMP "\015"         ;Imprime 17 Caracteres por polegada

Print File ARQIMP Spaces(03)+"End.: "+Format("W40,AL",[Endereco])
Print File ARQIMP "             CNPJ: "+Format("W18,AL",[CGC])+"        Operacao: "+[Codigo da Destinacao]+" "+[Descricao da Destinacao]+"\n"

Print File ARQIMP Spaces(03)+"Bairro: "+Format("W20,AL",[Bairro])
Print File ARQIMP "      CEP: "+Format("W20,AL",[CEP])
Print File ARQIMP "Insc.Est.: "+Format("W20,AL",[IE])+" Vendedor: "+Format("W05,AL",[Codigo do Representante])+Format("W20,AL",[Nome Fantasia Represent])+"\n"

Print File ARQIMP Spaces(03)+"Cidade: "+Format("W20,AL",[Cidade])
Print File ARQIMP "      UF: "+Format("W20,AL",[UF])
Ativ=""
Moveto [Codigo]
Ativa_Lookup()
Locate [Faturac->Codigo]
If Retval
   Then Ativ=[Descricao Atividade]
EndIf
KeyPress "ESC"

Print File ARQIMP " Fone: "+Format("W25,AL",[Telefone])+" "+Format("W15,AL",Ativ)+"\n"

Print File ARQIMP "\015"         ;Imprime 17 Caracteres por polegada

;********************* IMPRESSAO DOS ITENS ********************************
Print File ARQIMP "-----------------------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP "  Seq  Codigo     Descricao                                                                   Un  Quantidade  Unitario        Total"+"\n"
Print File ARQIMP "-----------------------------------------------------------------------------------------------------------------------------------"+"\n"
Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
QUANT    = 0
TOT      = 0
CONTADOR = 0

While [Numero da OF]=[FaturaC->Numero da OF]
  Print File ARQIMP Spaces(02)+Format("W03,AR",StrVal([Item da OF]))
  Print File ARQIMP Spaces(01)+Format("W11,AL",[Codigo do Item])
  Print File ARQIMP Spaces(01)+Format("W75,AL",[Descricao do Item])
  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]+(([Valor do IPI]+[ICMS_ST_Valor])/[Quantidade]))
  Print File ARQIMP Format("W13.2,EIC",[Preco Total]+[Valor do IPI]+[ICMS_ST_Valor])+"\n"

  TOT   = TOT + [Preco Total]+[Valor do IPI]+[ICMS_ST_Valor]
  Skip
  If EOT() Then QuitLoop EndIf
  CONTADOR = CONTADOR + 1
EndWhile

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

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

linha1="     Total.............."+Format("W11.2,EIC",TOT)
linha2="     Desconto"+Format("W06.2,EIC",[Taxa de Desconto]) + "%..."+Format("W12.2,EIC",[Valor Desconto])
linha3="     Frete............."+Format("W12.2,EIC",[Valor do Frete])
linha4="     Total Venda........"+Format("W11.2,EIC",[Valor Nota Fiscal])
imprimeobs()

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(87)+"Ass.: --------------------------------------" + "\n"
Print File ARQIMP CI_6LPP
Print File ARQIMP CI_10CPP
Print File ARQIMP "\f"
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 de Impressao de Observa‡äes                                          *
;*******************************************************************************
proc imprimeobs()
private TamObs, nlobs, posobs, i, s, s2

TamObs=96  

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

if nlobs<5 then nlobs=4 endif

posobs=1
For i from 1 to nlobs

  switch
    case i=1 : s2=linha1 
    case i=2 : s2=linha2 
    case i=3 : s2=linha3 
    case i=4 : s2=linha4
    otherwise: s2=""
  endswitch

  Print File ARQIMP CI_INEG+format("W96,AL",SubStr(s,posobs,tamobs))+CI_FNEG+s2+"\n"
  posobs=posobs+tamobs
EndFor

endproc


;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
ArqImp=PrivDir()+"Ro_0144.Txt"
If IsFile(ArqImp)
   Then Deleta_Arquivo(ARQIMP)
EndIf

AGUARDE("Imprimindo Romaneio -> "+NOTAFISC)

IMPFAT()

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

Release Vars linha1,linha2,linha3,linha4
Release Procs IMPFAT,imprimeobs,Vencimentos
LIMPAGUARDE()


