;** OPAF_PES *******************************************************************
;*  Sinconizador Pessoa - OPAF                                                 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 06/08/2018 por Anivel Augusto Rodrigues
;Ultima Alteracao: 13/08/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes sequencia remessa, versao opaf

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
proc OPAF_PES_Processa()
private regempresas

AGUARDE("Aguarde, Sincronizando OPAF")

If Not IsAssigned(VSDGNECF)      Then VSDGNECF="01"  EndIf

ARQ=PrivDir()+"REMESSA.TXT"

If IsBlank([CGC])                   or
   [CGC]="00.000.000/0000-00"       or
   [CGC]="000.000.000-00"           or
   [CGC]="00000.000/0000-00"        or
   [CGC]="99.999.999/9999-99"       or
   [CGC]="999.999.999-99"           or
   [CGC]="11.111.111/1111-11"       or
   [CGC]="111.111.111-11"           or
   [CGC]="11111.111/1111-11"        Then FastMsg("CNPJ/CPF inv lido !")     
                                         return 
endif 
If Tipo_CGC_CPF([CGC])=""           Then FastMsg("CNPJ/CPF inv lido !")     
                                         return 
endif
If IsBlank([Razao Social])          Then FastMsg("razÆo Social inv lida !") 
                                         return 
endif

GetRecord "\\Sistemas\\Cadastro\\Empresas" "0001" To regempresas

LINHA = "001"
LINHA = LINHA + AlinhM(Tira_CharNum(regempresas["CGC Empresa"]),14)
LINHA = LINHA + "REM"
LINHA = LINHA + AlinhM(StrVal(Day(Today())),2)+AlinhM(StrVal(Month(Today())),2)+AlinhM(StrVal(Year(Today())),4)
LINHA = LINHA + SubStr(Time(),1,2)+SubStr(Time(),4,2)+SubStr(Time(),7,2)
LINHA = LINHA + "0000"
LINHA = LINHA + versao
FileWrite        ARQ from LINHA+"\n"

LINHA = "004"
LINHA = LINHA + Completa(AlinhM([Codigo],4),15," ") 
LINHA = LINHA + Completa(Tira_CharNum([CGC]),14," ")
LINHA = LINHA + Format("W60,AL",Tira_charEspecial([Razao Social]))

OPAF_PES_PegaEndereco([Endereco])

LINHA = LINHA + Format("W60,AL",Tira_charEspecial(End_Logradouro))
LINHA = LINHA + Format("W30,AL",Tira_charEspecial([Cidade]))
LINHA = LINHA + Format("W60,AL",Tira_charEspecial([Bairro]))
LINHA = LINHA + Format("W02,AL",[UF])
LINHA = LINHA + Format("W15,AL",Tira_charEspecial([Telefone]))
LINHA = LINHA + Format("W60,AL",[Endereco_Eletronico])

If [Inativo]="N" 
  Then LINHA = LINHA + "A"
       LINHA = LINHA + Completa(" ",25," ")  
  Else LINHA = LINHA + "I"
       LINHA = LINHA + "Verificar com a Gerencia!" 
EndIf

; Complemento de 01 a 04 = 20.20.40.40   
LINHA = LINHA + Completa(" ",20," ")
LINHA = LINHA + Completa(" ",20," ")
LINHA = LINHA + Completa(" ",40," ")
LINHA = LINHA + Completa(" ",40," ")

If [Tipo Pessoa]="JURIDICA"
  Then LINHA = LINHA + Format("W14,AL",OPAF_PES_Monta_String([IE])) 
  Else LINHA = LINHA + Format("W14,AL",OPAF_PES_Monta_String([RG])) 
EndIf   

LINHA = LINHA + AlinhM(Tira_CharNum([Cep]),8)
LINHA = LINHA + Completa(End_Numero,10," ")

GetRecord "\\Sistemas\\Cadastro\\Cidades" [Cidade] To RegCidade
If RetVal
   Then If RegCidade["UF"]<>"EX"
           Then LINHA = LINHA + Completa(StrVal(RegCidade["Codigo_Cidade"]),7," ") 
           Else LINHA = LINHA + Completa(" ",7," ")
        EndIf
   Else LINHA = LINHA + Completa(" ",7," ")         
