;** Ent_102T *******************************************************************
;** Imprime o comprovante de Entrega - PATIO             ** Concretos Vico **  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 10/04/2013 por Bruno Carvalho
;Ultima Alteracao: 03/06/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ a palavra DEVOLUCAO ser exibida quando for Nota de DEV.
;Ultima Alteracao: 26/06/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes rotina de impressÆo
;Ultima Alteracao: 19/08/2013 por Bruno Carvalho
;Motivo Alteracao: Excluido rotina que excluia variaveis CI_10CPP, onde utilizara impressora diferenciada
;Ultima Alteracao: 16/09/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes para tres casas decimais na impressao do campo quantidade
;Ultima Alteracao: 20/11/2013 por Andrey Fillipe
;Motivo Alteracao: Ajustes de impressao entrega no Patio, para as 2 impressoras
;Ultima Alteracao: 04/04/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes observa‡äes
;Ultima Alteracao: 02/05/2017 por Rafael Matos
;Motivo Alteracao: Ajustes para ordenar pela localiza‡Æo

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
; *** Acessado diretamente do Balcao
;
Proc IMPENT() 

;************************* IMPRESSAO DO CABECALHO ******************************
Moveto "FaturaC"                   

Switch
  Case Search("DEVOL",[Descricao da Destinacao])>0 : If TITULO<>""
                                                        Then COMPLEMENTO=" - DEVOLUCAO"
                                                        Else COMPLEMENTO="DEVOLUCAO" 
                                                     EndIf
  Case [Codigo da Destinacao]="016"                : COMPLEMENTO=" S.R."
  Case [Codigo da Destinacao]="017"                : COMPLEMENTO=" E.F."
  OtherWise                                        : COMPLEMENTO=""
EndSwitch   
                 
Print File ARQIMP CI_10CPP
Print File ARQIMP Fill("=",45)+"\n"
Print File ARQIMP Format("W30,AL",TITULO+COMPLEMENTO)+"\n"

Print File ARQIMP Format("W16,AR","NUMERO..: "+NOTAFISC)+"\n"
Print File ARQIMP Format("W30,AL","EMISSAO.: "+Format("D13",Today())+"-"+Time())+"\n"                                  
Print File ARQIMP Format("W30,AL","VENDEDOR: "+Format("W21,AL",[Nome Fantasia Represent]))+"\n"
Print File ARQIMP Fill("-",45)+"\n"

Print File ARQIMP "CLIENTE.: "+Format("W05,AL",[Codigo])+Format("W29,AL",[Razao Social])+"\n"
Print File ARQIMP "ENDERECO: "+Format("W34",[Endereco])+"\n"
Print File ARQIMP "BAIRRO..: "+Format("W14",[Bairro])+"\n"
GetRecord "\\Sistemas\\Cadastro\\Destinat" [Codigo] To DynArray CEL
If RetVal  
   Then CEL = CEL["Celular"]
   Else CEL = ""               
EndIf
Print File ARQIMP "FONE....: "+RTrim(Format("W20,AL",[Telefone]))+"  "+"CEL: "+RTrim(Format("W20,AL",CEL))+"\n"
Print File ARQIMP "CIDADE..: "+Format("W23",Rtrim([Cidade])+"/"+[UF])+"\n\n"

CLIENTE=[Razao Social       ]

;-- Rotina p/ ImpressÆo da Observa‡Æo ------------------------------------------
DES_OBS = "OBS.....: "+[Observacao na Nota Fiscal]                                           
tmobs=45
nlobs   =len(DES_OBS)/tmobs
if nlobs>int(nlobs)
   then nlobs=int(nlobs)+1
endif    
aux=1                     
For wi From 1 To nlobs  
  Print File ARQIMP SubStr(DES_OBS,AUX,tmobs)+"\n" 
  aux=aux+tmobs 
EndFor

;************************** IMPRESSAO DOS ITENS ********************************
Print File ARQIMP Fill("=",45)+"\n"

;LOC.        CODIGO    UN       QUANTIDADE
;DESCRICAO                      MARCA
;---------- ------------------- --------------
;AAAAAAAAAA 9999999999 AA       999.999,99 
;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAA

Print File ARQIMP "DESCRICAO                               MARCA"+"\n"  
Print File ARQIMP "LOCAL          CODIGO     UN       QUANTIDADE"+"\n"
Print File ARQIMP "-------------- ---------- -------- ----------"+"\n"

Do_It!                        

TabItens = Cria_Tabela("","Numero da OF(A6*),Localizacao(A20*),Item da OF(S*),Codigo do Item(A10),Unidade Fiscal(A4),Quantidade(N),Codigo do Departamento(A20),"+
"Descricao da Marca(A20),Descricao do Item(A30)")

View TabItens
Moveto "FaturaC"
CoeditKey

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]


