;** RO_0121 ********************************************************************
;** Imprime a Digitacao do Romaneio                         ** Santa Alice **  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 10/12/2010 por Bruno Carvalho
;Alterado      em:   /  /     por         

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
; N§ de Itens : 13


;************************** IMPRESSAO DO CABECALHO *****************************
Proc 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_15CPP
Print File ARQIMP CI_6LPP
 
Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP "Orcamento: "+Format("W06.3,AL",NOTAFISC)+"    Data: "+Format("D13",Today())+"\n"
Print File ARQIMP "============================================================================================================================"+"\n"
Print File ARQIMP "  Cliente: "+Format("W05,AL",[Codigo])+Format("W46,AL",[Razao Social])+Spaces(20)
Print File ARQIMP "Telefone: "+Format("W25,AL",[Telefone])+"\n"
Print File ARQIMP " Endereco: "+Ltrim(RTrim(Format("W30,AL",[Endereco])))+" - "+Ltrim(RTrim(Format("W20,AL",[Bairro])))
Print File ARQIMP Spaces(05)+Ltrim(RTrim(Format("W20,AL",[Cidade])))+"/"+Ltrim(RTrim(Format("W02,AL",[UF])))+"\n"
Print File ARQIMP "      CGC: "+Format("W18,AL",[CGC])+"\n"
Print File ARQIMP "============================================================================================================================"+"\n"
Print File ARQIMP " Item|Codigo     |Referencia|   Quantidade| Und|Descricao do Produto                            |VrUnitario|     Subtotal"+"\n"
Print File ARQIMP "-----+-----------+----------+-------------+----+------------------------------------------------+----------+----------------"+"\n"
                  ; 123x 1234567890x 1234567890 123456789012x 123x 12345678901234567890123456789012345678901234567x 123456789x 123456789012x
                  ;-   4-        11-         10-           13-   4-                                              48-        10-           13
                                                                                                                  
EndProc ;(Cabecalho)                           

;************************** IMPRESSAO DOS ITENS ********************************
Proc Itens()
Print File ARQIMP CI_6LPP

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
QUANT    = 0
TOT      = 0
CONTADOR = 0
AUX_REF  = ""

While [Numero da OF]=[FaturaC->Numero da OF]
  Checa_Linha(1) 
  Moveto [Codigo do Item]
                
  LINHA_ITEM = Spaces(01)+ Format("W04,AR",StrVal([Item da OF]))+"|"
  LINHA_ITEM = LINHA_ITEM + Format("W11,AL",[Codigo do Item])+"|"

  If Busca_Lookup("Codigo do Item",[Codigo do Item],"")
     Then AUX_REF=REG_BUSCA_LOOKUP["Referencia"]
  EndIf
  KeyPress "Esc"
  
  If AUX_REF<>""
     Then  LINHA_ITEM = LINHA_ITEM + Format("W10,AL",AUX_REF)+"|"
     Else  LINHA_ITEM = LINHA_ITEM + Spaces(10)+"|"
  EndIf
  
  LINHA_ITEM = LINHA_ITEM + Format("W13.3,EIC",[Quantidade])+"|"
  LINHA_ITEM = LINHA_ITEM + Format("W03,AR",[Unidade Fiscal])+Spaces(01)+"|"
  LINHA_ITEM = LINHA_ITEM + Format("W48,AL",[Descricao do Item])+"|"
  LINHA_ITEM = LINHA_ITEM + Format("W10.2,EIC",[Preco Unitario])+"|"
  LINHA_ITEM = LINHA_ITEM + Format("W13.2,EIC",[Preco Total])
  
  Print File ARQIMP LINHA_ITEM + "\n"
                                                   
  TOT   = TOT + [Preco Total]
  QUANT = QUANT + [Quantidade]
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

For ITEM From CONTADOR To PARAM_NITENS
    Print File ARQIMP "\n"
EndFor
Print File ARQIMP CI_8LPP  
EndProc ;(Itens)


;********************* IMPRESSAO DOS TOTAIS **************************
Proc Rodape(QUEBRAFORM)
Private QUEBRAFORM              

Moveto "FaturaC"

Print File ARQIMP "============================================================================================================================"+"\n"
If QUEBRAFORM 
   Then Print File ARQIMP Spaces(95)+"TOTAL LIQUIDO:  ********  "+"\n"         
   Else Print File ARQIMP Spaces(95)+"TOTAL LIQUIDO:"+Format("W12.2,EIC",[Valor Nota Fiscal])+"\n"                