EndIf  

LINHA = LINHA + Completa(Tira_charEspecial(End_Complemento),60," ")
LINHA = LINHA + Completa(OPAF_PES_Monta_String([ISUFRAMA]),9," ")
LINHA = LINHA + Completa([Endereco_Eletronico],200," ")
LINHA = LINHA + Completa(" ",100," ")
LINHA = LINHA + Completa("",13,"0")  ;kamila
LINHA = LINHA + "N"

switch
  case versao="026":
    If [Data de Nascimento]<>BlankDate()
       then DataNasc   = [Data de Nascimento]
            DiaNasc    = AlinhM(StrVal(Day(DataNasc)),2)
            MesNasc    = AlinhM(StrVal(Month(DataNasc)),2)
            AnoNasc    = AlinhM(StrVal( Year(DataNasc)),4)
            LINHA = LINHA + DiaNasc + MesNasc + AnoNasc
            LINHA = LINHA + DiaNasc + MesNasc
       else LINHA = LINHA + Completa(" ",12," ")
    EndIf
     
    LINHA = LINHA + Completa(" ",200," ")   ;ver qual obs ‚ pra mandar
endswitch
FileWrite Append ARQ from LINHA+"\n"

LINHA = "099"
LINHA = LINHA + AlinhM(StrVal(1),10)
FileWrite Append ARQ from LINHA+"\n"

OPAF_PES_CriaProximo_ArqM([Codigo])

endproc

;*******************************************************************************
;* Fun‡Æo para Montar String                                                   *
;*******************************************************************************
Proc OPAF_PES_Monta_String(MSTRING)
private M_NOVO,I

M_NOVO = ""

For I From 1 to Len(MSTRING)
    If (Asc(SubStr(MSTRING,I,1)) >= 48) And
       (Asc(SubStr(MSTRING,I,1)) <= 57)
       Then M_NOVO = M_NOVO + SubStr(MSTRING,I,1)
    EndIf
EndFor

Return(M_NOVO)

EndProc ; (OPAF_PES_Monta_String)       

;*******************************************************************************
;* Cria Proximo arquivo RT                                                     *
;*******************************************************************************
Proc OPAF_PES_CriaProximo_ArqM(num)
Private num, arqw, arqr

ARQREM="RMC"+sys_Chapa_usuario+Tira_CharNum(time())
ARQR  =VSDGCAMINHO+"\\"+ARQREM+".R"

ARQW=VSDGCAMINHOW+"\\"+ARQREM+".R"
If IsFile(ARQW) Then Deleta_Arquivo(ARQW) EndIf

ARQW=VSDGCAMINHOW+"\\"+ARQREM+".L"+VSDGNECF
If IsFile(ARQW) Then Deleta_Arquivo(ARQW) EndIf

Copia_Arquivo(ARQ+" "+ARQR)
EndProc

;*******************************************************************************
;* Fun‡Æo para Pegar Endere‡o                                                  *
;*******************************************************************************
Proc OPAF_PES_PegaEndereco(s)
Private s,posl,posn

End_Logradouro =""
End_Numero     =""
End_Complemento=""

posl=SearchFrom(",",s,1)
If posl<2
   Then End_Logradouro =s
   Else End_Logradouro=LTrim(RTrim(SubStr(s,1,posl-1)))
       
        posn=SearchFrom(",",s,posl+1)
        If posn>1
           Then End_Numero     =LTrim(RTrim(SubStr(s,posl+1,(posn-posl)-1)))
                End_Complemento=LTrim(RTrim(SubStr(s,posn+1,40)))
           Else End_Numero     =LTrim(RTrim(SubStr(s,posl+1,40)))     
        EndIf
EndIf   

EndProc ;OPAF_PES_PegaEndereco()


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

OPAF_PES_Processa()
LimpAguarde()

Release Procs OPAF_PES_Processa,OPAF_PES_CriaProximo_ArqM,
              OPAF_PES_Monta_String,OPAF_PES_PegaEndereco