;** RO_0374 ********************************************************************
;** Imprime a Digitacao do Romaneio                    ** Pitangui Tecidos **  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 28/09/2015 por Andrey Fillipe
;Ultima Altera‡Æo: 09/10/2015 por Andrey Fillipe                      
;Motivo Alteracao: Incluido linha na divisao entre os dados e trocado codigo por referencia 
;Ultima Altera‡Æo: 20/10/2015 por Andrey Fillipe
;Motivo Alteracao: Ajustes colocado negrito no nome do vendedor
;Ultima Altera‡Æo: 28/10/2015 por Nikolas
;Motivo Alteracao: Aumentado o n£mero de parcelas para 24 de vencimentos
;Ultima Alteracao: 26/06/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes itens mercadoria/servico

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************

;Para impressÆo em JATO DE TINTA a pedido do cliente
PARAM_NITENS = 12

;************************** IMPRESSAO DO CABECALHO *****************************
Proc Cabecalho()

Moveto "Faturac"
Print File ARQIMP "\n\n\n"
Print File ARQIMP chr(27)+chr(67)+chr(33) ;Imprime 33 Linhas por pagina
Print File ARQIMP CI_10CPP
Print File ARQIMP CI_8LPP

Print File ARQIMP "\020"

DATA=StrVal([Data de Emissao])
If Len(DATA)=9 Then DATA="0"+DATA EndIf
DATA = SubStr(DATA,1,2) +"/"+ SubStr(DATA,4,2) +"/"+ SubStr(DATA,7,4)

If [Taxa de Desconto]>0
   Then Pagto = Rtrim([Descricao CondPagto]) + "  -  A Vista com " + Rtrim(StrVal([Taxa de Desconto])) + "% de desconto" 
   Else Pagto = Rtrim([Descricao CondPagto])
EndIf

Print File ARQIMP Chr(27)+Chr(72)                                              
Print File ARQIMP "\015"         ;Imprime 17 Caracteres por polegada
Print File ARQIMP Spaces(2)+Fill("-",135)+"\n"
Print File ARQIMP Spaces(2)+StrVal(way)+"¦ Via de Impressao"+Spaces(27)+"Controle Interno - Sem Valor Fiscal"+"\n"
Print File ARQIMP Spaces(2)+Fill("-",135)+"\n"
Print File ARQIMP "  N§ Lanc: "+Format("W06.3,AL",NOTAFISC)+Spaces(96)+Format("D13",Today())+"-Pag.: "+Format("W3,AR",StrVal(FOLHA))+"\n"
Print File ARQIMP Format("W76","  Cliente.: "+"\027E"+Format("W05,AL",[Codigo])+Format("W30,AL",[Razao Social])+"\027F")+"Telefone: "+[Telefone]+"\n"
Print File ARQIMP Format("W70","  Endereco: "+Format("W32,AL",[Endereco]))+"    Bairro: "+Format("W10,AL",[Bairro])+"\n"
Print File ARQIMP "  Cidade..: "+Rtrim(Format("W20,AL",[Cidade]))+Spaces(19)+"UF: "+[UF]+Spaces(10)+"CEP "+[Cep]+Spaces(14)+"CPF/CNPJ: "+[CGC]+"\n"
Print File ARQIMP "  Vendedor: "+"\027E"+Format("W5",[Codigo do Representante])+Format("20",[Nome Fantasia Represent])+"\027F"+Spaces(24)+"Plano de Pagto: "+Pagto+"\n"
Print File ARQIMP Spaces(2)+Fill("-",135)+"\n"                  
Print File ARQIMP "  Codigo     Descricao                                             Quantidade       Unitario        Total"+"\n"
Print File ARQIMP Spaces(2)+Fill("-",135)+"\n"
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
TOTAL_NITEM = 0

While [Numero da OF]=[FaturaC->Numero da OF]
  TOTAL_NITEM = TOTAL_NITEM+1
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

If TOTAL_NITEM > PARAM_NITENS Then PARAM_NITENS = 42 EndIf

Home
Locate [FaturaC->Numero da OF]

