;** Pd_0345S********************************************************************
;** Imprime a Digitacao do Pedido          ** Vitoria Textil  **               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 21/01/2017 por Anivel Augusto Rodrigues
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes layout
;Ultima Alteracao: 27/04/2017 por Rafael Matos
;Motivo Alteracao: Incluso Obs do Pedido
;Ultima Alteracao: 11/05/2017 por Rafael Matos
;Motivo Alteracao: Ajustes quantidade dos itens


proc iniciasnome(s)
private s, ns, pos, i

ns=substr(s,1,1)

pos=2
while true

  pos=searchfrom(" ",s,pos)
  if pos>0
     then ns=ns+substr(s,(pos+1),1)
          pos=pos+1
     else quitloop
  endif   

endwhile

return ns
endproc




;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Cabecalho()

;************************* IMPRESSAO DO CABECALHO *****************************
If Not IsAssigned(NOMEMPRESA)
   Then NOMEMPRESA=""
EndIf

pag=pag+1

moveto "PedidoC"
Print File ARQIMP CI_15CPP+CI_8LPP+"\n"
Print File ARQIMP spaces(2)+Fill("-",132)+"\n"
Print File ARQIMP Spaces(02)+Format("W40,AL",NOMEMPRESA)+Spaces(15)+"Pedido de Venda"+Spaces(22)+
                  "Impressao: "+Format("D13",Today())+"-"+Time()+"   Pag:"+format("W3,AR",pag)+"\n"
Print File ARQIMP spaces(2)+Fill("-",132)+"\n\n"

Print File ARQIMP Spaces(02)+"      Cliente: "
Print File ARQIMP Format("W05,AL",[Codigo])
Print File ARQIMP Format("W82,AL",iniciasnome([Nome Fantasia EmitDest]))
Print File ARQIMP "N§ do Pedido : "+Format("W6,AL",[Numero do Pedido])+"\n"
Print File ARQIMP Spaces(02)+"Representante: "+Format("W05,AL",[Codigo do Representante])
Print File ARQIMP Format("W25,AL",[Nome Fantasia Represent])+"\n\n"

Print File ARQIMP spaces(2)+Fill("-",132)+"\n"
Print File ARQIMP "  Referencia|Item                          |Un|Cor |     M  |    F  |Cor |     M  |    F  |Cor |     M  |    F  |Cor |     M  |    F  |"+"\n"


Cont=10

moveto TabelaPDItens
endproc

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPPED()
private s, s2, PEDIDOREFITEM, PEDIDOCORQTDE, PEDIDOTOTAL


pag=0
Cabecalho()

moveto "PedidoC"


;********************* IMPRESSAO DOS ITENS ********************************

Moveto TabelaPDItens
Home

PEDIDOREFITEM="***"
PEDIDOCORQTDE=0
PEDIDOTOTAL  =0
            s=""
           s2=""
Scan

   if [Referencia]<>PEDIDOREFITEM
      then
           PEDIDOREFITEM=[Referencia]
           PEDIDOTOTAL  =0
      
           if s<>""
              then IMPPEDItem(s,s2)
           endif   
      
           s =Format("W10,AL",[Referencia       ])+"|"+
              Format("W30,AL",[Descricao do Item])+"|"+
              Format("W02,AL",[Unidade Fiscal   ])+"|"
              
   endif

   if PEDIDOCORQTDE=4
      then IMPPEDItem(s,"")
           s="          |                              |  |"
   endif   

   s=s+Format("W04,AR",[Codigo da Cor_Tecido])+"|"+Format("W08.1,EIC",[Quantidade])+"|       |"

   PEDIDOCORQTDE=PEDIDOCORQTDE+1
   PEDIDOTOTAL  =PEDIDOTOTAL  +[Preco Total]

   s2=Spaces(08)+" "+spaces(10)
   
EndScan
IMPPEDItem(s,s2)

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

;********************* IMPRESSAO DOS TOTAIS **************************
Moveto "PedidoC"
Print File ARQIMP "\n"

Print File ARQIMP Spaces(40)+"_______________________________________________"+"\n"
Print File ARQIMP Spaces(50)+"Data/Assinatura Responsavel"+"\n\n"
Print File ARQIMP spaces(2)+Fill("-",132)+"\n\n"

