;** OE_P0100 *******************************************************************
;** Imprime a Posi‡Ćo Expedi‡Ćo - Quantidade de Itens Pendentes           ***  *
;** Modo Simples                                                          ***  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 26/11/2016 por Bruno Carvalho
;Ultima Alteracao: 06/06/2019 por Bruno Carvalho
;Motivo Alteracao: Alterado todo o processo onde antes utilizava a tabela "ExpedOfC", que a partir de entĆo passou a ser "ExpedC"

;*******************************************************************************
;* Rotina para Impressao do Relatorio                                          *
;*******************************************************************************
Proc IMPPED()
Private NOMEMPRESA, NUMOF,DOCTO_EMP,DOCTO_COD,DOCTO_TIP,DOCTO_SER,DOCTO_NUM,RAZSOCIAL, SITUACAOOE, DATALIBERA

NOMEMPRESA=[\Sistemas\Vendas\ExpedC->Nome Fantasia Empresa]
NUMOF     =[\Sistemas\Vendas\ExpedC->Numero da OF         ]
DOCTO_EMP =[\Sistemas\Vendas\ExpedC->Codigo da Empresa    ]
DOCTO_COD =[\Sistemas\Vendas\ExpedC->Codigo do Documento  ]
DOCTO_TIP =[\Sistemas\Vendas\ExpedC->Numero do Documento  ]
DOCTO_SER =[\Sistemas\Vendas\ExpedC->Serie do Documento   ]
DOCTO_NUM =[\Sistemas\Vendas\ExpedC->Numero do Documento  ]
RAZSOCIAL =[\Sistemas\Vendas\ExpedC->Razao Social         ]
SITUACAOOE=[\Sistemas\Vendas\ExpedC->Situacao da OE       ]
DATALIBERA=[\Sistemas\Vendas\ExpedC->Data_Liberacao       ]
CODIGO    =[\Sistemas\Vendas\ExpedC->Codigo               ]
OBSERVACOES=[\Sistemas\Vendas\ExpedC->Observacao          ]

CODREP  =""
NOMREP  =""
NOMTRA  =""
CONDPAG =""
CGC     =""
ENDERECO=""
BAIRRO  =""
CIDADE  =""
UF      =""
CEP     ="" 

Moveto "ExpedC"
If [Numero da OF]<>""
   Then Moveto [Numero da OF]
        If Busca_Lookup("Numero da OF",[Numero da OF],"SM")
          Then If [Numero da OF]=REG_BUSCA_LOOKUP["Numero da OF"]
                  Then  CODREP  =REG_BUSCA_LOOKUP["Codigo do Representante"]
                        NOMREP  =REG_BUSCA_LOOKUP["Nome Fantasia Represent"]
                        NOMTRA  =REG_BUSCA_LOOKUP["Nome Fantasia Transport"]
                        CONDPAG =REG_BUSCA_LOOKUP["Descricao CondPagto"]
                        CODIGO  =REG_BUSCA_LOOKUP["Codigo"]
                        CGC     =REG_BUSCA_LOOKUP["CGC"]
                        ENDERECO=REG_BUSCA_LOOKUP["Endereco"]
                        BAIRRO  =REG_BUSCA_LOOKUP["Bairro"]
                        CIDADE  =REG_BUSCA_LOOKUP["Cidade"]
                        UF      =REG_BUSCA_LOOKUP["UF"]
                        CEP     =REG_BUSCA_LOOKUP["Cep"]
               EndIf
        EndIf
  Else If [Codigo do Documento]<>"" 
          Then GetRecord "\\Sistemas\\Vendas\\NotaC" [Codigo da Empresa],[Numero do Documento],[Serie do Documento] To REG_BUSCA_LOOKUP
               If RetVal
                  Then  CODREP  =REG_BUSCA_LOOKUP["Codigo do Representante"]
                        NOMREP  =REG_BUSCA_LOOKUP["Nome Fantasia Represent"]
                        NOMTRA  =REG_BUSCA_LOOKUP["Nome Fantasia Transport"]
                        CONDPAG =REG_BUSCA_LOOKUP["Descricao CondPagto"]
                        CODIGO  =REG_BUSCA_LOOKUP["Codigo"]
                        CGC     =REG_BUSCA_LOOKUP["CGC"]
                        ENDERECO=REG_BUSCA_LOOKUP["Endereco"]
                        BAIRRO  =REG_BUSCA_LOOKUP["Bairro"]
                        CIDADE  =REG_BUSCA_LOOKUP["Cidade"]
                        UF      =REG_BUSCA_LOOKUP["UF"]
                        CEP     =REG_BUSCA_LOOKUP["Cep"]
               EndIf   
       EndIf  