While [Numero da OF]=[FaturaC->Numero da OF]
  Checa_Linha(1)

  DESC_COMP=[Descricao do Item]
  MoveTo [Codigo do Item]
  If busca_Lookup("Codigo do Item",[FaturaI->Codigo do Item],"SM")
     Then  If REG_BUSCA_LOOKUP["Descricao Complementar"]<>""
              Then DESC_COMP = REG_BUSCA_LOOKUP["Descricao Complementar"]
           EndIf   
  EndIf
  KeyPress "Esc"
  
  CODITEM=[Codigo do Item]
  ;While SubStr(CODITEM,1,1)="0"
  ;  CODITEM=SubStr(CODITEM,2,Len(CODITEM))
  ;EndWhile
  GetRecord "\\Sistemas\\Estoque\\Itens" CODITEM To REG_REF
  If RetVal
     Then REG_REF = REG_REF["Referencia"]
          While SubStr(REG_REF,1,1)="0"
            REG_REF=SubStr(REG_REF,2,Len(REG_REF))
          EndWhile
     Else REG_REF = ""     
  EndIf   
  
  LINHA_ITEM = Spaces(02) + Format("W10,AL",REG_REF)
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W52,AL",DESC_COMP)
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W13.3,AL",[Quantidade])
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W12.2,EIC",[Preco Unitario])
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W12.2,EIC",[Preco Total])
  
  Print File ARQIMP LINHA_ITEM + "\n"
  
  TOT   = TOT + [Preco Total]
  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"

If QUEBRAFORM
   Then Print File ARQIMP "\n\n\n\n"+Format("W130,AC","* * * *  CONTINUA NO PROXIMO FORMULARIO * * * *")
        Print File ARQIMP "\027F"    
   Else Print File ARQIMP Spaces(2)+Fill("-",135)+"\n"
        DATA_AVISTA=Strval([Data de Emissao]+30)
        If Len(DATA_AVISTA)=9 Then DATA_AVISTA="0"+DATA_AVISTA EndIf
        DATA_AVISTA = SubStr(DATA_AVISTA,1,2) +"/"+ SubStr(DATA_AVISTA,4,2) +"/"+ SubStr(DATA_AVISTA,7,4)
        
        TOTAL_AVISTA=[Valor Nota Fiscal]
        
        Array AVISTA_APRAZO[2]
        AVISTA_APRAZO[1]="Valor a Prazo..."+Format("W11.2,EIC",TOT)             
        AVISTA_APRAZO[2]="Valor a Vista..."+Format("W11.2,EIC",TOTAL_AVISTA)    
    
        Array DATA[24]
        Array VALOR[24]
        K     = 0
        KV    = 0
        
        NUM_PARCELA    = [Numero de Parcelas]
        VR_PARCELA     = Round(TOT/NUM_PARCELA,2)
        VR_ULT_PARCELA = TOT-(VR_PARCELA*(NUM_PARCELA-1))
        
        Moveto "FaturaV"
        Moveto [Numero da OF]
        Locate [FaturaC->Numero da OF]
        While [Numero da OF]=[FaturaC->Numero da OF]
          K = K+1
          KK= K+1
          DATA[K]  = Format("D13",[Data])
          If K = NUM_PARCELA
             Then VALOR[K] = Format("W11.2,AL,EIC",VR_ULT_PARCELA)
             Else VALOR[K] = Format("W11.2,AL,EIC",VR_PARCELA)
          EndIf   
          Skip
          If EOT() Then QuitLoop EndIf
        EndWhile
        If K>0
           Then PARCELAS = K
                VENC()
        EndIf  
        
        If K=0
           Then Print File ARQIMP Spaces(103)+AVISTA_APRAZO[1]+"\n"
                Print File ARQIMP Spaces(103)+AVISTA_APRAZO[2]+"\n" 
        EndIf             
        
        Moveto "FaturaC"
        If Rtrim(SubStr([Observacao na Nota Fiscal],01,120))<>""
           Then Print File ARQIMP "\n"+"  OBS: "+Format("W120,AL",SubStr([Observacao na Nota Fiscal],01,120))+"\n"
        EndIf
        If Rtrim(SubStr([Observacao na Nota Fiscal],121,120))<>""
           Then Print File ARQIMP "       "+Format("W120,AL",SubStr([Observacao na Nota Fiscal],121,120))+"\n"
        EndIf
        If Rtrim(SubStr([Observacao na Nota Fiscal],241,120))<>""
           Then Print File ARQIMP "       "+Format("W120,AL",SubStr([Observacao na Nota Fiscal],241,120))+"\n"
        EndIf
        Print File ARQIMP Spaces(2)+Fill("-",135)+"\n"
        Print File ARQIMP Format("W130,AC","Obrigado pela preferˆncia - Boas Vendas!")+"\n"
        Print File ARQIMP Spaces(2)+Fill("-",135)+"\n"                                                                                                                                                                    
