;** PD_0404A  *******************************************************************
;** Imprime a Digitacao do Pedido                   ** Almeida Tecidos **      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 20/01/2015 por Luis Gustavo                  
;Ultima Alteracao: 17/07/2015 por Bruno Carvalho
;Motivo Alteracao: Ajustes para Imprimir com 80 Colunas
;Ultima Alteracao: 18/09/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes elimiar dados do cliente no cabecalho
;Ultima Alteracao: 11/01/2019 por Bruno Carvalho
;Motivo Alteracao: Ajsutes na impressÆo   
;Ultima Alteracao: 21/01/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes para imprimir pela ordem do c¢digo do item e alterado de 80 col p/ 132 col 
;Ultima Alteracao: 23/01/2019 por Bruno Carvalho
;Motivo Alteracao: ImpressÆo em folha interira "A4" 
;Ultima Alteracao: 29/01/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ imprimir meia folha *IMPRIME_MEIA_FOLHA add parƒmetro de configura‡Æo interno (Sol.: 41183)

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc Cabecalho();

If IMPRIME_MEIA_FOLHA
   Then PARAM_NITENS = 22 
   Else PARAM_NITENS = 53
EndIf   

If Not IsAssigned(NOMEMPRESA)
   Then NOMEMPRESA=""
EndIf

Moveto "PedidoC"
If IMPRIME_MEIA_FOLHA
   Then Print File ARQIMP chr(27)+chr(67)+chr(33) ;Imprime 33 Linhas por pagina
   Else Print File ARQIMP chr(27)+chr(67)+chr(66)
EndIf   

Print File ARQIMP CI_10CPP
Print File ARQIMP CI_6LPP    
              
DATA=StrVal([Data de Emissao])
If Len(DATA)=9 Then DATA="0"+DATA EndIf
DATA = SubStr(DATA,1,2) +"/"+ SubStr(DATA,4,2) +"/"+ SubStr(DATA,7,4)

Print File ARQIMP Spaces(1)+Fill("-",78)+"\n"

Print File ARQIMP Spaces(38)+"Emissao: "+DATA+Spaces(1)+"Nr. Orcamento: "+Format("W7,AL",[Numero do Pedido])+"\n\n"

;Print File ARQIMP Spaces(1)+Fill("-",78)+"\n"
;Print File ARQIMP "Cliente....: "+Format("W15,AL",[Razao Social])+"\n" 
;Print File ARQIMP "Endereco...: " + Format("W35,AL",[Endereco]) +"Bairro: " + Format("W10,AL",[Bairro])+"\n"
;Print File ARQIMP "Municipio..: "+Format("W15,AL",[Cidade]) + Spaces(20)+"Estado: " + Format("W02,AL",[UF])+"\n"
;Print File ARQIMP "CGC/CPF n..: " +Format("W18,AL",[CGC]) + Spaces(10)+"Insc.Estadual: "+ Format("W15,AL",[IE])+"\n"  
;Print File ARQIMP "Funcionario: " +Format("W15,AL",[Nome Fantasia Represent])+ Spaces(17)+"Condicoes: " +Format("W10,AL",[Descricao CondPagto])+"\n"

Print File ARQIMP Spaces(1)+"------------------------------------------------------------------------------"+"\n"
Print File ARQIMP Spaces(1)+" Qtd.      UN     Codigo Descricao              C o r e s                     "+"\n"
Print File ARQIMP Spaces(1)+"------------------------------------------------------------------------------"+"\027F"+"\n"

EndProc ;(Cabecalho)                           

;************************** IMPRESSAO DOS ITENS ********************************
Proc Itens()

NPED=[Numero do Pedido]
Formkey

Tab_Temp=Cria_Temp(PrivDir())
{Create} TypeIn Tab_Temp Enter
If MenuChoice()="Cancel" Then {OK} EndIf
Moveto [Field Name] TypeIn "Codigo do Item" Enter TypeIn "A10" Down
Moveto [Field Name] TypeIn "Sequencia"      Enter TypeIn "S"
Do_it!
    
Coedit Tab_Temp,"PedidoI"
Moveto [Numero do Pedido]
Locate NPED
If RetVal
   Then While [Numero do Pedido] = NPED
          Moveto Tab_Temp
          If [Codigo do Item]<>""
             Then End Down
          EndIf     
          [Codigo do Item] = [Pedidoi->Codigo do Item] 
          [Sequencia     ] = [Pedidoi->Item do Pedido]
          UnLockRecord
          Moveto "PedidoI"
          Skip
          If Eot() Then QuitLoop EndIf
        EndWhile
EndIf
Do_it!
Moveto "PedidoI" ClearImage
Moveto Tab_Temp  ClearImage
Sort Tab_Temp On "Codigo do Item" ClearImage

QUANT    = 0
TOT      = 0
CONTADOR = 0

View Tab_Temp
Scan
  Checa_Linha(1)
  
  COD_ITEM = [Codigo do Item]
  SEQ_ITEM = [Sequencia     ]
   
  GetRecord "\\Sistemas\\Vendas\\PedidoI" NPED,SEQ_ITEM To REG_ITEM
  If Not RetVal
     Then Loop
  EndIf   

  If COD_ITEM <> REG_ITEM["Codigo do Item"]
     Then Loop 
  EndIf     
  
  While SubStr(COD_ITEM,1,1)="0"
    COD_ITEM=SubStr(COD_ITEM,2,Len(COD_ITEM))
  EndWhile

  LINHA_ITEM = Spaces(1)+Format("W10.3,AL",REG_ITEM["Quantidade"])
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W02",REG_ITEM["Unidade Fiscal"])
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W10,AR",COD_ITEM)
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W30,AL",REG_ITEM["Descricao do Item"]) 
  LINHA_ITEM = LINHA_ITEM + Spaces(01) + Format("W22,AL",REG_ITEM["Descricao da Cor_Tecido"])
  
  Print File ARQIMP LINHA_ITEM + "\n"
EndScan

If IMPRIME_MEIA_FOLHA
   Then For wi From CONTADOR To PARAM_NITENS
          Print File ARQIMP "\n"
        EndFor
EndIf

Moveto "PedidoC"
Moveto [Numero do Pedido]
Locate NPED
FormKey
Moveto "PedidoI"

EndProc ;(Itens)

;*** Imprime Rodape ************************************************************
Proc Rodape()
If IMPRIME_MEIA_FOLHA
   Then Print File ARQIMP "\027E"
        Print File ARQIMP Spaces(1)+Fill("-",78)+"\n"
        Print File ARQIMP "\027F"
EndIf
Print File ARQIMP "\f"

EndProc ;Rodape()     

;*******************************************************************************
;* Checa linha na area de impressao dos itens                                  *
;*******************************************************************************
Proc Checa_Linha(Nl)
private nl

If (CONTADOR+nl)>(PARAM_NITENS)
   Then Rodape()
        Cabecalho()
        CONTADOR=nl
        Moveto Tab_Temp
   Else CONTADOR=CONTADOR+nl
EndIf
EndProc                               

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
ARQIMP=PrivDir()+"PD_0404A.Txt"
If IsFile(ARQIMP)
   Then Deleta_Arquivo(ARQIMP)
EndIf

IMPRIME_MEIA_FOLHA=True

Moveto "PedidoC"

AGUARDE("Imprimindo Pedido -> "+[Numero do Pedido])
Cabecalho()
Itens()
Rodape()

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

Release Vars VALOR,DATA
Release Procs IMPFAT,VENC,Cabecalho,Itens,Rodape,Checa_Linha
LIMPAGUARDE()