EndIf


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

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

Cabecalho()


SEQ=0

CONTPED    =0
CONTEXP    =0
SOMACALCDIF=0
CACLDIF    =0
AUX        =[Numero da OE]

Moveto "\\Sistemas\\Vendas\\ExpedOfI"
 Scan
   While AUX=[Numero da OE]
      
    CONTPED=CONTPED+[Quantidade_OF]
    CONTEXP=CONTEXP+[Quantidade_Expedida]
    
    SEQ=SEQ+1
    NLINHA=NLINHA+1
    
    CALCDIF=([Quantidade_Expedida]-[Quantidade_OF])
  
    SOMACALCDIF=SOMACALCDIF+CALCDIF
    
    If [Quantidade_OF]-[Quantidade_Expedida]>0
       Then If Not ACHOU_ITEM Then ACHOU_ITEM=True EndIf
            Print File ARQIMP ASP1+Spaces(02)+Format("W04,AR",SEQ)   
            Print File ARQIMP Spaces(01)+Format("W08,AC",[Referencia])   
            Print File ARQIMP Spaces(01)+Format("W11,AL",[Codigo do Item])
            Print File ARQIMP Format("W40,AL",[Descricao do Item])
            Print File ARQIMP Format("W03,AL",[Unidade Fiscal])         
            Print File ARQIMP Format("W11.3,EIC",CALCDIF*-1)+ASP2+"\n"
           
            Skip
            If EOT() Then QuitLoop Endif  
            If NLINHA=65
               Then Print File ARQIMP ASP1+"\f"+ ASP2 + "\n"
                    Cabecalho()
            EndIf

    Else Skip
         If EOT() Then QuitLoop Endif  
          NLINHA=NLINHA-1
          If NLINHA=65
             Then Print File ARQIMP ASP1+"\f"+ ASP2 + "\n"
                  Cabecalho()
          EndIf
    EndIF   
  EndWhile
   Total()
 EndScan
Do_it!

EndProc

;*******************************************************************************
;* Rotina para Impressao do Cabe‡alho                                          *
;*******************************************************************************
Proc Cabecalho()

DOCUMENTO=Spaces(42)
If Not IsBlank(DOCTO_NUM) 
   Then If Not IsBlank(DOCTO_SER)
           Then SERIE = " "+DOCTO_SER+" "
           Else SERIE = " "
         EndIf
         DOCUMENTO=Spaces(3)+"DOCUMENTO: "+Format("W20,AL",[Codigo do Documento]+SERIE+[Numero do Documento])+Spaces(8)  
   Else GetRecord "\\Sistemas\\Vendas\\FaturaC" NUMOF To REG_FATURAC 
        If RetVal
           Then If Not IsBlank(REG_FATURAC["Serie Nota Gerada"])
                   Then SERIE = " "+REG_FATURAC["Serie Nota Gerada"]+" "
                   Else SERIE = " "
                 EndIf
                 DOCUMENTO=Spaces(3)+"DOCUMENTO: "+Format("W20,AL",REG_FATURAC["Docto Nota Gerada"]+SERIE+REG_FATURAC["Numero Nota Gerada"])+Spaces(8)
        EnDIf  
