;** RO_0401 ********************************************************************
;** Imprime a Digitacao do Romaneio              ** AGROPECUARIA BELA VISTA ** *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 14/09/2017 por Bruno Carvalho           
;Ultima Altera‡Æo: 08/03/2018 por Anivel Augusto Rodrigues
;Motivo Altera‡Æo: Ajuste negrito qtd no item, obs, contador de itens, aumentar fonte no item
;Ultima Altera‡Æo: 12/03/2018 por Anivel Augusto Rodrigues
;Motivo Altera‡Æo: Ajuste qtd primeiro
;Ultima Altera‡Æo: 19/03/2018 por Anivel Augusto Rodrigues
;Motivo Altera‡Æo: Ajuste aumentar fonte no total
;Ultima Altera‡Æo: 26/03/2018 por Anivel Augusto Rodrigues
;Motivo Altera‡Æo: Ajuste via interna/cliente          
;Ultima Altera‡Æo: 28/03/2018 por Anivel Augusto Rodrigues
;Motivo Altera‡Æo: Ajuste nova logica quebra de pagina 
;Ultima Altera‡Æo: 04/04/2018 por Anivel Augusto Rodrigues
;Motivo Altera‡Æo: Adicionado mensagem fixa apos obs     
;Ultima Altera‡Æo: 25/04/2018 por Bruno Carvalho
;Motivo Altera‡Æo: Ajustes ao quebrar a pagina, nÆo estava retornando para o FaturaI
;Ultima Altera‡Æo: 04/12/2019 por Anivel Augusto Rodrigues
;Motivo Altera‡Æo: Ajustes numero da of     

;*******************************************************************************
;* Rotina para Impressao de Cabe‡alho                                          *
;*******************************************************************************
Proc Cabecalho()
private ntabela

If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="" EndIf
ntabela=table()

;************************** IMPRESSAO DO CABECALHO *****************************
Moveto "FaturaC"

Print File ARQIMP  CI_10CPP+CI_8LPP
Print File ARQIMP  Spaces(2)+Format("W48,AL","CONTROLE INTERNO - Balcao 3")+"Impressao: "+Format("D10",Today())+"-"+Time()+"\n\n"

Print File ARQIMP  CI_IEXP+CI_INEG
Print File ARQIMP  "      Orcamento          "
if N_COPIAS=1
   then Print File ARQIMP  "VIA INTERNA   " 
   Else Print File ARQIMP  "VIA DO CLIENTE" 
endif   
Print File ARQIMP  CI_IEXP+CI_FNEG+"\n\n"

Print File ARQIMP  CI_INEG+Spaces(2)+"Cliente : "+Format("W05,AL",[Codigo])+Format("W52,AL",[Razao Social])+"OF "+[Numero da OF]+CI_FNEG+"\n"

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

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

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

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

Print File ARQIMP "------------------------------------------------------------------------------"+"\n"
Print File ARQIMP "Quantidade Un Item                                          Unitario     Total"+"\n"
Print File ARQIMP "------------------------------------------------------------------------------"+"\n"

CONTADOR = 12

moveto ntabela
EndProc ;Cabecalho()

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

TOT      = 0

Cabecalho()

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While [Numero da OF]=[FaturaC->Numero da OF]
  If CONTADOR > 40
     Then Rodape("Quebra")
          Cabecalho()
          Moveto "FaturaI"
  EndIf

  DESC_ITEM = ""
  GetRecord "\\Sistemas\\Estoque\\Itens" [Codigo do Item] To REG_ITEM
  If Retval
     Then DESC_ITEM = REG_ITEM["Descricao Complementar"]
  EndIf
  If Rtrim(DESC_ITEM) = "" Then DESC_ITEM = [Descricao do Item] EndIf     
  
  If [Quantidade]-Int([Quantidade])>0
     Then Print File ARQIMP  CI_INEG+Format("W09.3,EIC",[Quantidade])
     Else Print File ARQIMP  CI_INEG+Format("W09,EIC"  ,[Quantidade])
  EndIf
  Print File ARQIMP  Spaces(01)+Format("W03,Al",[Unidade Fiscal])+CI_FNEG
  Print File ARQIMP  Format("W32,AL",DESC_ITEM)
  Print File ARQIMP  Format("W12,AL",[Codigo do Item])

  Print File ARQIMP  Format("W10.2,EIC",[Preco Unitario])                
  Print File ARQIMP  Format("W10.2,EIC",[Preco Total])+"\n"
  CONTADOR = CONTADOR + 1
  
  TOT   = TOT + [Preco Total]

  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

