;** PR_0045  *******************************************************************
;** Imprime Formulacao s/Custo da Programa‡Æo - Recurtimento                                 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 02/05/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao: 17/05/2019 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustea

;*******************************************************************************
;* Rotina para Impressao Cabecalho                                             *
;*******************************************************************************
Proc PR_0045_Cabecalho()

If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="" EndIf
Print File ARQIMP CI_8LPP+CI_12CPP+"\n"

RNLinhas=14
NPAG=NPAG+1

Moveto "Recurt_C"

Print File ARQIMP Fill("-",96)+"\n"
Print File ARQIMP Format("W45,AL",NOMEMPRESA)+"Emissao: "+Format("D13",Today())+"-"+Time()+
                  Spaces(15)+"Pag: "+Format("W3,AR",NPAG)+"\n"
Print File ARQIMP Fill("-",96)+"\n\n"

Print File ARQIMP " Formulac„o: "+CI_INEG+Format("W58,AL","RECURTIMENTO")       +
                                 "Partida N§ "+CI_IEXP+CI_INEG+Format("W6,AL",AlinhM(StrVal(VSDGNPARTIDA),6))+CI_FEXP+CI_FNEG+"\n"
Print File ARQIMP "    Cliente: "+Format("W67,AL",[Codigo]+" "+[Razao Social])  +Format("D13",[Recurt_C->Data_Programacao])+"-"+[Recurt_C->Hora_Programacao]+"\n" 
Print File ARQIMP "     Pedido: "+Format("W8,EIC",[Numero do Pedido])+"\n"

PR_0045_imprimeobs()

Print File ARQIMP  "\n"

Print File ARQIMP  "Produto                                       Cor                                      Espessura"+"\n"
Print File ARQIMP  "--------------------------------------------- ---------------------------------------- ---------"+"\n"
Print File ARQIMP  Format("W46,AL",[Codigo do Item   ]+" "+[Descricao do Item])+
                        Format("W41,AL",[Codigo da Cor_Tecido]+" "+[Descricao da Cor_Tecido])+
                        [Espessura]+"\n\n"

Print File ARQIMP  "  %      Material                                   Quantidade  Un  C'   Tempo  Inicio |   Fim  "+"\n"
Print File ARQIMP  "-------- ---------------------------------------- ------------- -- ----- ----- --------+--------"+"\n"

Moveto "Recurt_I"

Endproc

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

TamObs=80

s="Observacoes: "+Tira_QuebraLinha([Observacao])

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"
  RNLinhas=RNLinhas+1

  posobs=posobs+tamobs
EndFor

endproc

;*******************************************************************************
;* Rotina para Finalizar Item                                                  *
;*******************************************************************************
Proc PR_0045_FinalizaProduto()

Print File ARQIMP "Produzida => "+
                        Format("W8,EIC",[Recurt_C->Quantidade_Meios])+" Meios  => "+
                        Format("W8,EIC",[Recurt_C->Quantidade_Kg   ])  +" Kg  => "+
                        Format("W8,EIC",[Recurt_C->Quantidade_Mt   ])  +" Mt"+"\n"

PR_0045_Rodape()

IMPTRACO=False
Endproc

;*******************************************************************************
;* Rotina para Impressao Rodape                                                *
;*******************************************************************************
Proc PR_0045_Rodape()

Print File ARQIMP CI_6LPP+CI_10CPP+"\n"
Print File ARQIMP "\f"
Endproc

;*******************************************************************************
;* Rotina para Impressao Detalhe                                               *
;*******************************************************************************
Proc PR_0045_Detalhe()
private ci,tm

If IsBlank([Sequencia]) or ([Sequencia]=0)
   Then 
        If IMPTRACO
           Then IMPTRACO=False
                Return
           Else Print File ARQIMP  Fill("-",96)+"\n"
        EndIf
   Else 
        IMPTRACO=False
        LINHA=""
        LINHA=FormatTZD("W08.3,EICL",[Porcentagem])+
              Spaces(01)+Format("W11,AL",[Codigo do Material])+
              Format("W30,AL",[Descricao do Item])
        LINHA=LINHA+FormatTZD("W13.6,EIC",[Quantidade])

        LINHA=LINHA+Spaces(01)+Format("W03,AL",[Unidade Interna])+
                    Format("W06,AL",[Temperatura])+
                    Format("W06,AL",[Tempo])

        If Not IsBlank([Tempo])
           Then LINHA=LINHA+"___:___ | ___:___"
                IMPTRACO=True
        EndIf
        Print File ARQIMP LINHA+"\n"

        If Not IsBlank([Observacoes])
           Then ci=1
                tm=84
                While True
                  If Not IsBlank(RTrim(SubStr([Observacoes],ci,tm)))
                     Then Print File ARQIMP CI_INEG+Spaces(10)+SubStr([Observacoes],ci,tm)+CI_FNEG+"\n"
                          RNLinhas=RNLinhas+1
                          ci=ci+tm
                     Else QuitLoop
                  EndIf
                EndWhile
        EndIf
EndIf

RNLinhas=RNLinhas+1

If IMPTRACO
   Then Print File ARQIMP Fill("-",96)+"\n"
        RNLinhas=RNLinhas+1
EndIf

EndProc

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

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

View "Recurt_C"
View "Recurt_I"

Moveto "Recurt_C"
moveto [Numero_Partida]
locate VSDGNPARTIDA
if retval
   then
        RNLinhas=80
        NPAG    =0
        IMPTRACO=False
        
        Moveto "Recurt_I"
        moveto [Numero_Partida]
        locate [Recurt_C->Numero_Partida]
        if retval
           then while [Numero_Partida ]=[Recurt_C->Numero_Partida]
                      
                  If RNLinhas>79
                     Then PR_0045_Cabecalho()
                  EndIf
                
                  PR_0045_Detalhe()
                  
                  skip
                  if eot() then quitloop endif
                
                Endwhile
                PR_0045_FinalizaProduto()
                
                ImpriArq(ARQIMP)
        endif
endif

ClearAll
LIMPAGUARDE()

Release Vars RNLinhas,NPAG,IMPTRACO
Release Procs PR_0045_Cabecalho, PR_0045_Rodape, PR_0045_Detalhe, PR_0045_FinalizaProduto, PR_0045_imprimeobs