EndIf
   
Print File ARQIMP ASP1+CI_6LPP+CI_15CPP+ASP2
Print File ARQIMP ASP1+ "  --------------------------------------------------------------------------------------------------------------------------------"  +ASP2+"\n"
Print File ARQIMP ASP1+Spaces(02)+Format("W36,AL",NOMEMPRESA)+Spaces(10)+"Posicao Pendentes de Faturamento"+Spaces(22)+
                       "Impressao: "+Format("D13",Today())+"-"+Time()+ASP2+"\n"
Print File ARQIMP ASP1+ "  --------------------------------------------------------------------------------------------------------------------------------"  +ASP2+"\n"
Print File ARQIMP ASP1+Spaces(02)+"Numero da OE  : "+Format("W08,AL",[Numero da OE])+DOCUMENTO+"Cliente: "+CODIGO
Print File ARQIMP Spaces(02)+Format("W27,AL",RAZSOCIAL)+Spaces(02)+Format("W18,AL",CGC)+ASP2+"\n"                                                                                     
Print File ARQIMP ASP1+Spaces(02)+"Representante : "+Format("W21,AL",NOMREP)+Spaces(44)+Format("W41,AL",ENDERECO)+ASP2+"\n"
Print File ARQIMP ASP1+Spaces(02)+"Transportadora: "+Format("W21,AL",NOMTRA)+Spaces(44)+BAIRRO+Spaces(05)+CIDADE+"/"+UF+ASP2+"\n"
Print File ARQIMP ASP1+Spaces(02)+"Cond. de Pag. : "+Format("W21,AL",CONDPAG)+ASP2+"\n"
Print File ARQIMP ASP1+ "  --------------------------------------------------------------------------------------------------------------------------------"  +ASP2+"\n"
Print File ARQIMP ASP1+Spaces(02)+"Sq   Ref.     Item                                               UN  Diferen‡a  "+ASP2+"\n"
Print File ARQIMP ASP1+Spaces(02)+"---- -------- -------------------------------------------------- --- ---------- "+ASP2+"\n"
NLINHA=12

EndProc
;*******************************************************************************
;* Rotina para Impressao do Rodap‚                                             *
;*******************************************************************************
Proc Total()

Print File ARQIMP ASP1+Spaces(02)+"-------------------------------------------------------------------------------- "+ASP2+"\n"
Print File ARQIMP ASP1+ Spaces(44)+"Total de Itens Pendentes: "+Format("W11.3,EIC",SOMACALCDIF*-1)+ASP2+"\n\n\n"
Print File ARQIMP ASP1+Spaces(02)+"Observacoes:  "+Format("W128,AL",SubStr(OBSERVACOES,001,128))+ASP2+"\n"

If Substr(OBSERVACOES,61,120)<>""
   Then Print File ARQIMP ASP1+Spaces(02)+Format("W128,AL",SubStr(OBSERVACOES,129,257))+ASP2+"\n"
EndIf

EndProc  ;Total()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Seta_FilePrint("OE_0002")

ACHOU_ITEM=False

Moveto "ExpedC"
CoeditKey

IMPPED()
Do_It!

If Not ACHOU_ITEM
   Then Mensagem("N„o h  itens a serem expedidos!")
   Else Imprime_FilePrint("Imprimindo Posi‡Ćo Expedi‡Ćo -> "+"OE_0002", "R")
EnDIf   

Release Vars VALOR,DATA, NOMEMPRESA, NUMOF, RAZSOCIAL, SITUACAOOE, DATALIBERA,
             CODREP, NOMREP, CODTRA,  NOMTRA, CONDPAG, CODIGO, ENDERECO, BAIRRO,
             CIDADE, UF, CEP,DOCTO_COD,DOCTO_TIP,DOCTO_SER,DOCTO_NUM
Release Procs IMPPED, Cabecalho, Total, Seta_FilePrint, Imprime_FilePrint
