;** EC_0272 ********************************************************************
;** Impressao de Carnˆ                                      ** TECIDOS BRASAO **
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 09/08/2010 por Bruno Carvalho
;Alterado em     : 17/08/2010 por Bruno Carvalho 
;Motivo Alteracao: Ajustes
;Alterado em     : 19/08/2010 por Wesley Costa
;Motivo Alteracao: Ajustes
;Alterado em     : 02/02/2011 por Bruno Carvalho 
;Motivo Alteracao: Novos ajustes para impressÆo

;*******************************************************************************
; Rotina Vencimentos
;*******************************************************************************
Proc Processa()

Array dtv[36]
Array vrv[36]

For I From 1 To 12
  vrv[i]=BlankNum()
  dtv[i]=""
EndFor

i=0
Moveto "FaturaV"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
If RetVal
   Then While [Numero da OF] = [FaturaC->Numero da OF]
          i=i+1
          vrv[i]=[Valor]
          dtv[i]=[Data]

          Skip
          If EOT()
             Then QuitLoop
          Endif
        EndWhile
EndIf

If i=0
   Then Mensagem("NÆo existe(m) venctimento(s) p/ o carnˆ !")
        Return
EndIf

Moveto "FaturaC"

Moveto [Codigo]
If BUSCA_LOOKUP("Codigo",[Codigo],"SM")
   Then CELULAR=REG_BUSCA_LOOKUP["Celular"]
EndIf

AUX_CONT     = i
CONTROL_PARC = i                   

AUX_CONTa    = 1
AUX_CONTb    = i

If AUX_CONT>8
   Then Imp_CR()
EndIf

If AUX_CONT>4      
   Then Imp_CR()
EndIf

If AUX_CONT<5 And AUX_CONT>0 
   Then Imp_CR()
EndIf
      
EndProc ;Processa()
;*******************************************************************************
;Imprime Carnˆ
;*******************************************************************************
Proc Imp_CR()

CONT=1            

If AUX_CONTb > 8                              
   Then CONTa = AUX_CONTa                              
        CONTb = CONTa + 3                   
        AUX_CONTa = CONTb + 1                
        AUX_CONTb = AUX_CONTb - 4           
   Else If  AUX_CONTb > 4                   
            Then CONTa = AUX_CONTa          
                 CONTb = CONTa + 3         
                 AUX_CONTa = CONTb + 1         
                 AUX_CONTb = AUX_CONTb - 4     
            Else If AUX_CONTb < 4 or AUX_CONTb = 4
                    Then CONTa = AUX_CONTa
                         CONTb = CONTa + AUX_CONTb -1   
                 EndIf                                
        EndIf
EndIF

Print File ARQIMP CI_15CPP+CI_6LPP;+"\n"

While CONT<3 
   CONT   = CONT+1 
   LINHA1 = ""
   LINHA2 = ""
   LINHA3 = ""
   LINHA4 = ""
   LINHA5 = ""
  
   For wi From CONTa to CONTb
     LINHA1=LINHA1+Spaces(05)+Format("W7,AL",[Codigo])+Spaces(05)+Completa(NOTAFISC,10," ")+Spaces(09)
     LINHA2=LINHA2+Spaces(01)+AlinhM(StrVal(wi),2)+"/"+AlinhM(StrVal(CONTROL_PARC),2)+Spaces(09)+Format("D10",dtv[wi])+Spaces(13)
     LINHA3=LINHA3+Spaces(01) + Format("W25,AL",[Razao Social])+Spaces(10)
     LINHA4=LINHA4+Spaces(13)+Format("W10.2,EIC",Vrv[wi])+Spaces(13)
   EndFor
  
;*******************************************************************************
;Alterado em 02.02.2011 para preenchimento de dados do cliente no caso de parcelas
;menores que * divisiveis por 4 *

   PREENCHIMENTO = CONTb+1

   If CONTb < 4
      Then AUX_PREENCHIMENTO = 4
      Else If CONTb > 4 And CONTb < 8
               Then AUX_PREENCHIMENTO = 8
               Else If CONTb > 8 And CONTb < 12
                       Then AUX_PREENCHIMENTO = 12
                    EndIf   
           EndIf        
   EndIf             
                   
   If CONTb <> 4 And CONTb <> 8 And CONTb <>12 
      Then While PREENCHIMENTO <= AUX_PREENCHIMENTO
                 PREENCHIMENTO = PREENCHIMENTO+1   
                 LINHA1=LINHA1+Spaces(05)+Format("W7,AL",[Codigo])+Spaces(05)+Completa(NOTAFISC,10," ")+Spaces(09)
                 ;LINHA2=LINHA2+Spaces(01)+AlinhM(StrVal(wi),2)+"/"+AlinhM(StrVal(CONTROL_PARC),2)+Spaces(09)+Format("D10",dtv[wi])+Spaces(13)
                 LINHA3=LINHA3+Spaces(01) + Format("W25,AL",[Razao Social])+Spaces(10)
                 ;LINHA4=LINHA4+Spaces(13)+Format("W10.2,EIC",Vrv[wi])+Spaces(13)
           EndWhile
   EndIf

;*******************************************************************************
   
   Print File ARQIMP RTrim(LINHA1)+"\n\n"
   Print File ARQIMP RTrim(LINHA2)+"\n\n"
   Print File ARQIMP RTrim(LINHA3)+"\n\n"
   Print File ARQIMP RTrim(LINHA4)+"\n\n\n\n\n\n"
    
EndWhile   
  
UnlockRecord   
                                
If AUX_CONT > 4 
   Then Print File ARQIMP "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
        AUX_CONT=AUX_CONT-4              
   Else Imp_NP()  
