;** Pd_0345 ********************************************************************
;** Imprime a Digitacao do Pedido          ** Vitoria Textil  **               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 17/01/2017 por Anivel Augusto Rodrigues
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes layout
;Ultima Alteracao: 16/03/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes OrganizaItensReferencia() -> Verifica‡Æo incorreta ao mover pra tabela TabelaPDItens, 
;                  ausˆncia [Referencia] = refeitem
;Ultima Alteracao: 16/03/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ mostrar separadamente itens em promo‡Æo
;Ultima Alteracao: 20/03/2017 por Bruno Carvalho
;Motivo Alteracao: Adiconado mensagem para quando item do pedido nÆo estiver na tabela de pre‡o
;Ultima Alteracao: 06/04/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adiconado pedidos cancelados
;Ultima Alteracao: 11/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adiconado preco tabela           

;*******************************************************************************
;* Selecionar Dados                                                            *
;*******************************************************************************
Proc ImprimeFicha(CODIGO)
private CODIGO, ws, VStotav, VStotv, SOMAP, VStotped, 
        TOTCQAD, TOTCQAC, TOTSEMF, VStotchq, TOTTC, VStotchqad,
        l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,
        TOTCLI,TOTDISPONIVEL,
        PedidoCancelado1,PedidoCancelado2,wcp,obs
      
        ; manter este mecanismo gerando dados igual ao c_Clie, consulta posicao do cliente !


MSG_AGUARDE="Aguarde, Preparando Consulta"

ClearAll

View NoWindow "\\Sistemas\\CtaRec\\Duplic"
View NoWindow "\\Sistemas\\Vendas\\PedidoI"
View NoWindow "\\Sistemas\\Vendas\\PedidoC"
View NoWindow "\\Sistemas\\CheqRec\\ChequeI"
View NoWindow "\\Sistemas\\Ctapag\\Titulos"

View NoWindow "\\Sistemas\\Cadastro\\FichaCli"
View NoWindow "\\Sistemas\\Cadastro\\DestObs"
View NoWindow "\\Sistemas\\Cadastro\\DestMsg"
View NoWindow "\\Sistemas\\Cadastro\\Destinat"
CoEditKey

VStotav =0
VStotv  =0
VStotped=0

;; Titulos a Vencer
Aguarde(MSG_AGUARDE+Barra(5,1))

Moveto "\\Sistemas\\CtaRec\\Duplic"
Moveto [Codigo do Destinatario]
OrderTable {Inddup22}
Locate IndexOrder by "Inddup22" CODIGO
If RetVal
   Then While [Codigo do Destinatario]=CODIGO
          If [Saldo do Documento]>0.01
             Then If [Data de Vencimento]>=Today()
                     Then 
                          VStotav=VStotav+[Saldo do Documento]
                     Else 
                          VStotv =VStotv+[Saldo do Documento]
                  EndIf
                  Moveto "\\Sistemas\\CtaRec\\Duplic"
					EndIf
					Skip
					If EOT()
						 Then QuitLoop
          EndIf
          Locate IndexOrder by "Inddup22" Next CODIGO
				EndWhile
EndIf

;;; Pedidos a entregar
Aguarde(MSG_AGUARDE+Barra(5,2))

PedidoCancelado1=""
PedidoCancelado2=""
wcp=0

