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


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

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

RNLinhas=14
NPAG=NPAG+1

Moveto "Recur2_C"

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

Print File ARQIMP " Formulac„o: "+CI_INEG+Format("W57,AL","RECURTIMENTO  /Custo ["+VSDGMESANO+"]")       +
                                 "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",[Recur2_C->Data_Programacao])+"-"+[Recur2_C->Hora_Programacao]+"\n" 
Print File ARQIMP "     Pedido: "+Format("W8,EIC",[Numero do Pedido])+"\n"

PR_0040B_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 Vr.Unitario   Vr.Total Data Custo"+"\n"
Print File ARQIMP  "-------- ---------------------------------------- ------------- -- ----------- ---------- ----------"+"\n"
Moveto "Answer"

Endproc

;*******************************************************************************
;* Rotina de Impressao de Observa‡äes                                          *
;*******************************************************************************
proc PR_0040B_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_0040B_FinalizaProduto()

Print File ARQIMP CI_INEG+Spaces(66)+"   Total... "
Print File ARQIMP Format("W11.3,EIC",VRTOT)+CI_FNEG+"\n\n"

Print File ARQIMP "Produzida => "+
                        Format("W8,EIC",[Recur2_C->Quantidade_Meios])+" Meios  => "+
                        Format("W8,EIC",[Recur2_C->Quantidade_Kg   ])  +" Kg  => "+
                        Format("W8,EIC",[Recur2_C->Quantidade_Mt   ])  +" Mt"+
                        Spaces(10)+"Custo "+ Format("W11.3,EIC",VRTOT/[Recur2_C->Quantidade_Mt   ])+"/Mt"+
                                             Format("W13.3,EIC",VRTOT/[Recur2_C->Quantidade_Kg   ])+"/Kg"+
                                             Format("W13.3,EIC",VRTOT/[Recur2_C->Quantidade_Meios])+"/Meio"+"\n"

PR_0040B_Rodape()

Endproc

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

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

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

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("W11.3,EIC",[Custo Unitario])

If IsBlank([Sequencia]) or ([Sequencia]=0)
   Then Print File ARQIMP Fill("-",132)+"\n"
        RNLinhas=RNLinhas+1
   Else LINHA=LINHA+Format("W11.2,EIC",[Custo Total])
EndIf
LINHA=LINHA+Spaces(01)+SubStr([Observacoes],1,10)

Print File ARQIMP LINHA+"\n"
RNLinhas=RNLinhas+1

VRTOT=VRTOT+[Custo Total]

EndProc

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

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

{Ask}{Recur2_I} check
moveto [Numero_Partida ] typein "_np, ~VSDGNPARTIDA.."
do_it!
ClearAll

If Not IsEmpty("Answer")
   Then
        View "\\Sistemas\\Estoque\\SDEstq"
        CoEdit "Answer"
        Scan For Not IsBlank([Codigo do Material]) and
                             [Codigo do Material]<>"0000009999"

          Moveto "\\Sistemas\\Estoque\\SdEstq"
          Moveto [Codigo da Empresa]
          Locate VSDGEMPRESA,[Answer->Codigo do Material],VSDGANO, VSDGMES
          If RetVal
             Then Moveto "Answer"
                  [Custo Unitario]=[\Sistemas\Estoque\SdEstq->Preco de Custo]
                  [Observacoes   ]=format("D13",[\Sistemas\Estoque\SdEstq->Data do Preco de Custo])
             Else Moveto "Answer"
                  [Observacoes]=""
                  MSG="N„o foi encontrada a ficha de estoque referente a "+VSDGMES+"/"+VSDGANO+" !// //"
                  MSG=MSG+Format("W08,AL","Empresa")  +"| "+Format("W11,AL","Item")   +"| "+Format("W30,AL","Descri‡„o")+"//"
                  MSG=MSG+Format("W08,AL",VSDGEMPRESA)+"| "+Format("W11,AL",[Answer->Codigo do Material])+"| "+Format("W30,AL",[Answer->Descricao do Item])+"//"
                  MSG=MSG+"Observacoes:                                                           //"
                  MSG=MSG+"1. Talvez n„o foi executada a transferencia de saldos do mes anterior; //"
                  MSG=MSG+"// "
                  MENSAGEM(MSG)
          EndIf
          [Custo Total]=[Custo Unitario]*[Quantidade]
          Moveto "Answer"
        EndScan
        Do_It!
        ClearAll
EndIf


View "Recur2_C"
View "Answer"

Moveto "Recur2_C"
moveto [Numero_Partida]
locate VSDGNPARTIDA
if retval
   then
        RNLinhas=80
        NPAG    =0
        VRTOT   =0
        
        Moveto "Answer"
        moveto [Numero_Partida]
        locate [Recur2_C->Numero_Partida]
        if retval
           then while [Numero_Partida ]=[Recur2_C->Numero_Partida]
                      
                  If RNLinhas>79
                     Then PR_0040B_Cabecalho()
                  EndIf
                
                  PR_0040B_Detalhe()
                  
                  skip
                  if eot() then quitloop endif
                
                Endwhile
                PR_0040B_FinalizaProduto()
                
                ImpriArq(ARQIMP)
        endif
endif

ClearAll
LIMPAGUARDE()

Release Vars RNLinhas,NPAG,VRTOT  
Release Procs PR_0040B_Cabecalho, PR_0040B_Rodape, PR_0040B_Detalhe, PR_0040B_FinalizaProduto, PR_0040B_imprimeobs