EndIf        
 
EndProc ;Imp_CR()
;*******************************************************************************
;Imprime Nota Promiss¢ria
;*******************************************************************************
Proc Imp_NP()

Print File ARQIMP Spaces(52)+Completa(NOTAFISC,10," ")+Spaces(55)+Format("W15.2,EIC",[Valor Nota Fiscal])+"\n\n\n"

;***** Extenso p/ Data ********************************************************

  DIA=AlinhM(StrVal(Day(Today())),2)
  MES=MESEXT(Month(Today()))
  ANO=AlinhM(StrVal(Year(Today())),4)
  
      dtextenso="" 
      EscExt(NumVal(DIA))
      dtextenso=SubStr(Extenso,1,SearchFrom(" CENT",extenso,1))

      dtextenso=dtextenso+"DO MES DE "+MES

      EscExt(NumVal(SubStr(StrVal(NumVal(ANO)),1,1))*1000000)
      dtextenso=dtextenso+"DO ANO DE"+SubStr(Extenso,1,SearchFrom(" REA",extenso,1))

      If NumVal(SubStr(StrVal(NumVal(ANO)),2,3))>0
         Then dtextenso=dtextenso+"E"
              EscExt(NumVal(SubStr(StrVal(NumVal(ANO)),2,3))*1000)
              dtextenso=dtextenso+SubStr(Extenso,1,SearchFrom(" REA",extenso,1))
      EndIf
 
      Print File ARQIMP Spaces(53)+SubStr(dtextenso,01,60)+"\n"
      Print File ARQIMP Spaces(53)+SubStr(dtextenso,61,22)+"\n\n\n\n"


;******************************************************************************

      ESCEXT([Valor Nota Fiscal]) 
      Print File ARQIMP Spaces(50)+SubStr(EXTENSO,001,80)+"\n"
      Print File ARQIMP Spaces(50)+SubStr(EXTENSO,081,80)+"\n\n"
      
      CONTA_VENC=1
      Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
      Print File ARQIMP Spaces(30)+"Divinopolis/MG"+Spaces(10)+"Codigo do Cliente: "+Format("w07,AL",[CODIGO])+"\n"
        
      CONTA_VENC=2
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
              Print File ARQIMP Spaces(30)+Format("W40,Al",[Razao Social])+Spaces(18)+Format("D13",[Data de Emissao])+"\n"
         Else Print File ARQIMP Spaces(59)+Format("W40,Al",[Razao Social])+Spaces(18)+Format("D13",[Data de Emissao])+"\n"
      EndIF
      
      CONTA_VENC=3
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
              Print File ARQIMP Spaces(30)+Format("W18,AL",[CGC])+Spaces(10)+"IE: "+Format("W18,AL",[IE])+"\n"
         Else Print File ARQIMP Spaces(59)+Format("W18,AL",[CGC])+Spaces(10)+"IE: "+Format("W18,AL",[IE])+"\n"
      EndIF
      
      CONTA_VENC=4
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
              Print File ARQIMP Spaces(30)+Format("W40,AL",[Endereco])+"\n"
         Else Print File ARQIMP Spaces(59)+Format("W40,AL",[Endereco])+"\n"
      EndIF      
    
      CONTA_VENC=5
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
              Print File ARQIMP Spaces(30)+Format("W20,AL",[Bairro])+"\n"
         Else Print File ARQIMP Spaces(59)+Format("W20,AL",[Bairro])+"\n"
      EndIF 
      
      CONTA_VENC=6
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
              Print File ARQIMP Spaces(30)+Format("W20,AL",[Cidade])+Spaces(27)+Format("W02,AL",[UF])+Spaces(08)+[CEP]+"\n"
         Else Print File ARQIMP Spaces(59)+Format("W20,AL",[Cidade])+Spaces(27)+Format("W02,AL",[UF])+Spaces(08)+[CEP]+"\n"
      EndIF 

      CONTA_VENC=7
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
              Print File ARQIMP Spaces(30)+"Telefone: "+Format("W20,AL",[Telefone])+"\n" 
         Else Print File ARQIMP Spaces(59)+"Telefone: "+Format("W20,AL",[Telefone])+"\n" 
      EndIF 

      CONTA_VENC=8
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])
              Print File ARQIMP Spaces(30)+"Celular:  "+Format("W20,AL",CELULAR)+"\n"
         Else Print File ARQIMP Spaces(59)+"Celular:  "+Format("W20,AL",CELULAR)+"\n" 
      EndIF                                 

      CONTA_VENC=9                                                           
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])+"\n"
         Else Print File ARQIMP "\n"     
      EndIF 

      CONTA_VENC=10
      If CONTA_VENC<=CONTROL_PARC 
         Then Print File ARQIMP Spaces(06)+Format("D10",dtv[CONTA_VENC])+Spaces(05)+Format("W10.2,EIC",Vrv[CONTA_VENC])+"\n"
         Else Print File ARQIMP "\n"
      EndIF 
      
      Print File ARQIMP "\n\n\n\n\n"
Endproc                  

;*******************************************************************************
;**** Teste da Impressora ****
;*******************************************************************************

Moveto "FaturaC"
AGUARDE("Imprimindo Carne "+NOTAFISC)

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

;*******************************************************************************

Processa()
ImpriArq(ARQIMP)

LIMPAGUARDE()
Release Vars AUX_CONT, CONTROL_PARC, AUX_CONTa, AUX_CONTa, AUX_CONTb, CONT, wi, 
             zi, xi, yi, CONTa, CONTb, DIA, MES, ANO, CONTA_VENC, CELULAR 


