;** RO_0233 ********************************************************************
;** Imprime a Digitacao do Romaneio                       ** STAR TEXTIL **    *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido  em: 16/07/2009 por Cleber Alves
;Alteracao:    em: 22/09/2009 por Humberto F. santos.
;Motivo Alteracao: Colocado Observacao.
;Alteracao:    em: 08/01/2010 por Humberto F. santos.
;Motivo Alteracao: Colocado Endere‡o de entrega.
;Alteracao:    em: 22/01/2010 por Humberto F. santos.
;Motivo Alteracao: Inclusao de Volumes
;Alteracao:    em: 20/10/2010 por Bruno Carvalho
;Motivo Alteracao: Novos Ajustes
;Ultima Alteracao: 15/06/2016 por Bruno Carvalho 
;Motivo Alteracao: Adicionado Pega_Endereco_Fatura() e ajustado dados do endere‡o

;*******************************************************************************
;* 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                                          *
;*******************************************************************************
;N£mero de Linhas: 8 (Verificar no Parƒmetros do Cliente)
;
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"
 
Print File ARQIMP Format("W50,AL","CONTROLE INTERNO")+"Impressao: "+Format("D10",Today())+"-"+Time()+ "\n\n"

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

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 : "+Format("W25,AL",VSD_E_Cidade)+"UF DA ENTREGA :" +Format("W02,AL",VSD_E_UF)+"\n"

Print File ARQIMP "\020"

Print File ARQIMP "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(10)+Format("W40,AL",[Endereco])
Print File ARQIMP Format("W18,AL",[CGC])+"\n"

Print File ARQIMP 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(10)+Format("W20,AL",[Cidade])
Print File ARQIMP Format("W20,AL",[UF])
Print File ARQIMP Format("W25,AL",[Telefone])+"\n"

Print File ARQIMP "Operacao: "
Print File ARQIMP Chr(27)+Chr(71)
Print File ARQIMP ""+[Codigo da Destinacao]+" "+[Descricao da Destinacao]+"\n"
Print File ARQIMP Chr(27)+Chr(72)

Print File ARQIMP "Vendedor: "+Format("W05,AL",[Codigo do Representante])
Print File ARQIMP Format("W25,AL",[Nome Fantasia Represent])+"\n"
Print File ARQIMP "\015"         ;Imprime 17 Caracteres por polegada

Print File ARQIMP "---------------------------------------------------------------------------------------------------------------------"+"\n"
Print File ARQIMP Spaces(02)+"Item                                                                          Un  Quantidade  Unitario        Total"+"\n"
Print File ARQIMP "---------------------------------------------------------------------------------------------------------------------"+"\n"  
EndProc ;(Cabecalho)  
;14
;********************* IMPRESSAO DOS ITENS ********************************

Proc Itens()

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
QUANT    = 0
TOT      = 0
CONTADOR = 0
PARAM_TAMANHO_DESCR=83

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
QUANT=0
TOT  =0
PARAM_TAMANHO_DESCR=63

While [Numero da OF]=[FaturaC->Numero da OF]  
  Checa_Linha(1)
  desc=[Descricao do Item]
 ; ref =""
  Moveto [Codigo do Item]
  If BUSCA_LOOKUP("Codigo do Item",[FaturaI->Codigo do Item],"SM")
     Then desc=desc+Spaces(1)+REG_BUSCA_LOOKUP["Descricao Complementar"]
          ;ref =REG_BUSCA_LOOKUP["Referencia"]
  EndIf

  Numero_de_Linhas=Int(Len(Desc)/PARAM_TAMANHO_DESCR)
	If (Len(Desc)/PARAM_TAMANHO_DESCR)>Numero_de_Linhas
     Then Numero_de_Linhas=Numero_de_Linhas+1
  EndIf

	LINHA_ITEM = Spaces(02)+Format("W04,AL",[Item da OF])+Spaces(01)+Format("W11,AL",[Codigo do Item])

    pos_inicial=1
  For nl From 1 To Numero_de_Linhas
     LINHA_ITEM = LINHA_ITEM + Format("W59,AL",SubStr(Desc,pos_inicial,PARAM_TAMANHO_DESCR))
     If nl<Numero_de_Linhas
        Then Print File ARQIMP LINHA_ITEM + "\n"
             LINHA_ITEM = Spaces(18)
             pos_inicial=pos_inicial+PARAM_TAMANHO_DESCR
     EndIf
  EndFor

	LINHA_ITEM=LINHA_ITEM+Spaces(03)+Format("W03,AL",[Unidade Fiscal])
  LINHA_ITEM=LINHA_ITEM+Format("W10.3,EIC",[Quantidade])
  LINHA_ITEM=LINHA_ITEM+Format("W10.2,EIC",[Preco Unitario])
  LINHA_ITEM=LINHA_ITEM+Format("W13.2,EIC",[Preco Total])

	Print File ARQIMP LINHA_ITEM+"\n"
 ; Print File ARQIMP Fill("-",54)+"\n"

	QUANT=QUANT+[Quantidade]
	TOT=TOT+[Preco Total]
	Skip
	If EOT() Then QuitLoop EndIf
