;** RO_0359B *******************************************************************
;** Imprime a Digitacao do Romaneio                      ** TECIDOS TOTAL**    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 18/02/2019 por Anivel Augusto Rodrigues
;Alteracao:    em: 21/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo agrupar s¢ em ordem
;Alteracao:    em: 22/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes total qtde referencia   
;Alteracao:    em: 07/03/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes MENSAGEM FIXA DE RECLAMA€ÇO 
;Alteracao:    em: 09/08/2019 por Bruno/Humberto
;Motivo Alteracao: Alterada DATA[K] de 16 para 24  

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPFAT()
private NOMEMPRESA,s,wt,s1,s2,s3,k,kv

;************************** 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"+"Entrega : "+"\027F"+Format("W40,AL",VSD_E_Endereco)+"\n"
Print File ARQIMP Spaces(10)+Format("W20,AL",VSD_E_Bairro)+Format("W20,AL",VSD_E_CEP)+"\n" 
Print File ARQIMP Spaces(10)+Format("W20,AL",VSD_E_Cidade)+Format("W20,AL",VSD_E_UF)+"\n"
Print File ARQIMP "\027E"+"Transp. : "+"\027F"+Format("W05,AL",[Codigo da Transportadora])+Format("W46,AL",[Nome Fantasia Transport])+"\n"

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

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

;************************* IMPRESSAO DOS ITENS *********************************
Print File ARQIMP Fill("-",132)+"\n" 
Print File ARQIMP "  Referencia|Item                           |Un|Cor    Qtde |Cor    Qtde |Cor    Qtde |Cor    Qtde |   QtdeTotal|  PrUnit|   PrTotal"+"\n"


FATURAREFITEM="***"     
FATURACORQTDE=0
FATURATOTAL  =0
FATURANITENS =0
FATURAQTDTOT =0
            s=""
           s2=""     
Moveto TABELA_TEMP
Scan

   FATURANITENS=FATURANITENS+1

   if [Referencia]<>FATURAREFITEM
      then
           FATURAREFITEM=[Referencia]
           FATURATOTAL  =0
           FATURAQTDTOT =0
      
           if s<>""
              then IMPFATItem(s,s2)
           endif   
      
           s =Format("W10,AL",[Referencia       ])+"|"+
              Format("W31,AL",[Descricao do Item])+"|"+
              Format("W02,AL",[Unidade Fiscal   ])+"|"
              
   endif

   if FATURACORQTDE=4
      then IMPFATItem(s,"            |        |")
           s="          |                               |  |"
   endif          
   s=s+Format("W04,AR",[Codigo da Cor_Tecido])+Format("W08.1,EIC",[Quantidade])+"|"

   FATURACORQTDE=FATURACORQTDE+1
   FATURATOTAL  =FATURATOTAL  +[Preco Total]
   FATURAQTDTOT =FATURAQTDTOT +[Quantidade ]

   s2=Format("W12.3,EIC",FATURAQTDTOT)+"|"
   s2=s2+Format("W08.2,EIC",[Preco Unitario])+"|"
   s2=s2+Format("W10.2,EIC",FATURATOTAL)

EndScan
IMPFATItem(s,s2)

Print File ARQIMP Fill("-",132)+"\n" 

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

Print File ARQIMP Format("W102,AL",format("W7,EIC",FATURANITENS)+" Itens ")+"Total............. "+Format("W11.2,EIC",[Valor Mercadoria])+"\n"

Print File ARQIMP format("W102,AL","*** FAVOR REVISAR OS TECIDOS,NAO ACEITAMOS RECLAMACAO,NEM DEVOLUCAO APOS O CORTE DOS MESMOS ***")
Print File ARQIMP                  "Desconto"+Format("W06.2,EIC",[Taxa de Desconto]) + "%..."+Format("W12.2,EIC",[Valor Desconto])+"\n"

Print File ARQIMP format("W102,AL","*** RECLAMACOES SO SERAO ACEITAS ATE 48 HORAS APOS A ENTREGA ***")
Print File ARQIMP                  "Total Liquido..... "+Format("W11.2,EIC",[Valor Nota Fiscal])+"\n\n"

imprimeobs(Tira_QuebraLinha([Observacao na Nota Fiscal]))

Print File ARQIMP "Numero da OF...: "+Format("W6,AL",[Numero da OF])+"\n"
Print File ARQIMP "Qtde.de Volumes: "+Format("W4,EIC",[Numero de Volumes])+"\n" 
Print File ARQIMP "Peso Liquido...: "+LTrim(Format("W20.3,EIC",[Peso Liquido]))+"\n"                                                         
Print File ARQIMP "Cond. Pagto....: "+[Descricao CondPagto]+"\n"
Print File ARQIMP "NP.............: "+StrVal([Numero de Parcelas])+"\n"
Print File ARQIMP "CD.............: "+[Composicao de Dias]+"\n"

;********************* IMPRESSAO DOS VENCIMENTOS *******************************
Print File ARQIMP "\015"
Print File ARQIMP "\027E"

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