EndIf                                  
Print File ARQIMP "============================================================================================================================"+"\n"
Moveto [Forma de Pagamento]
  If busca_Lookup("Tipo do Pagamento",[Forma de Pagamento],"")
     Then DESC_PAGAMENTO = REG_BUSCA_LOOKUP["Descricao Tipo Pagamento"]
     Else DESC_PAGAMENTO = ""
  EndIf
  KeyPress "Esc"
Print File ARQIMP " Forma de Pagamento: "+Format("W03,AL",[Forma de Pagamento])+Format("W20,AL",DESC_PAGAMENTO)
Moveto [Tipo de Pagamento]
If [Tipo de Pagamento] = "V"
   Then TIPO_PAGAMENTO = "A VISTA"
   Else TIPO_PAGAMENTO = "A PRAZO"
EndIf
Print File ARQIMP "      Vencto: "+Format("W08,AL",TIPO_PAGAMENTO)+"      N§ de Parcelas: "+Format("W03,AL",[Numero de Parcelas])+"\n"

Moveto "FaturaV"
If [Data]<>""
   Then Print File ARQIMP " Data do(s) Vencimento(s): " 
EndIf 
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
If RetVal
   Then While ([Numero da OF]=[FaturaC->Numero da OF])
          Print File ARQIMP Format("D10",[Data])
          Skip
          If [Numero da OF]=[FaturaC->Numero da OF]
            Then Print File ARQIMP ", " 
          EndIf
          If EOT() Then QuitLoop EndIf
        EndWhile
        Print File ARQIMP "\n"
EndIf
Moveto "FaturaC"
Print File ARQIMP "============================================================================================================================"+"\n"

Print File ARQIMP " Placa do Ve¡culo: "+Format("W14,AL",[Placa do Veiculo])+"\n"
LINHA_OBS1 = "      Observacoes: " + Format("W102,AL",SubStr([Observacao na Nota Fiscal],001,102))+"\n"
;LINHA_OBS2 = Spaces(19) + Format("W075,AL",SubStr([Observacao na Nota Fiscal],076,075))+"\n"
;LINHA_OBS3 = Spaces(19) + Format("W075,AL",SubStr([Observacao na Nota Fiscal],152,075))+"\n"

;If SubStr([Observacao na Nota Fiscal],162,080)<>""
;   Then Print File ARQIMP LINHA_OBS1+LINHA_OBS2+LINHA_OBS3  
;        Print File ARQIMP "\n"
;   Else If SubStr([Observacao na Nota Fiscal],081,080)<>""
;           Then Print File ARQIMP LINHA_OBS1+LINHA_OBS2
;                Print File ARQIMP "\n"
;           Else If SubStr([Observacao na Nota Fiscal],001,080)<>""
;                   Then Print File ARQIMP LINHA_OBS1
;                        Print File ARQIMP "\n\n"
;                   Else Print File ARQIMP "\n\n\n"
;                EndIf   
;        EndIf     
;EndIf 

If SubStr([Observacao na Nota Fiscal],001,102)<>""
   Then Print File ARQIMP LINHA_OBS1
   Else Print File ARQIMP "\n"
EndIf

Print File ARQIMP "\n"

;************************* IMPRESSAO DO RODAPE *********************************
If QUEBRAFORM
   Then Print File ARQIMP Spaces(12)+"\027E"+Format("W54,AR","   * * * *  CONTINUA NO PROXIMO FORMULARIO * * * *    ")+"\027F"
   Else Print File ARQIMP Spaces(39)+"   /   /     -                                   " + "\n"
        Print File ARQIMP Spaces(39)+"-------------------------------------------------" + "\n"
        Print File ARQIMP Spaces(39)+"                Data e Assinatura"
EndIf        
Print File ARQIMP CI_6LPP
Print File ARQIMP CI_10CPP
Print File ARQIMP "\f"
EndProc ;(Rodape)

;*******************************************************************************
;* Checa linha na area de impressao dos itens                                  *
;*******************************************************************************
Proc Checa_Linha(Nl)
private nl

If (CONTADOR+nl)>(PARAM_NITENS)
   Then RodaPe(True)
        Cabecalho()
        CONTADOR=nl
        Moveto "FaturaI"
   Else CONTADOR=CONTADOR+nl
EndIf
EndProc

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

AGUARDE("Imprimindo Romaneio -> "+NOTAFISC)
Cabecalho()
Itens()
Rodape(False) 

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

Release Vars VALOR,DATA
Release Procs IMPFAT,VENC
LIMPAGUARDE()