If SubStr([PedidoC->Observacao do Pedido],1,110)<>""
  Then Print File ARQIMP "Observa‡Æo do Pedido.: "+SubStr([PedidoC->Observacao do Pedido],1,110)+"\n"
  Else Print File ARQIMP "\n"
EndIf

If SubStr([PedidoC->Observacao do Pedido],89,110)<>""
  Then Print File ARQIMP Spaces(23)+SubStr([PedidoC->Observacao do Pedido],111,110)+"\n"
  Else Print File ARQIMP "\n"
EndIf

Print File ARQIMP CI_10CPP
EndProc

;*******************************************************************************
;* Rotina de Impressao dos Vencimentos                                         *
;*******************************************************************************
Proc IMPPEDItem(ss1,ss2)
private ss1, ss2, i

while PEDIDOCORQTDE < 4

  ss1=ss1+"    |        |       |" 

  PEDIDOCORQTDE=PEDIDOCORQTDE+1
                 
endwhile

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

Cont=Cont+2
If Cont>=85           
   Then Print File ARQIMP spaces(2)+Fill("-",132)+"\f"
        Cabecalho()
EndIf

PEDIDOCORQTDE=0
endproc

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


Moveto "PedidoI"
moveto [Numero do Pedido]
locate PEDIDO
if retval
   then while [Numero do Pedido]=PEDIDO
  
          coditempai=[Codigo do Item]
          if [Tipo do Item]="T"
             then coditempai=PegaCodigoRaiz(coditempai)
          endif   
      
          getrecord "\\Sistemas\\Estoque\\Itens" coditempai to regitens
          if Not retval
             then
                 ;Mensagem("Item "+[Codigo do Item]+", sem pai cadastrado !")
                  
                  refeitem ="????"
                  Descitem ="????"
                  uniditem ="????"
             else
                  refeitem =regitens["referencia"]
                  Descitem =regitens["Descricao do Item"]
                  uniditem =regitens["Unidade Fiscal"   ]
          endif        
             
          PEDIDOSEQ     =[PedidoI->Item do Pedido]
          itempedidonovo=true
          
          If substr(refeitem,1,6)="001353"
             Then debug
          EndIF   
          
          moveto TabelaPDItens
          moveto [Referencia]
          Locate refeitem
          if retval
             then 
                  PEDIDOSEQ=[Sequencia]
                  while refeitem=[Referencia]
             
                    if [Codigo da Cor_Tecido]=[PedidoI->Codigo da Cor_Tecido]
                       then itempedidonovo=false
                            quitloop
                    endif
                    skip
                    if eot() then quitloop endif
                    Locate Next refeitem
                    If Not RetVal Then QuitLoop EndIf
                  endwhile
          endif
          
          if itempedidonovo
             then end
                  down
                  [Numero do Pedido    ]=PEDIDO
                  [Sequencia           ]=PEDIDOSEQ
                  [Referencia          ]=refeitem
                  [Codigo do Item      ]=coditempai 
                  [Descricao do Item   ]=Descitem 
                  [Unidade Fiscal      ]=uniditem

                  [Codigo da Cor_Tecido]=[PedidoI->Codigo da Cor_Tecido] 
                  [Preco Unitario      ]=[PedidoI->Preco Unitario      ] 
          endif    

          [Quantidade          ]=[Quantidade ]+[PedidoI->Quantidade ] 
          [Preco Total         ]=[Preco Total]+[PedidoI->Preco Total]       
      
          Moveto "PedidoI"
          skip
          if eot() then quitloop endif
        endwhile
endif

EndProc

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

AGUARDE("Aguarde, Imprimindo Pedido "+PEDIDO)

Clearall

TabelaPDItens=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\Peditmp1" TabelaPDItens
Empty TabelaPDItens

View NoWindow TabelaPDItens
View NoWindow "PedidoI"
View NoWindow "PedidoV"
View NoWindow "PedidoC"
CoEditKey
moveto [Numero do Pedido]
Locate PEDIDO
if retval
   then
        OrganizaItensReferencia()
                
        Seta_FilePrint("PD_0345S")
        IMPPED()
        Do_It!
        ClearAll
        
        ImpriArq(ARQIMP)
                
endif

Delete TabelaPDItens

Release Vars TabelaPDItens, pag
Release Procs IMPPED, IMPPEDItem, OrganizaItensReferencia, Cabecalho, iniciasnome