Moveto "\\Sistemas\\Vendas\\PedidoI"
Moveto "\\Sistemas\\Vendas\\PedidoC"
Moveto [Codigo]
OrderTable {IndPed01}
Locate IndexOrder by "IndPed01" CODIGO
If RetVal
   Then While [Codigo]=CODIGO
          If [Situacao do Pedido ]="ABERTO" And
             Search("VEND",[Descricao da Destinacao])>0
             Then SOMAP=0
                  Moveto "\\Sistemas\\Vendas\\PedidoI"
                  Moveto [Numero do Pedido]
                  Locate [\Sistemas\Vendas\PedidoC->Numero do Pedido]
                  If RetVal
                     Then While [Numero do Pedido]=[\Sistemas\Vendas\PedidoC->Numero do Pedido]
                            If [Quantidade]>[Quantidade Faturada]
                               Then SOMAP=SOMAP+([\Sistemas\Vendas\PedidoI->Preco Unitario]*
                                                  ([\Sistemas\Vendas\PedidoI->Quantidade]-
                                                   [\Sistemas\Vendas\PedidoI->Quantidade Faturada]))
                            EndIf
                            Skip
                            If EOT()
                               Then QuitLoop
                            EndIf
                          EndWhile
                          If SOMAP>0
                             Then 
                                  VStotped=VStotped+SOMAP
                          EndIf
                  EndIf
                  Moveto "\\Sistemas\\Vendas\\PedidoC"
          EndIf
          
          If [Situacao do Pedido ]="CANCELADO" And
             Search("VEND",[Descricao da Destinacao])>0
             Then
                  wcp=wcp+1
                  if wcp=3 then wcp=1 endif
                  switch
                    case wcp=1: PedidoCancelado1=[Numero do Pedido]
                    case wcp=2: PedidoCancelado2=[Numero do Pedido]
                  endswitch
          Endif
          
					Skip
					If EOT()
						 Then QuitLoop
          EndIf
          Locate IndexOrder by "IndPed01" Next CODIGO
				EndWhile
EndIf

;;; Cheques a Descontar
Aguarde(MSG_AGUARDE+Barra(5,3))
TOTCQAD=0
TOTCQAC=0
TOTSEMF=0

Moveto "\\Sistemas\\CheqRec\\ChequeI"
Moveto [Codigo_Cliente]
OrderTable {IndChI01}
Locate IndexOrder by "IndChI01" CODIGO
If RetVal
   Then While [Codigo_Cliente]=CODIGO
          If [Situacao]<>"LIQUIDADO"   And
             [Situacao]<>"EM COBRANCA" And
             [Situacao]<>"COBRANCAPGTO" And
             Search("TROCADO",[Situacao])=0
             Then If [\Sistemas\CheqRec\ChequeI->Situacao]="SEM FUNDO"
                     Then TOTSEMF=TOTSEMF+[Valor]
                     Else TOTCQAD=TOTCQAD+[Valor]
                  EndIf
                  
                  Moveto "\\Sistemas\\CheqRec\\ChequeI"

          EndIf
          If [Situacao]="LIQUIDADO"
             Then 
                  Switch
                   Case SYS_CODIGO_CLIENTE="0157" Or
                        SYS_CODIGO_CLIENTE="0130":
                    If [Data Vencimento]>=Today()
 			  							 Then TOTCQAC=TOTCQAC+[Valor]
      							EndIf
                   OtherWise:
                     If [Data Vencimento]>=(Today()-7)
   									    Then TOTCQAC=TOTCQAC+[Valor]
                     EndIf
									EndSwitch
          EndIf
          Moveto "\\Sistemas\\CheqRec\\ChequeI"
          Skip
          If EOT()
             Then QuitLoop
          EndIf
          Locate IndexOrder by "IndChI01" Next CODIGO
        EndWhile
EndIf

VStotchq=TOTCQAC+TOTCQAD+TOTSEMF

Aguarde(MSG_AGUARDE+Barra(5,4))
;; Titulos de Credito
TOTTC=0

Moveto "\\Sistemas\\Ctapag\\Titulos"
Moveto [Codigo do Emitente]
OrderTable {Indtit21}
Locate IndexOrder by "Indtit21" CODIGO
If RetVal
   Then While [Codigo do Emitente]=CODIGO 
          If [Saldo do Documento]>0.01 and [Tipo do Pagamento]="TC"
             Then TOTTC=TOTTC+[Saldo do Documento]
					EndIf
					Skip
					If EOT()
						 Then QuitLoop
          EndIf
          Locate IndexOrder by "Indtit21" Next CODIGO
				EndWhile