;************************ IMPRESSAO DOS VENCIMENTOS ****************************
s1="Vencimentos....: "
s2="                 "
s3="                 "
KV=0
for K from 1 to 24

 if isblank(DATA[k])
    then quitloop
 endif    
 
 if kv=9 
    then Print File ARQIMP s1+"\n"
         Print File ARQIMP s2+"\n"
         Print File ARQIMP s3+"\n"

         kv=0
         s1="                 "
         s2="                 "
         s3="                 "
         
 endif

 kv=kv+1
 s1=s1+format("W10,AR"   , FPGT[K])+Spaces(02)
 s2=s2+Format("D13"      , DATA[k])+Spaces(02)
 s3=s3+Format("W10.2,EIC",VALOR[k])+Spaces(02)

endfor
if kv>0
  then Print File ARQIMP s1+"\n"
       Print File ARQIMP s2+"\n"
       Print File ARQIMP s3+"\n"

       kv=0
       s1=""
       s2=""
       s3=""
endif


Print File ARQIMP "\n"
Print File ARQIMP "\027F"

;************************* IMPRESSAO DO RODAPE *********************************
Print File ARQIMP Spaces(17)+"   /   /     -                                   " + "\n"
Print File ARQIMP Spaces(17)+"-------------------------------------------------" + "\n"
Print File ARQIMP Spaces(17)+"              Data e Assinatura"+"\n"
Print File ARQIMP CI_6LPP
Print File ARQIMP CI_10CPP
Print File ARQIMP "\f"
EndProc

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

s="Observacoes....: "+s

TamObs=132

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+SubStr(s,posobs,tamobs)+CI_FNEG+"\n"

  posobs=posobs+tamobs
EndFor

endproc


;*******************************************************************************
;* Rotina de Impressao                                                         *
;*******************************************************************************
Proc IMPFATItem(ss1,ss2)
private ss1, ss2, i

while FATURACORQTDE < 4

  ss1=ss1+"            |"                  

  FATURACORQTDE=FATURACORQTDE+1
                 
endwhile

Print File ARQIMP           "------------|-------------------------------|--|------------|------------|------------|------------|------------|--------|----------"+"\n"
Print File ARQIMP spaces(2)+ss1+ss2+"\n"

FATURACORQTDE=0
endproc


;*******************************************************************************
;* Rotina de Impressao dos Vencimentos                                         *
;*******************************************************************************
Proc OrganizaItensReferencia()
Private coditempai,itemfaturanovo, FATURASEQ, regitens, refeitem, descitem, uniditem

Do_it!

TABELA_TEMP=Cria_Tabela("","Numero da OF(A6*),Referencia(A20*),Preco Unitario($*),Codigo da Cor_Tecido(A4*),Item da OF(S*),"+
"Codigo do Item(A10),Descricao do Item(A100),Descricao da Cor_Tecido(A20),"+
"Preco Unitario Tabela($), Codigo da Tabela (A5), Quantidade(N),Unidade Fiscal(A4),Preco Total($))")

View TABELA_TEMP

CoeditKey

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While [Numero da OF]=[FaturaC->Numero da OF]

  coditempai=[Codigo do Item]
  getrecord "\\Sistemas\\Estoque\\Itens" coditempai to regitens
  if Not retval
     then
          refeitem ="????"
          Descitem ="????"
          uniditem ="????"
     else
          refeitem =regitens["referencia"]
          Descitem =regitens["Descricao do Item"]
          uniditem =regitens["Unidade Fiscal"   ]
  endif        
  
  itemfaturanovo=true
                     
  moveto TABELA_TEMP
  end
  down
  [Numero da OF         ]=[FaturaC->Numero da OF]
  [Referencia           ]=[FaturaI->Referencia           ]
  [Preco Unitario       ]=[FaturaI->Preco Unitario       ] 
  [Codigo da Cor_Tecido ]=[FaturaI->Descricao da Cor_Tecido ] 
  [Item da OF           ]=[FaturaI->Item da OF]

  [Codigo do Item       ]=coditempai 
  [Descricao do Item    ]=Descitem 
  [Unidade Fiscal       ]=uniditem

  [Codigo da Tabela     ]=[FaturaI->Codigo da Tabela]
  
  [Preco Unitario Tabela]=[FaturaI->Preco Unitario Tabela] 

  [Quantidade           ]=[FaturaI->Quantidade ] 
  [Preco Total          ]=[FaturaI->Preco Total]
  unlockrecord

  Moveto "FaturaI"
  skip
  if eot() then quitloop endif
endwhile

EndProc



;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************

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

AGUARDE("Imprimindo Romaneio -> "+NOTAFISC)

OrganizaItensReferencia()
IMPFAT()

Do_It!
Moveto TABELA_TEMP ClearImage
delete TABELA_TEMP

Moveto "FaturaC"
CoEditKey

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


Release Vars VALOR,DATA,FPGT,TABELA_TEMP,FATURAREFITEM,FATURACORQTDE,FATURATOTAL,FATURANITENS
Release Procs IMPFAT,OrganizaItensReferencia,IMPFATItem,imprimeobs
LIMPAGUARDE()