EndIf

Print File ARQIMP CI_6LPP
Print File ARQIMP CI_10CPP
If IMPRIME_PAGINA=1 And PARAM_NITENS=12
   Then Print File ARQIMP "\n\n\n\n\n"
        IMPRIME_PAGINA=2
   Else IMPRIME_PAGINA=1
        Print File ARQIMP "\f"
EndIf        

EndProc ;(Rodape)

;*******************************************************************************
;* Rotina de Impressao dos Vencimentos                                         *
;*******************************************************************************
Proc VENC()
Private AUX, AUX2, CONT

Moveto "FaturaC"

If K=1
   Then Print File ARQIMP Spaces(103)+AVISTA_APRAZO[1]+"\n"
EndIf

AUX = K           
For I From 1 to K
  CONT = I
  DATA[I]=Ltrim(Rtrim(StrVal(DATA[I])))
  If Len(DATA[I])=9 Then DATA[I]="0"+DATA[I] EndIf
  
  AUX2 = AUX - 2
  If AUX > 1
     Then AUX = AUX - 2
          DATA[I]=Format("W2,AR",StrVal(I))+"¦ Parc "+SubStr(DATA[I],1,2)+"/"+SubStr(DATA[I],4,2)+"/"+SubStr(DATA[I],7,4)+
                  " - R$"+Format("W8.2,EIC",VALOR[I])+"   "
          DATA[I+1]=Format("W2,AR",StrVal(I+1))+"¦ Parc "+SubStr(DATA[I+1],1,2)+"/"+SubStr(DATA[I+1],4,2)+"/"+SubStr(DATA[I+1],7,4)+
                  " - R$"+Format("W8.2,EIC",VALOR[I+1])
          Print File ARQIMP Spaces(2)+DATA[I]+DATA[I+1]
          I = I + 1
     Else DATA[I]=Format("W2,AR",StrVal(I))+"¦ Parc "+SubStr(DATA[I],1,2)+"/"+SubStr(DATA[I],4,2)+"/"+SubStr(DATA[I],7,4)+
          " - R$"+Format("W8.2,EIC",VALOR[I])+Spaces(35)
          Print File ARQIMP Spaces(2)+DATA[I]
  EndIf
  
  If K=1 And I=1 
    Then Print File ARQIMP Spaces(34)+AVISTA_APRAZO[2]
    Else Switch
           Case CONT=1 : Print File ARQIMP Spaces(34)+AVISTA_APRAZO[1]
           Case CONT=3 : Print File ARQIMP Spaces(34)+AVISTA_APRAZO[2]
         EndSwitch
         If K = 2 And I=2 
            Then Print File ARQIMP "\n"
                 Print File ARQIMP Spaces(103)+AVISTA_APRAZO[2]
         EndIf   
  EndIf
  Print File ARQIMP "\n"
EndFor

KV=KV+1

EndProc

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

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

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="" EndIf

IMPRIME_PAGINA = 1
IMPRIME_VIA    = 2

ArqImp=PrivDir()+"Ro_0374.Txt"
If IsFile(ArqImp)
   Then Deleta_Arquivo(ARQIMP)
EndIf

For way From 1 To IMPRIME_VIA
  Folha = 1
  
  AGUARDE("Imprimindo Romaneio -> "+NOTAFISC+" "+StrVal(way)+"§ Via... ")
  Cabecalho()
  Itens()
  Rodape(False)
EndFor  

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

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