EndIf

Aguarde(MSG_AGUARDE+Barra(5,5))

Moveto "\\Sistemas\\Cadastro\\Destinat"
Moveto [Codigo]
Locate CODIGO
If not RetVal
   Then End Down
EndIf
               
Moveto "\\Sistemas\\Cadastro\\Fichacli"
Moveto [Codigo]
Locate CODIGO
If not RetVal
   Then End Down
EndIf
               
Moveto "\\Sistemas\\Cadastro\\DestObs"
Moveto [Codigo]
Locate CODIGO
If not RetVal
   Then End Down
EndIf

Moveto "\\Sistemas\\Cadastro\\DestMsg"
Moveto [Codigo]
Locate CODIGO
If not RetVal
   Then End Down
EndIf

VStotchqad   =TOTCQAD+TOTSEMF
TOTCLI       =VStotped+VStotav+VStotv+VStotchq
TOTDISPONIVEL=([\Sistemas\Cadastro\FichaCli->Limite de Credito]+TOTTC)-(VStotped+VStotav+VStotv+VStotchq)

;-- Imprimindo consulta --------------------------------------------------------

MSG_AGUARDE="Aguarde, Imprimindo Consulta"

Print File ARQIMP CI_15CPP+CI_6LPP+Spaces(30)+"EPosicao do ClienteF"+"\n\n"

Print File ARQIMP "* Cliente: "+Format("W47,AL",[\Sistemas\Cadastro\Destinat->Razao Social])+[\Sistemas\Cadastro\Destinat->CGC]+"\n\n"

l1 ="* Compras    Data            Valor"
l2 ="Primeira. "+Format("W10,AL",Format("D13",[\Sistemas\Cadastro\FichaCli->Data da Primeira Compra]))+Spaces(03)+
                 Format("W11.2,EIC",[\Sistemas\Cadastro\FichaCli->Valor da Primeira Compra])
l3 ="Ultima... "+Format("W10,AL",Format("D13",[\Sistemas\Cadastro\FichaCli->Data da Ultima Compra  ]))+Spaces(03)+
                 Format("W11.2,EIC",[\Sistemas\Cadastro\FichaCli->Valor da Ultima Compra  ])
l4 ="Maior.... "+Format("W10,AL",Format("D13",[\Sistemas\Cadastro\FichaCli->Data da Maior Fatura   ]))+Spaces(03)+
                 Format("W11.2,EIC",[\Sistemas\Cadastro\FichaCli->Maior Fatura            ])
l5 =""
l6 ="* Atrasos:     "+"[ Maximo "+LTrim(StrVal(Format("W10,EIC",[\Sistemas\Cadastro\FichaCli->Maximo Dias Atraso])))+" Dias ]"
l7 ="O maior foi "+rtrim(Format("W6,AL",[\Sistemas\Cadastro\FichaCli->Maior Atraso]))+" dias em "+
                         Format("D13",[\Sistemas\Cadastro\FichaCli->Data do Maior Atraso])
l8 ="com "+LTrim(Format("W11.2,EIC",[\Sistemas\Cadastro\FichaCli->Valor do Maior Atraso]))+" , frequencia "+
                 StrVal([\Sistemas\Cadastro\FichaCli->Numero de Atrasos])+" vezes"
l9 =""
l10="* Ultimas Consultas"
l11="  SPC      "+Format("D13",[\Sistemas\Cadastro\FichaCli->Data_Ultima_COnsulta  ])+" - "+[\Sistemas\Cadastro\FichaCli->Situacao_Consulta]
l12="  Sintegra "+Format("D13",[\Sistemas\Cadastro\FichaCli->Data_Consulta_Sintegra])+" - "+[\Sistemas\Cadastro\FichaCli->Sit_Consulta_Sintegra]
l13=""
l14="* Situacao do Cliente: "+Format("W20,AL",[\Sistemas\Cadastro\Destinat->Situacao do Cliente]) 

