;** Ro_0102C *******************************************************************
;** Imprime a Digitacao do Romaneio                Concretos Vico              *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 20/11/2013 por Andrey Fillipe
;Alterado em     : 10/02/201  por Bruno Carvalho
;Motivo Alteracao: Corigido valordodesconto onde nÆo estava sendo caculado com a quantidade 
;Alterado em     : 23/12/2014 por Luis Gustavo
;Motivo Alteracao: Ajustes na impressÆo do cabe‡alho conforme a destina‡Æo e no rodap‚
;Alterado em     : 12/01/2015 por Luis Gustavo
;Motivo Alteracao: Ajustes na impressÆo do cabe‡alho conforme a destina‡Æo.
;Ultima Alteracao: 04/04/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes observa‡äes
;Ultima Alteracao: 03/05/2017 por Rafael Matos
;Motivo Alteracao: Ajustes sol. 29647
;Ultima Alteracao: 31/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desconto item
;Ultima Alteracao: 26/06/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes itens mercadoria/servico
;Ultima Alteracao: 24/05/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes obs
;Ultima Alteracao: 01/08/2019 por Bruno Carvalho                           
;Motivo Alteracao: Adicionado o Valor do Frete quando ‚ somado na nota! 
;Ultima Alteracao: 11/10/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes fones

; Criado para impressao de romaneio na impressora PROCOMP, baseado no RO_0102 
;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPRO()
private regdestinat, fones

;************************* IMPRESSAO DO CABECALHO *****************************
If Not IsAssigned(NOMEMPRESA)
   Then NOMEMPRESA=""
EndIf

VSD_DESTIN = ""
GetRecord "\\Sistemas\\Cadastro\\Empresas" [Codigo da Empresa] To FONE
If RetVal  
   Then FONE = FONE["Telefone Empresa"]
   Else FONE = ""               
EndIf

fones=[FaturaC->Telefone]
getrecord "\\sistemas\\cadastro\\destinat" [FaturaC->Codigo] to regdestinat
if retval
   then if not isblank(regdestinat["Celular"])
           then fones=fones+", "+regdestinat["Celular"]
        endif
endif           

Moveto "FaturaC"

Print File ARQIMP CI_10CPP
Print File ARQIMP CI_8LPP

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

Print File ARQIMP CI_IEXP

Switch
  Case Search("ORCA",[Descricao da Destinacao])>0            : Print File ARQIMP Spaces(04)+"CONCRETOS VICO" 
                                                               VSD_DESTIN = "ORCAMENTO"                                                                                                          
  Case [Codigo da Destinacao]="017"                          : Print File ARQIMP Spaces(04)+"ORCAMENTO VICO E.F."           
  Case [Codigo da Destinacao]="005"                          : Print File ARQIMP Spaces(01)+Format("W30,AL",[Descricao da Destinacao])
  Case Search("DEVOL",[Descricao da Destinacao])>0           : Print File ARQIMP Spaces(06)+"DEVOLUCAO"
  Case Search("SIMPLES REMESSA",[Descricao da Destinacao])>0 : Print File ARQIMP Spaces(03)+"SIMPLES REMESSA"
  Case Search("VEND",[Descricao da Destinacao])>0            : Print File ARQIMP Spaces(04)+"ORCAMENTO VICO"
  OtherWise                                                  : Print File ARQIMP Spaces(01)+Format("W30,AL",[Descricao da Destinacao])
EndSwitch

Print File ARQIMP CI_FEXP
Print File ARQIMP "\n"
If VSD_DESTIN = "ORCAMENTO"
   Then Print File ARQIMP CI_6LPP
        Print File ARQIMP Spaces(07)+ VSD_DESTIN + " - FONE: "+ FONE +"\n"
        Print File ARQIMP CI_FEXP
   Else Print File ARQIMP "NAO VALE COMO N.F PROCURE O CUPOM NO CAIXA" +"\n"
EndIf   

Print File ARQIMP Fill("=",45)+"\n"
 
Print File ARQIMP "NUMERO..: "+Format("W06.3,AL",NOTAFISC)+"\n"
Print File ARQIMP "EMISSAO.: "+Format("D13",Today())+"-"+Time()+"\n"
Print File ARQIMP "VENDEDOR: "+Format("W21,AL",[Nome Fantasia Represent])+"\n"
                  
Print File ARQIMP "CLIENTE.: "
Print File ARQIMP Format("W05,AL",[Codigo])
Print File ARQIMP RTrim(Format("W40,AL",[Razao Social]))+"\n"

Print File ARQIMP "AUTORIZ.: "+RTrim(Format("W42,AL",[Nome do Autorizado]))+" "+RTrim(Format("W20,AL",[CPF do Autorizado]))+"\n"
CLIENTE=[Razao Social]
Print File ARQIMP "ENDERECO: "+RTrim(Format("W40,AL",[Endereco]))+"\n"
Print File ARQIMP "BAIRRO..: "+Format("W20,AL",[Bairro])+"\n"
Print File ARQIMP "FONE....: "+fones+"\n"
Print File ARQIMP "CIDADE..: "+Format("W20,AL",[Cidade])
Print File ARQIMP "\n"