While [Numero da OF]=[FaturaC->Numero da OF]
      GetRecord "\\Sistemas\\Estoque\\Itens" [FaturaI->Codigo do Item] To REG_ITEM
            If RetVal
               Then If (REG_ITEM["Codigo do Departamento"]="01" And [FaturaI->Entrega]="N") Or
                       (REG_ITEM["Codigo do Departamento"]="02" And [FaturaI->Entrega]="S") Or
                       (REG_ITEM["Codigo do Departamento"]="02" And [FaturaI->Entrega]="N") 
                       Then
                           Moveto TabItens
                           End Down
                           [Numero da OF          ]=[FaturaI->Numero da OF]
                           [Item da OF            ]=[FaturaI->Item da OF  ]
                           [Localizacao           ]=REG_ITEM["Localizacao"]
                           [Codigo do Departamento]=REG_ITEM["Codigo do Departamento"]
                           [Descricao da Marca    ]=REG_ITEM["Descricao da Marca"]
                           [Descricao do Item     ]=[FaturaI->Descricao do Item]     
                           [Codigo do Item        ]=[FaturaI->Codigo do Item   ]
                           [Unidade Fiscal        ]=[FaturaI->Unidade Fiscal   ]
                           [Quantidade            ]=[FaturaI->Quantidade       ]
                           Moveto "FaturaI"
                    EndIf        
            EndIF                     
      Skip
      If EOT() Then QuitLoop EndIf
EndWhile  
 
Moveto TabItens
Scan

Print File ARQIMP Format("W30,AL",[Descricao do Item])+Spaces(1)
Print File ARQIMP Format("W14,AR",[Descricao da Marca])+"\n"
Print File ARQIMP Format("W14,AL",[Localizacao])+Spaces(1)
Print File ARQIMP Format("W10,AL",numval([Codigo do Item]))+Spaces(1)    
Print File ARQIMP Format("W3,AL",[Unidade Fiscal])+Spaces(2)
Print File ARQIMP Format("W14.2,AR",[Quantidade])+Spaces(1)+"\n"

EndScan

Do_It!
Moveto TabItens
ClearImage
Delete TabItens  

Moveto "FaturaC"
CoeditKey

Print File ARQIMP Fill("=",45)+"\n"
Print File ARQIMP " RECEBI AS MERCADORIAS ACIMA ____/____/_____"+"\n\n\n"
Print File ARQIMP Format("W45,AC",Fill("_",40))+"\n"
Print File ARQIMP Format("W45,AC",CLIENTE)+"\n"
Print File ARQIMP Fill("=",45)+"\n"
Print File ARQIMP Format("W45,AC","NAO VALE COMO N.F PROCURE O CUPOM NO CAIXA")+"\n"
Print File ARQIMP Format("W45,AC","AGRADECEMOS A PREFERENCIA")+"\n"
Print File ARQIMP Fill("=",45)+"\n"

Print File ARQIMP "\n\n\n\n\n\n" ;Espa‡amento p/ guilhotina do romaneio

EndProc ; (IMPENT)

;*******************************************************************************
;* Rotina p/ Checar as Entregas                                                *
;*******************************************************************************
Proc Entrega()

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While ([Numero da OF]=[FaturaC->Numero da OF])
  If [Entrega]="S"
     Then Moveto [Codigo do Item]
          If Busca_Lookup("Codigo do Item",[Codigo do Item],"")
             Then If Reg_Busca_Lookup["Codigo do Departamento"]="02" ; Patio
                     Then IMPRIME    = 1
                          ENT_PATIOS = True
                          UnLockRecord
                          QuitLoop
                  EndIf
          EndIf
          UnLockRecord
  EndIf
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While ([Numero da OF]=[FaturaC->Numero da OF])
  If [Entrega]="N"
     Then Moveto [Codigo do Item]
          If Busca_Lookup("Codigo do Item",[Codigo do Item],"")
             Then If Reg_Busca_Lookup["Codigo do Departamento"]="01" ; Loja
                     Then IMPRIME    = 2
                          ENT_BALCAO = True
                          UnLockRecord
                          QuitLoop
                  EndIf
          EndIf
          UnLockRecord
  EndIf
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While ([Numero da OF]=[FaturaC->Numero da OF])
  If [Entrega]="N"
     Then Moveto [Codigo do Item]
          If Busca_Lookup("Codigo do Item",[Codigo do Item],"")
             Then If Reg_Busca_Lookup["Codigo do Departamento"]="02" ; Loja
                     Then IMPRIME    = 3
                          ENT_PATION = True
                          UnLockRecord
                          QuitLoop
                  EndIf
          EndIf
          UnLockRecord
  EndIf
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

EndProc ; (Entrega)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
ENT_PATIOS = False
ENT_BALCAO = False
ENT_PATION = False                           
IMPRIME     = 0

Entrega()                        
TITULO="ENTREGA NO PATIO"

For ENT_PATIOCC From 1 To 1
    If Not ENT_PATIOS And Not ENT_BALCAO And Not ENT_PATION
       Then Quitloop
    EndIf

    If IMPRIME = 1 Or IMPRIME = 2 Or IMPRIME = 3
       Then MSGDISPOSITIVO="Auxilio Entrega Patio"
            DispositivoI("CEP")
            If OK<>""
               Then AGUARDE("Imprimindo Ordem de Entregue BALCAO -> "+NOTAFISC)
                    ArqImp=PrivDir()+"ENT_102T.Txt"                    
                    If IsFile(ArqImp)
                       Then Deleta_Arquivo(ARQIMP)
                    EndIf
                    
                    IMPENT()
                       
                    ;---- Imprime Arquivo Impressao --------------------------------
                    ImpriArq(ARQIMP)
            EndIF
            IMPRIME = 0
    EndIf
EndFor

Release Vars CLIENTE,LOCAL,
             ENT_PATIO, ENT_LOJA, ENT_PATIOCC, ENT_CDDEPART,
             END_ENT, BAI_ENT, CID_ENT, CEP_ENT
Release Procs IMPENT,ENTREGA
LIMPAGUARDE()