Print File ARQIMP format("W40,AL",l1 )+"* Resumo dos Movimentos"+"\n"
Print File ARQIMP format("W40,AL",l2 )+"(+)Pedido em Aberto......:"+Format("W13.2,EIC",VStotped)+"\n"
Print File ARQIMP format("W40,AL",l3 )+"(+)Titulos a Vencer......:"+Format("W13.2,EIC",VStotav)+"\n"
Print File ARQIMP format("W40,AL",l4 )+"(+)Titulos Vencidos......:"+Format("W13.2,EIC",VStotv)+"\n"                  
Print File ARQIMP format("W40,AL",l5 )+"(+)Cheques a Descontar...:"+Format("W13.2,EIC",VStotchqad)+"\n"
Print File ARQIMP format("W40,AL",l6 )+"(+)Cheques em Compensacao:"+Format("W13.2,EIC",TOTCQAC)+"\n"
Print File ARQIMP format("W40,AL",l7 )+"                          -------------"+"\n"
Print File ARQIMP format("W40,AL",l8 )+"(=)Total ................:"+Format("W13.2,EIC",TOTCLI)+"\n"
Print File ARQIMP format("W40,AL",l9 )+"(-)Limite de Credito.....:"+Format("W13.2,EIC",[\Sistemas\Cadastro\FichaCli->Limite de Credito])+"\n"
Print File ARQIMP format("W40,AL",l10)+"(-)T¡tulo de Credito.....:"+Format("W13.2,EIC",TOTTC)+"\n"
Print File ARQIMP format("W40,AL",l11)+"                          -------------"+"\n"
Print File ARQIMP format("W40,AL",l12)+"(=)Disponibilidade.......:"+Format("W13.2,EIC",TOTDISPONIVEL)+"\n"
Print File ARQIMP format("W40,AL",l13)+"\n"
Print File ARQIMP format("W40,AL",l14)+"\n\n"


obs="* Observacoes: "+[\Sistemas\Cadastro\DestObs->Observacoes]
ImprimeObsGeraql(ARQIMP, obs, 132)

obs="* Observacoes de Venda:"+[\Sistemas\Cadastro\DestMsg->Observacoes]
ImprimeObsGeraql(ARQIMP, obs, 132)

ImprimePedidoCancelado(PedidoCancelado1)
ImprimePedidoCancelado(PedidoCancelado2)

Print File ARQIMP spaces(1)+Fill("-",132)+"\f"

Do_It!
ClearAll

LimpAguarde()
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
proc ImprimePedidoCancelado(NPedido)
private Npedido, regpedidoc, tmobs, nlobs, wi, OBS, posi

if NPedido=""
   then return
endif   

getrecord "\\sistemas\\vendas\\pedidoc"  NPedido to regpedidoc
if not retval
   then return
endif   

OBS = "* Pedido CANCELADO: "+NPEDIDO+" - "+Format("D13",regpedidoc["Data de Emissao"])+", "+regpedidoc["Observacao do Pedido"]

ImprimeObsGeraql(ARQIMP, OBS, 132)

endproc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
proc ImprimeObsGeraql(Arquivo, obs, tmobs)
private Arquivo, obs, tmobs, nlobs, wi, posi

nlobs   =len(OBS)/tmobs
if nlobs>int(nlobs)
   then nlobs=int(nlobs)+1
endif    
posi=1                     
For wi From 1 To nlobs  
  Print File Arquivo SubStr(obs,posi,tmobs)+"\n" 
  posi=posi+tmobs 
EndFor
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 "  ------------------------------------------------------------------------------------------------------------------------------------" +"\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 "  ------------------------------------------------------------------------------------------------------------------------------------" +"\n\n"