If CONTADOR < 31         
   Then For ITEM From CONTADOR To 31
            Print File ARQIMP "\n" 
        EndFor
EndIf

Rodape("")

EndProc ;IMPFAT()        

;*******************************************************************************
;* Rotina para Impressao do Rodap‚                                            *
;*******************************************************************************
Proc Rodape(PARAM)
private yu

Moveto "FaturaC"

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

If PARAM<>""
   Then Print File ARQIMP Spaces(048)+"Total.............."+Format("W11.2,EIC","***********")+"\n"
   Else Print File ARQIMP Spaces(048)+"Total.............."+Format("W11.2,EIC",TOT)+"\n"
EndIf

If PARAM<>""
   Then 
        Print File ARQIMP  Spaces(05)+"Desconto"+Format("W06.2,EIC","  **  ") + "%..."
        Print File ARQIMP  Format("W12.2,EIC"," ***********")+"\n"
        Print File ARQIMP  Spaces(048)+"Total Liquido......"+Format("W11.2,EIC",("***********"))+"\n"
        Print File ARQIMP "                                               *** CONTINUA PROXIMA FOLHA ****"+"\n"
   Else 
        Print File ARQIMP "*FAVOR MANTER ENDERECO E TELEFONE ATUALIZADOS*  "
        Print File ARQIMP  "Desconto"+Format("W06.2,EIC",[Taxa de Desconto]) + "%..."
        Print File ARQIMP  Format("W12.2,EIC",[Valor Desconto])+"\n"

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

        Print File ARQIMP CI_15CPP+Spaces(4)+"Cond. Pagto: "+[Descricao CondPagto]+
                          "   NP: "+StrVal([Numero de Parcelas])+
                          "   CD: "+[Composicao de Dias]+
                          "  VOL: "+StrVal([Numero de Volumes])+"\n"
        
        imprimeobs()
                                      
        ;********************* IMPRESSAO DOS VENCIMENTOS **************************
        Print File ARQIMP CI_INEG + Spaces(4) + "Vencimentos: "
        
        VENC()
        
        Print File ARQIMP CI_FNEG+CI_10CPP+"\n\n"
        Print File ARQIMP Format("W80,AC","   /   /     -                                   ")+"\n"
        Print File ARQIMP Format("W80,AC","-------------------------------------------------")+"\n"
        Print File ARQIMP Format("W80,AC","              Data e Assinatura                  ")+"\f"
EndIf

EndProc

;*******************************************************************************
;* Rotina de Impressao dos Vencimentos                                         *
;*******************************************************************************
Proc VENC()
Private I,KV         

KV=0
For I From 1 to K
  if isblank(DATA[I]) then quitloop endif
  KV=KV+1

  Print File ARQIMP  "FP: "+FPGT[I] + Spaces(02) + Format("D13",DATA[I]) + Spaces(02) + Format("W10.2,EIC",VALOR[I])+Spaces(02)+" - "
  If KV=3
     Then KV=0
          Print File ARQIMP "\n"
          
          if I<K
             then Print File ARQIMP Spaces(17)
          endif   
  EndIf   
EndFor
if KV>0
   Then Print File ARQIMP "\n"
endif
EndProc ;VENC()

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

TamObs=130

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

posobs=1
For i from 1 to nlobs
  Print File ARQIMP CI_INEG+spaces(4)+SubStr(s,posobs,tamobs)+CI_FNEG+"\n"
  posobs=posobs+tamobs
EndFor
Print File ARQIMP CI_INEG+CI_IEXP+"  APOS O PRAZO DE 30 DIAS SERA COBRADO JUROS DE 2% SOBRE O VALOR" +CI_FNEG+CI_FEXP+"\n"

endproc

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

AGUARDE("Imprimindo Romaneio -> "+NOTAFISC)

Array  DATA[24]
Array VALOR[24]
Array FPGT [24]

for K from 1 to 24
   DATA[K]=blankdate()
  VALOR[K]=blanknum()
   FPGT[K]=""
endfor

K=0
Moveto "FaturaV"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While [Numero da OF]=[FaturaC->Numero da OF]

         K=K+1
  
   DATA[K]=[Data ]
  VALOR[K]=[Valor]
   FPGT[K]=[Forma de Pagamento]
  
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

Moveto "FaturaC"

for N_COPIAS from 1 to 2
 IMPFAT() 
endfor 

NUMCOPIA=1
ImpriArq(ARQIMP)
NUMCOPIA=2

Release Vars VALOR,DATA,N_COPIAS,K
Release Procs IMPFAT,VENC,Cabecalho,Rodape,imprimeobs
LIMPAGUARDE()
