;** RO_0288 ********************************************************************
;** Imprime a Digitacao do Romaneio      ** BRASSOL - Metal£rgica Sol Maior ** *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido  em: 07/02/2011 por Bruno Carvalho
;Ultima Alteracao: 17/03/2011 por Bruno Carvalho
;Motivo Alteracao: Adicionado Referencia
;Ultima Alteracao: 15/10/2014 por Andrey Fillipe
;Motivo Alteracao: Ajustes GetRecord para o Nome da empresa
;Ultima Alteracao: 15/06/2016 por Bruno Carvalho 
;Motivo Alteracao: Adicionado Pega_Endereco_Fatura() e ajustado dados do endere‡o
;Ultima Alteracao: 31/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desconto item
;Ultima Alteracao: 07/11/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes formata‡Æo peso EIC com 3 casas decimais
             
;*******************************************************************************
;* Configura‡Æo                                                                *
;*******************************************************************************
;PARAMETROS DE ITENS: 9 Itens

;*******************************************************************************
;* 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 para Impressao do Relatorio                                          *
;*******************************************************************************
Proc Cabecalho()

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

Moveto "FaturaC"
Pega_Endereco_Fatura([Numero da OF])

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 "\n"
GetRecord "\\Sistemas\\Cadastro\\Destinat" [Codigo da Empresa] To EMPRESA
If RetVal
   Then Print File ARQIMP Format("W50,AL","EMITENTE - "+EMPRESA["Razao Social"])+"Impressao: "+Format("D10",Today())+"-"+Time()+ "\n"
   Else Print File ARQIMP Format("W50,AL","EMITENTE - METALURGICA BRAS SOL EIRELI")+"Impressao: "+Format("D10",Today())+"-"+Time()+ "\n"
EndIf   
;Print File ARQIMP Spaces(50)+"Emissao: "+Format("D13",[Data de Emissao])+ "\n"

Print File ARQIMP "\014"
Print File ARQIMP "\027E"
Print File ARQIMP Spaces(10)+"Orcamento N§ "+Format("W06.3,AL",NOTAFISC)+"\n\n"
Print File ARQIMP "\020"

Print File ARQIMP "\027E"
Print File ARQIMP Spaces(05)+ "ENTREGA : "+Format("W35,AL",VSD_E_Endereco)+"BAIRRO :" +Format("W15,AL",VSD_E_Bairro)+"\n"
Print File ARQIMP Spaces(05)+ "CIDADE DE ENTREGA : "+Format("W25,AL",VSD_E_Cidade)+"UF DA ENTREGA :" +Format("W02,AL",VSD_E_UF)+"\n"

Print File ARQIMP "\027F"
Print File ARQIMP "\020"

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

Print File ARQIMP CI_8LPP
Print File ARQIMP "\027P"         ;Imprime 10 Caracteres por polegada

Print File ARQIMP Spaces(15)+Format("W40,AL",[Endereco])
Print File ARQIMP Format("W18,AL",[CGC])+"\n"

Print File ARQIMP Spaces(15)+Format("W20,AL",[Bairro])
Print File ARQIMP Format("W20,AL",[CEP])
Print File ARQIMP Format("W25,AL",[IE])+"\n"

Print File ARQIMP Spaces(15)+Format("W20,AL",[Cidade])
Print File ARQIMP Format("W20,AL",[UF])
Print File ARQIMP Format("W25,AL",[Telefone])+"\n"

Print File ARQIMP Spaces(05)+"Operacao: "
Print File ARQIMP Chr(27)+Chr(71)
Print File ARQIMP ""+[Codigo da Destinacao]+" "+Format("W36",[Descricao da Destinacao])""

Print File ARQIMP Chr(27)+Chr(72)
Print File ARQIMP "Emissao: "+Format("W20,AL,D13",[Data de Emissao])+ "\n"

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

Print File ARQIMP Spaces(05)+"Tranport: "+Format("W05,AL",[Codigo da Transportadora])
Print File ARQIMP Format("W25,AL",[Nome Fantasia Transport])+"\n"

Print File ARQIMP Spaces(05)+"Pedido  : "+Format("W06,AR",[Numero do Pedido])+Spaces(26)
Moveto [Numero do Pedido]
If Busca_Lookup("Numero do Pedido",[FaturaC->Numero do Pedido],"SM")
   Then Print File ARQIMP "Pedido Original: "+Format("W15,AL",REG_BUSCA_LOOKUP["Numero Pedido Origem"])+"\n"
   Else Print File ARQIMP "\n"
EndIf
UnLockRecord

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

Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP Spaces(02)+"Item                                            Ref.   Descontos     Peso Liq  Un  Quantidade  Unitario        Total"+"\n"
Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------"+"\n"
                                                                                   

EndProc ;(Cabecalho)

;********************* IMPRESSAO DOS ITENS ********************************
Proc Itens()

CONTADOR = 0