Print File ARQIMP Spaces(02)+"Cliente: "
Print File ARQIMP Format("W05,AL",[Codigo])
Print File ARQIMP Format("W92,AL",[Razao Social])
Print File ARQIMP "N§ do Pedido : "+Format("W6,AL",[Numero do Pedido])+"\n"

Cont=6

moveto TabelaPDItens
endproc

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPPED()
private s, PEDIDOREFITEM, PEDIDOCORQTDE, PEDIDOTOTAL, s1, s2, s3, k, kv, obs


pag=0
Cabecalho()

moveto "PedidoC"
Print File ARQIMP Spaces(16)+Format("W40,AL",[Endereco])
Print File ARQIMP Format("W18,AL",[CGC])+Spaces(07)+"Emissao: "
Print File ARQIMP Format("D13",[Data de Emissao])+"       Pedido Origem : "+Format("W11,AL",[Numero Pedido Origem])+"\n"

Print File ARQIMP Spaces(16)+Format("W20,AL",[Bairro])
Print File ARQIMP Format("W20,AL",[CEP])
Print File ARQIMP Format("W25,AL",[IE])
Print File ARQIMP "Entrega: "+Format("D13",[Data de Entrega])+"\n"

Print File ARQIMP Spaces(16)+Format("W20,AL",[Cidade])
Print File ARQIMP Format("W20,AL",[UF])
Print File ARQIMP Format("W25,AL",[Telefone])
Print File ARQIMP "Empresa: "+Format("W05,AL",[Codigo da Empresa])+Format("W20,AL",[Nome Fantasia Empresa])+"\n\n"

Print File ARQIMP Spaces(02)+"Representante: "+Format("W05,AL",[Codigo do Representante])
Print File ARQIMP Format("W25,AL",[Nome Fantasia Represent])
Print File ARQIMP "Destinacao: "+Format("W04,AL",[Codigo da Destinacao])
Print File ARQIMP Format("W25,AL",[Descricao da Destinacao])
Print File ARQIMP "CFO: "+Format("W09,AL",[CFO])
Print File ARQIMP "TabPreco: "+Format("W06,AL",[Codigo da Tabela])+"\n"

Print File ARQIMP Spaces(02)+"Transportador: "+Format("W05,AL",[Codigo da Transportadora])
Print File ARQIMP Format("W28,AL",[Nome Fantasia Transport])
Print File ARQIMP "Veiculo: "+Format("W08,AL",[Placa do Veiculo])+"-"+Format("W08,AL",[UF Veiculo])
Print File ARQIMP "Frete por Conta: "+Format("W15,AL",[Frete por Conta])+"\n\n"

Cont=Cont+8

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

;Referencia|Item                           |Un|Cor    Qtde |Cor    Qtde |Cor    Qtde |Cor    Qtde |  PrUnit| PrTabela|   PrTotal
;----------|-------------------------------|--|------------|------------|------------|------------|--------|---------|----------
;1234567890|1234567890 12345678901234567890|XX|0000 9.999,9|0000 9.999,9|0000 9.999,9|0000 9.999,9|        |         |                     
;----------|-------------------------------|--|------------|------------|------------|------------|--------|---------|----------
;          |                               |  |0000 9.999,9|0000 9.999,9|0000 9.999,9|0000 9.999,9|9.999,99|99.999,99|                    
;-------------------------------------------------------------------------------------------------------------------------------


Print File ARQIMP spaces(2)+Fill("-",127)+"\n" 
Print File ARQIMP "  Referencia|Item                           |Un|Cor    Qtde |Cor    Qtde |Cor    Qtde |Cor    Qtde |  PrUnit| PrTabela|   PrTotal"+"\n"

Moveto TabelaPDItens
Home

PEDIDOREFITEM="***"     
PEDIDOCORQTDE=0
PEDIDOTOTAL  =0
            s=""
           s2=""     