Moveto "FaturaC"

imprimeobs()

;********** PARCELAS/VENCIMENTOS ********************

Print File ARQIMP Fill("-",45)+"\n"
Print File ARQIMP "PARCELA"+Spaces(04)+"ND"+Spaces(04)+"VENCIMENTO"+Spaces(06)+"VALOR"+Spaces(02)+"FP"+"\n"

Moveto "FaturaV"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
If RetVal
   Then While ([Numero da OF]=[FaturaC->Numero da OF])
          Print File ARQIMP Spaces(03)+AlinhM([Sequencia],2)+Spaces(04)+Format("W4",[Numero de Dias])+
                            Spaces(04)+ Format("D13",[Data])+Format("W11.2,EIC",[Valor])+Spaces(02)+Format("W2",[Forma de Pagamento])+"\n"
          Skip
          If EOT() Then QuitLoop EndIf
        EndWhile
EndIf

;******************************** IMPRESSAO DOS ITENS ********************************
Print File ARQIMP Fill("=",45)+"\n"
 Print File ARQIMP "PRODUTO  UF      QUANT    Vr.Unit   Vr.Total"+"\n"

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
DESCONTO=0

Print File ARQIMP Fill("-",45)+"\n"
While [Numero da OF]=[FaturaC->Numero da OF]
   Print File ARQIMP Format("W11,AL",numval([Codigo do Item]))
   Print File ARQIMP Format("W34,AL",[Descricao do Item])+"\n"
   Print File ARQIMP Spaces(09)+Format("W03,AL",[Unidade Fiscal])
   Print File ARQIMP Format("W10.2,EIC",[Quantidade])+Spaces(01)
   Print File ARQIMP Format("W10.2,EIC",[Preco Unitario])
   Print File ARQIMP Format("W11.2,EIC",[Quantidade]*[Preco Unitario])+"\n"
   
   DESCONTO = DESCONTO+[Valor Desconto Item]                         ;Total Desconto Item     
   Skip
   If EOT() Then QuitLoop EndIf
EndWhile

Moveto "FaturaC"

FRETE=BlankNum()
If [Valor do Frete]>0 And ([Frete Incluso na Nota ]="+" Or [Frete Incluso na Nota ]="S")
   Then FRETE = [Valor do Frete]   
EndIf

Print File ARQIMP Fill("-",45)+"\n"
Print File ARQIMP "VR.MERCADORIAS: " + Format("W11.2,EIC",[Valor Mercadoria]+DESCONTO)+"\n"     
Print File ARQIMP "   VR.DESCONTO: " + Format("W10.2,EIC",[Valor Desconto]+DESCONTO)+"\n"
If FRETE>0
   Then Print File ARQIMP "      VR.FRETE: " + Format("W11.2,EIC",FRETE)+"\n"
EndIf   
Print File ARQIMP "    VR A PAGAR: "
Print File ARQIMP CI_IEXP
Print File ARQIMP Format("W11.2,EIC",[Valor Nota Fiscal])+"\n"
Print File ARQIMP CI_FEXP

If VSD_DESTIN <> "ORCAMENTO" 
   Then Print File ARQIMP Fill("-",45)+"\n\n\n"
        Print File ARQIMP Spaces(03)+Fill("-",39)+"\n"
        Print File ARQIMP Spaces(03)+Format("W40,AC",CLIENTE)+"\n"
   Else Print File ARQIMP Fill("-",45)+"\n" 
        Print File ARQIMP Spaces(01)+"    COBRIMOS QUALQUER OFERTA ANUNCIADA"+"\n"    
EndIf        

Print File ARQIMP Fill("-",45)+"\n"
Print File ARQIMP Spaces(01)+"        AGRADECEMOS A PREFERENCIA"+"\n"
If VSD_DESTIN <> "ORCAMENTO" 
   Then Print File ARQIMP Spaces(01)+"         NAO TEMOS COBRADOR     "+"\n"
EndIf   
Print File ARQIMP Spaces(01)+ "     HAVERA AUMENTO APOS O VENCIMENTO "+"\n"
Print File ARQIMP Fill("-",45)+"\n\n\n\n"

Print File ARQIMP CI_10CPP
Print File ARQIMP CI_6LPP

EndProc ; (IMPRO)

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

TamObs=43  

s="Obs.....: "+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+format("W96,AL",SubStr(s,posobs,tamobs))+CI_FNEG+"\n"
  posobs=posobs+tamobs
EndFor

endproc


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

AGUARDE("Imprimindo Romaneio -> "+NOTAFISC)

;IMPRO()

;ImpressÆo de 2 Vias de Romaneio (Alterado em 12/09/2011)
For j From 1 To 2
  If j=2 
     Then Print File ARQIMP "\n\n\n\n"
  EndIf
  IMPRO()
EndFor
Print File ARQIMP "\n\n"

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

Release Vars CLIENTE,END_ENT,BAI_ENT,CID_ENT,CEP_ENT
Release Procs IMPRO,imprimeobs
LIMPAGUARDE()