EndWhile

EndProc ;(Itens)

;********************* IMPRESSAO DOS TOTAIS **************************
Proc Rodape(QUEBRAFORM)
Private QUEBRAFORM

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

;********************* IMPRESSAO DOS TOTAIS ************************************
Moveto "FaturaC"

If QUEBRAFORM
   Then Print File ARQIMP "*** FAVOR REVISAR OS TECIDOS,NAO ACEITAMOS RECLAMACAO, NEM DEVOLUCAO"
        Print File ARQIMP Spaces(19)+"Total..............  *******  "+"\n"
        Print File ARQIMP "    APOS O CORTE DOS MESMOS ***"
        Print File ARQIMP Spaces(56)+"Desconto  **  "+ "%...."
        Print File ARQIMP "  *******  "+"\n"             
        Print File ARQIMP Spaces(87)+"Total Liquido......  *******  "+"\n"
        Print File ARQIMP "\027E"+Format("W48,AR","   * * * *  CONTINUA NO PROXIMO FORMULARIO * * * *    ")+"\027F"+"\n\n"
   Else Print File ARQIMP "*** FAVOR REVISAR OS TECIDOS,NAO ACEITAMOS RECLAMACAO, NEM DEVOLUCAO"
        Print File ARQIMP Spaces(19)+"Total............."+Format("W11.2,EIC",TOT)+"\n"
        Print File ARQIMP "    APOS O CORTE DOS MESMOS ***"
        Print File ARQIMP Spaces(56)+"Desconto"+Format("W06.2,EIC",[Taxa de Desconto]) + "%..."
        Print File ARQIMP Format("W11.2,EIC",[Valor Desconto])+"\n"
        Print File ARQIMP Spaces(87)+"Total Liquido....."+Format("W11.2,EIC",[Valor Mercadoria Liquido])+"\n\n\n"
EndIf
;6
If Substr([Observacao na Nota Fiscal],001,110)<>""
   Then Print File ARQIMP "Obs: "+Format("W110,AL",SubStr([Observacao na Nota Fiscal],001,110))+"\n"
   Else Print File ARQIMP "\n"
EndIf
If Substr([Observacao na Nota Fiscal],111,110)<>""
   Then Print File ARQIMP Spaces(05)+Format("W110,AL",SubStr([Observacao na Nota Fiscal],111,110))+"\n\n"
   Else Print File ARQIMP "\n\n"
EndIf
;3
If QUEBRAFORM
   Then  Print File ARQIMP "Qtde.de Volumes....:"+Format("W4,EIC",[Numero de Volumes])
         Print File ARQIMP "Cond. Pagto: "+[Descricao CondPagto]
         Print File ARQIMP "   NP: "+StrVal([Numero de Parcelas])
         Print File ARQIMP "   CD: "+[Composicao de Dias]+"\n\n\n"
   Else  Print File ARQIMP "Qtde.de Volumes....:"+Format("W4,EIC",[Numero de Volumes])
         Print File ARQIMP "Cond. Pagto: "+[Descricao CondPagto]
         Print File ARQIMP "   NP: "+StrVal([Numero de Parcelas])
         Print File ARQIMP "   CD: "+[Composicao de Dias]+"\n\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]
         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"
EndIf
;3
;************************* IMPRESSAO DO RODAPE *********************************
If QUEBRAFORM
  Then Print File ARQIMP "\n\n\n" 
  Else Print File ARQIMP Spaces(35)+"   /   /     -                                   " + "\n"
       Print File ARQIMP Spaces(35)+"-------------------------------------------------" + "\n"
       Print File ARQIMP Spaces(35)+"                 Data e Assinatura"+"\n"
EndIf
;3
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_0233a.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()