TIT_PROMOCAO = ""                   
For wt From 1 To 2                                                       
  Scan
     IMPRIME_ITEM=True
     GetRecord "\\Sistemas\\Vendas\\TbPrIte" [Codigo da Tabela],PegaCodigoRaiz([Codigo do Item]) To REG_TBPRECO
     If RetVal
        Then If REG_TBPRECO["Em Promocao"]="S"  And wt = 1
                Then If TIT_PROMOCAO<>"1" Then TIT_PROMOCAO = "Itens de Promo‡Æo" EndIf
                     IMPRIME_ITEM = False 
             EndIf
             If REG_TBPRECO["Em Promocao"]<>"S" And wt = 2
                Then IMPRIME_ITEM=False
             EndIf
        Else IMPRIME_ITEM=False
             Mensagem("Item "+PegaCodigoRaiz([Codigo do Item])+" n„o foi localizado na tabela de pre‡o!")
     EndIf
     
     If IMPRIME_ITEM
        Then if [Referencia]<>PEDIDOREFITEM
                then
                     PEDIDOREFITEM=[Referencia]
                     PEDIDOTOTAL  =0
                
                     if s<>""
                        then IMPPEDItem(s,s2)
                     endif   
                
                     s =Format("W10,AL",[Referencia       ])+"|"+
                        Format("W31,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=Format("W08.2,EIC",[Preco Unitario])+"|"
             if [Preco Unitario]<>[Preco Unitario Tabela]
                then s2=s2+Format("W09.2,EIC",[Preco Unitario Tabela])
                else s2=s2+Format("W09,AC","=")
             endif
             s2=s2+"|"+Format("W10.2,EIC",PEDIDOTOTAL)
     EndIf
  EndScan
  If wt= 1 Then Home EndIf
EndFor
IMPPEDItem(s,s2)

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

;********************* IMPRESSAO DOS TOTAIS **************************
Moveto "PedidoC"
Print File ARQIMP "\n"
Print File ARQIMP "  Mecadorias         Desconto     Liquido    Frete    Seguro   Desp.Aces       Total"+"\n"
;;9.999.999,99888.88%777.777,776.666.666,6644.444,44111.111,112.222.222,223.333/333,334.444.444,445.555.555,551.111.111,11

Print File ARQIMP  Format("W12.2,EIC",[Valor Mercadoria])
Print File ARQIMP Format("W06.2,EIC",[Taxa de Desconto])+"%"
Print File ARQIMP Format("W10.2,EIC",[Valor do Desconto])
Print File ARQIMP Format("W12.2,EIC",[Valor Mercadoria Liquido])
Print File ARQIMP Format("W09.2,EIC",[Valor do Frete])
Print File ARQIMP Format("W10.2,EIC",[Valor do Seguro])
Print File ARQIMP Format("W012.2,EIC",[Valor Despesas Acessorias])
Print File ARQIMP Format("W012.2,EIC",[Valor Nota Fiscal])+"\n\n"

Print File ARQIMP Spaces(02)+"Cond. Pagamento.: "+[Descricao CondPagto]
Print File ARQIMP "   NP: "+StrVal([Numero de Parcelas])
Print File ARQIMP "   CD: "+[Composicao de Dias]
Print File ARQIMP "   N.Volumes.: "+LTrim(Format("W06,EIC",[PedidoC->Numero de Volumes]))
Print File ARQIMP "   Peso Liquido: "+LTrim(Format("W11.3,EIC",[PedidoC->Peso Liquido]))
Print File ARQIMP "   Peso Bruto: "+LTrim(Format("W11.3,EIC",[PedidoC->Peso Bruto]))+"\n"

;********************* IMPRESSAO DOS VENCIMENTOS **************************

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 "PedidoV"
Moveto [Numero do Pedido]
Locate [PedidoC->Numero do Pedido]
While [Numero do Pedido]=[PedidoC->Numero do Pedido]
  K=K+1
  
   DATA[K]=[Data ]
  VALOR[K]=[Valor]
   FPGT[K]=[Forma de Pagamento]
  
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile
               
s1=Spaces(02)+"Vencimentos.....: "
s2=spaces(20)
s3=spaces(20)
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\n"

         kv=0
         s1=spaces(20)
         s2=spaces(20)
         s3=spaces(20)
 endif

 kv=kv+1
 s1=s1+spaces(08)+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\n"

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

;************************* IMPRESSAO DO RODAPE ********************************
Moveto "PedidoC"

obs=spaces(02)+"Obs. do Pedido..: "+[Observacao do Pedido]
ImprimeObsGeraql(ARQIMP, obs, 132)

obs=Spaces(02)+"Obs. Nota Fiscal: "+[Observacao na Nota Fiscal]
ImprimeObsGeraql(ARQIMP, obs, 132)

Print File ARQIMP Spaces(02)+"Local p/ Entrega: "+Format("W20,AL",[Endereco de Entrega])+"\n"
Print File ARQIMP Spaces(20)+Format("W15,AL",[Bairro de Entrega])+Format("W11,AL",[CEP de Entrega])
Print File ARQIMP Spaces(40)+"_______________________________________________"+"\n"
Print File ARQIMP Spaces(20)+Format("W15,AL",[Cidade de Entrega])+Format("W03,AL",[UF de Entrega])
Print File ARQIMP Spaces(60)+"Data/Assinatura Responsavel"+"\n\n"
Print File ARQIMP spaces(2)+Fill("-",132)+"\n"

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"

If wt = 2 And TIT_PROMOCAO<>"" And Rtrim(SubStr(ss1,1,3))<>"" And TIT_PROMOCAO<>"1"
   Then Print File ARQIMP "\n" 
        Print File ARQIMP spaces(2)+TIT_PROMOCAO+"\n\n"
        Print File ARQIMP spaces(2)+
        "----------|-------------------------------|--|------------|------------|------------|------------|--------|---------|----------"+"\n"
        TIT_PROMOCAO="1"
        Cont=Cont+3
EndIf

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

Cont=Cont+2
If Cont>=85           
   Then Print File ARQIMP spaces(2)+Fill("-",127)+"\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
                             
          moveto TabelaPDItens
          moveto [Referencia]
          Locate refeitem
          if retval
             then 
                  PEDIDOSEQ=[Sequencia]
                  while true
                    if [Referencia] = refeitem And 
                       [Codigo da Cor_Tecido]=[PedidoI->Codigo da Cor_Tecido]
                       then itempedidonovo=false
                            quitloop
                    endif
                    skip
                    if eot() then quitloop endif
                  endwhile
             else itempedidonovo=true
          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
                  [Item do Pedido       ]=[PedidoI->Item do Pedido]
                  [Codigo da Tabela     ]=[PedidoI->Codigo da Tabela]
                  
                  [Codigo da Cor_Tecido ]=[PedidoI->Codigo da Cor_Tecido ] 
                  [Preco Unitario       ]=[PedidoI->Preco Unitario       ] 
                  [Preco Unitario Tabela]=[PedidoI->Preco Unitario Tabela] 
          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


        CODIGO_CLIENTE=[PedidoC->Codigo]
   
        OrganizaItensReferencia()
                
        Seta_FilePrint("PD_0345B")
        IMPPED()
        Do_It!
        ClearAll
        
        ImprimeFicha(CODIGO_CLIENTE)
        
        ImpriArq(ARQIMP)
                
endif

Delete TabelaPDItens

Release Vars VALOR,DATA,FPGT, TabelaPDItens, pag, CODIGO_CLIENTE
Release Procs IMPPED, IMPPEDItem, OrganizaItensReferencia, Cabecalho, ImprimeFicha, ImprimePedidoCancelado, ImprimeObsGeraql