Moveto "FaturaI"                                                  
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While [Numero da OF]=[FaturaC->Numero da OF]
  Checa_Linha(1)
  
  REFERENCIA=""
  Moveto [Codigo do Item]
  KeyPress "F1"
  Moveto [Codigo do Item]
  Locate [FaturaI->Codigo do Item]
  If RetVal
     Then REFERENCIA=[Referencia]
  EndIf
  KeyPress "Esc"
  
  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("W31,AL",[Descricao do Item])
  Print File ARQIMP Spaces(01)+Format("W04,AL",REFERENCIA)
  Print File ARQIMP Spaces(01)+Format("W12.2,EIC",[Valor Desconto Item])
  Print File ARQIMP Spaces(01)+Format("W11.2,AR",[Peso Liquido])
  Print File ARQIMP Spaces(02)+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
EndWhile

For ITEM From CONTADOR To PARAM_NITENS
    Print File ARQIMP "\n"
EndFor

EndProc ;(Itens)

;********************* IMPRESSAO DOS TOTAIS **************************

Proc Rodape(QUEBRAFORM)
Private QUEBRAFORM

Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------"+"\n"

Moveto "FaturaC"

If QUEBRAFORM
   Then Print File ARQIMP "Qtde.de Volumes "+Format("W4,EIC",[Numero de Volumes])
        Print File ARQIMP Spaces(68)+"Total..............  *******  "+"\n"
        Print File ARQIMP "Peso L¡quido... "+Format("W13.3,EIC,AL",[Peso Liquido])
        Print File ARQIMP Spaces(59)+"Desconto ***  "+ "%....  *******  "+"\n"
   Else Print File ARQIMP "Qtde.de Volumes "+Format("W4,EIC",[Numero de Volumes])
        Print File ARQIMP Spaces(68)+"Total.............."+Format("W11.2,EIC",[Valor Mercadoria])+"\n"
        Print File ARQIMP "Peso L¡quido... "+Format("W013.3,EIC,AL",[Peso Liquido])
        Print File ARQIMP Spaces(59)+"Desconto"+Format("W06.2,EIC",[Taxa de Desconto]) + "%..."
        Print File ARQIMP Format("W12.2,EIC",[Valor Desconto])+"\n"
EndIF

If QUEBRAFORM 
   Then Print File ARQIMP Spaces(86)+"  Total Liquido......  *******  "+"\n\n\n"
   Else If SubStr([Observacao na Nota Fiscal],01,70)<>""
           Then Print File ARQIMP "Observa‡„o..... "+Format("W70,CU,AL",[Observacao na Nota Fiscal])
                Print File ARQIMP "  Total Liquido......"+Format("W11.2,EIC",[Valor Mercadoria Liquido])+"\n"
           Else Print File ARQIMP Spaces(86)+"  Total Liquido......"+Format("W11.2,EIC",[Valor Mercadoria Liquido])+"\n"     
        EndIf
        If SubStr([Observacao na Nota Fiscal],71,70)<>""
           Then Print File ARQIMP "                "+Format("W70,CU,AL",SubStr([Observacao na Nota Fiscal],71,70))+"\n"
           Else Print File ARQIMP "\n"
        EndIf  
        If SubStr([Observacao na Nota Fiscal],141,70)<>""
           Then Print File ARQIMP "                "+Format("W70,CU,AL",SubStr([Observacao na Nota Fiscal],141,70))+"\n"
           Else Print File ARQIMP "\n"
        EndIf   
EndIf   

Print File ARQIMP "\n"

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

;********************* IMPRESSAO DOS VENCIMENTOS **************************
Print File ARQIMP "Vencimentos: "

Array DATA[9]
Array VALOR[9]
K=0
KV=0
Moveto "FaturaV"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
Locate [FaturaC->Numero da OF]
While [Numero da OF]=[FaturaC->Numero da OF]
  K=K+1
  DATA[K]  = Format("D13",[Data])
  VALOR[K] = Format("W10.2,AR,EIC",[Valor])
  If K=9
     Then VENC()
          K=0
  EndIf
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile
If K>0
   Then VENC()
EndIf
Print File ARQIMP "\n"
Print File ARQIMP "\027F"

;************************* IMPRESSAO DO RODAPE *********************************
If QUEBRAFORM
   Then Print File ARQIMP "\n\n\n" 
   Else Print File ARQIMP Spaces(38)+"   /   /     -                                   " + "\n"
        Print File ARQIMP Spaces(38)+"-------------------------------------------------" + "\n"
        Print File ARQIMP Spaces(38)+"              Data e Assinatura"+"\n"
EndIf       
        
Print File ARQIMP CI_6LPP
Print File ARQIMP CI_10CPP
Print File ARQIMP "\f"

EndProc ;(Rodape)
;*******************************************************************************
;* Rotina de Impressao dos Vencimentos                                         *
;*******************************************************************************
Proc VENC()
If KV>0
   Then Print File ARQIMP Spaces(13)
EndIf
For I From 1 to K
  Print File ARQIMP DATA[I]+Spaces(02)
EndFor
Print File ARQIMP "\n"
Print File ARQIMP Spaces(13)
For I From 1 to K
  Print File ARQIMP VALOR[I]+Spaces(02)
EndFor
Print File ARQIMP "\n\n"

KV=KV+1
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
ArqImp=PrivDir()+"Ro_0288.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()


