;** Transpor *******************************************************************
;*  Manutencao Cadastro de Transportadoras                                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 31/12/2003 por Karen Lauar Nery
;Motivo Alteracao: Inclusao Pais
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 29/06/2009 por Antonio Marcelo Alves
;Motivo Alteracao: Inclusao Novos Campos/Layout
;Ultima Alteracao: 31/10/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Frete por conta 0_Sem Frete                                             
;Ultima Alteracao: 15/03/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes F1 Cidades
;Ultima Alteracao: 30/03/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Enter Cidades
;Ultima Alteracao: 14/04/2010 por Bruno Carvalho
;Motivo Alteracao: ADD Campo Codigo_Pessoa
;Ultima Alteracao: 16/07/2010 por Bruno Carvalho
;Motivo Alteracao: Novos Campos/Layout  
;Ultima Alteracao: 17/07/2010 por Bruno Carvalho
;Motivo Alteracao:ADD Campo RNTC Veiculo 
;Ultima Alteracao: 23/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes "Frete por Conta"
;Ultima Alteracao: 29/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 02/05/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes layout RNTC Veiculo 
;Ultima Alteracao: 20/02/2014 por Andrey Fillipe
;Motivo Alteracao: Adicionado Campos (RNTC Transport e Tipo Proprietario)
;Ultima Alteracao: 01/04/2014 por Andrey Fillipe
;Motivo Alteracao: Adicionado Campo (Descricao_TpProprietario)
;Ultima Alteracao: 21/01/2016 por Kamila Gomes 
;Motivo Alteracao: Ajustes IE = NAOCONTRIBUINTE
;Ultima Alteracao: 26/04/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado Busca_Cep() p/ buscar o endere‡o, bairro, cidade e estado (quando houver)
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx() 
;Ultima Alteracao: 22/10/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IE ISENTO, NAOCONTRIBUINTE
;Ultima Alteracao: 24/12/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado Bib_Proc

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  Moveto [Codigo da Transportadora]
  End
  SEQ = [Codigo da Transportadora]

  If OPCAO_FORM="F"
     Then Down
     Else PgDn
  EndIf

  SetaCorRegistro("Editar")
  While True

  TECLA=""
  AguardaTeclasPadrao()

   Switch
      Case RetVal=-33 : SemFuncoes()
      Case RetVal=-94 : MsgTeclasPadrao()
      Case RetVal="F3":
           If OPCAO_FORM="F"
              Then OPCAO_FORM="1"
              Else OPCAO_FORM="F"
           EndIf
           Del
           CHAVE=5
           Return
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
           While True
             If OPCAO_FORM="F"
                 Then PAGINA("Transpor","MR")
                 Else PAGINA("Transpor","MT")
              EndIf
              If EDITAR="S"
                 Then CHAVE=0
                      PickForm "1"
                      Controla_EdicaoC()
                 Else If EXCLUIR="S"
                         Then If QuerExcluir("")
                                 Then Grava_LogEx("Transportador")
                                      Del
                                 Else UnLockRecord
                              EndIf
                         Else QuitLoop
                      EndIf
              EndIf
              SetaPosForm()
            EndWhile
            QuitLoop
      Case Retval="ESC":
           CHAVE=9
           Del
           Return
      Case Retval="ENTER":
           If IsBlank([])
              Then If IsBlank(SEQ)
                      Then SEQ="1"
                      Else SEQ=StrVal(NumVal(SEQ)+1)
                   EndIf
                   []=SEQ
           EndIf
           []=ALINH()
           CODIGO=[]
           Del
           PickForm "1"
           Moveto [Codigo da Transportadora]
           Locate CODIGO
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                   End PgDn
                   [Codigo da Transportadora]=CODIGO
           EndIf
           If IsLockRecord()
              Then If OPCAO_FORM="F"
                      Then PickForm "F"
                   Endif
                   QuitLoop
           EndIf
           Return
    EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()

Moveto [Nome Fantasia Transport]

CODV_ANT=[Codigo do Veiculo]

While True

      TECLA=" Esc=Retornar  "
      If Field()="Codigo do Veiculo" Or
         Field()="Cidade Transport" Or
         Field()="UF Transport" Or
         Field()="UF Veiculo"  Or
         Field()="Pais Transport" Or
         Field()="Codigo_Pessoa"
         Then TECLA=TECLA+"F1=Tabelas  "
         Else TECLA=TECLA+"            "
      EndIf
      If CHAVE=0
         Then TECLA=TECLA+"Del=Excluir  PgDn=Finalizar  "
      EndIf

      MSGCAMPO=""
      Switch
        Case Field()="Inativo Transport"                : MSGCAMPO="Inativo ? (Sim/N„o)"
        Case Field()="CGC Transport"                    : MSGCAMPO="Formatos: [ CPF ###.###.###-## ] ou [ CNPJ ##.###.###/####-## ]"
        Case Field()="IE Transport"                     : MSGCAMPO="Informe o N§, ISENTO ou NAOCONTRIBUINTE p/ Inscri‡„o Estadual"
        Case Field()="IM Transport"                     : MSGCAMPO="Informe o N§ ou ISENTO p/ Inscr. Municipal"
        Case Field()="RG Transport"                     : MSGCAMPO="Informe o N§ do Registro Geral"
        Case Field()="Data_Cadastro Transport"          : MSGCAMPO="Data do Cadastro"
        Case Field()="Endereco_Eletronico Transport"    : MSGCAMPO="Endere‡o Eletr“nico"
        Case Field()="Pagina_Web Transport"             : MSGCAMPO="Pagina na Internet"
        Case Field()="Frete por Conta"                  : MSGCAMPO="Frete por Conta, Consulte [F1]"
        Case Field()="Codigo_Pessoa"                    : MSGCAMPO="C¢digo da Pessoa"    
        Case Field()="RNTC Veiculo"                     : MSGCAMPO="Registro Nacional de Transportadores Rodovi rios de Carga (Ve¡culo)"      
        Case Field()="Tipo Proprietario"                : MSGCAMPO="0-TAC Agregado  1-TAC Independente  2-Outros"
        Case Field()="RNTC Transport"                   : MSGCAMPO="Registro Nacional de Transportadores Rodovi rios de Carga (Propriet rio)"
      EndSwitch                                     


      Prompt TECLA

      Wait Field
           MESSAGE MSGCAMPO
           Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1","PGDN"

      Switch
      Case Retval="F1":
           If Field()="Codigo do Veiculo" Or
              Field()="Cidade Transport" Or
              Field()="UF Transport" Or
              Field()="UF Veiculo" or
              Field()="Pais Transport" Or
              Field()="Codigo_Pessoa"
              Then If ConsultaF1()
                      Then If Field()="Cidade Transport"
                              Then [UF Transport  ]=Reg_ConsultaF1["UF"]
                                   [Pais Transport]=Reg_ConsultaF1["Pais"]
                           EndIf
                           If Field()="Codigo do Veiculo"
                              Then [Placa do Veiculo   ]=Reg_ConsultaF1["Placa do Veiculo"]
                                   [UF Veiculo         ]=Reg_ConsultaF1["UF Veiculo"]
                                   [RNTC Veiculo       ]=Reg_ConsultaF1["RNTC Veiculo"]
                           EndIf
                   EndIf        
           EndIf
           If Field()="Frete por Conta"
              Then FreteporConta()
           EndIf
           If Field()="Tipo Proprietario"
              Then ShowPopup " Tipo de Propriet rio " CENTERED
                   "~0~ - TAC Agregado    " : "TAC Agregado    " : "0",
                   "~1~ - TAC Independente" : "TAC Independente" : "1",
                   "~2~ - Outros          " : "Outros          " : "2",
                   "~S~air                " : "Ignorar op‡äes " : "CANCELAR"
                   EndMenu
                   To MenuVar
                   If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                       Then []=MenuVar
                   EndIf                                                    
                   Switch
                     Case [Tipo Proprietario] = "0" : [Descricao_TpProprietario]="TAC AGREGADO" 
                     Case [Tipo Proprietario] = "1" : [Descricao_TpProprietario]="TAC INDEPENDENTE"
                     Case [Tipo Proprietario] = "2" : [Descricao_TpProprietario]="OUTROS"
                   EndSwitch
           EndIf   
      Case Retval="PGDN":           
           If IsBlank([Nome Fantasia Transport]) Or
              IsBlank([Razao Social Transport]) Or
              IsBlank([Cidade Transport]) Or
              IsBlank([CGC Transport]) Or
              IsBlank([IE Transport]) Or
              IsBlank([Tipo Proprietario]) Or
              IsBlank ([Frete por Conta])
              Then Loop
              Else CHAVE=9
              QuitLoop
           EndIf 
      Case Retval="ESC":
           Switch
           Case Field()="Nome Fantasia Transport":
                If QuerDesfazer("")
                   Then If CHAVE=1
                           Then Del
                           Else Undo
                        EndIf
                        CHAVE=9
                        QuitLoop
                EndIf
           Case Field()="Data_Cadastro Transport"                : Moveto [Nome Fantasia Transport]
           Case Field()="Inativo Transport"                      : Moveto [Data_Cadastro Transport]
           Case Field()="Razao Social Transport"                 : Moveto [Inativo Transport]
           Case Field()="Contato Transport"                      : Moveto [Razao Social Transport]
           Case Field()="CEP Transport"                          : Moveto [Contato Transport]
           Case Field()="Endereco Transport"                     : Moveto [CEP Transport]
           Case Field()="Bairro Transport"                       : Moveto [Endereco Transport]
           Case Field()="Cidade Transport"                       : Moveto [Bairro Transport]
           Case Field()="UF Transport"                           : Moveto [Cidade Transport]
           Case Field()="Pais Transport"                         : Moveto [UF Transport]
           Case Field()="Telefone Transport"                     : Moveto [Pais Transport]
           Case Field()="Celular Transport"                      : Moveto [Telefone Transport]
           Case Field()="Fax Transport"                          : Moveto [Celular Transport]
           Case Field()="Endereco_Eletronico Trans"              : Moveto [Fax Transport]
           Case Field()="Pagina_Web Transport"                   : Moveto [Endereco_Eletronico Trans]
           Case Field()="CGC Transport"                          : Moveto [Pagina_Web Transport]
           Case Field()="IE Transport"                           : Moveto [CGC Transport]
           Case Field()="RG Transport"                           : Moveto [IE Transport]
           Case Field()="IM Transport"                           : Moveto [RG Transport]
           Case Field()="Conta Contabil Transport"               : Moveto [IM Transport]
           Case Field()="Codigo do Veiculo"                      : Moveto [Conta Contabil Transport]
           Case Field()="Tipo Proprietario"                      : Moveto [Codigo do Veiculo]
           Case Field()="RNTC Transport"                         : Moveto [Tipo Proprietario]
           Case Field()="Frete por Conta"                        : Moveto [RNTC Transport]
           Case Field()="Codigo_Pessoa"                          : Moveto [Frete por Conta]
           OtherWise:
                Left
           EndSwitch
      Case Retval="ENTER":
           Switch
           Case Field() = "Nome Fantasia Transport":
                If IsBlank([]) Then Loop EndIf
                Moveto [Data_Cadastro Transport]
           Case Field()="Data_Cadastro Transport":
                If IsBlank([])
                   Then []=Today()
                EndIf
                Moveto [Inativo Transport]
           Case Field()="Inativo Transport":
                If IsBlank([]) Then []="N" EndIf
                Moveto [Razao Social Transport]
           Case Field()="Razao Social Transport":
                If IsBlank([]) Then Loop EndIf
                Moveto [Contato Transport]
           Case Field()="Contato Transport"  : Moveto [CEP Transport]
           Case Field()="CEP Transport"      : Moveto [Endereco Transport]
                If Not Isblank([CEP Transport]) And CHAVE = 1
                   Then Busca_Cep([CEP Transport])
                        [Endereco Transport] = BUSCA_CEP_ENDERECO
                        [Bairro Transport  ] = BUSCA_CEP_BAIRRO
                        [Cidade Transport  ] = BUSCA_CEP_CIDADE
                        [UF Transport      ] = BUSCA_CEP_UF
                        [Pais Transport    ] = BUSCA_CEP_PAIS
                        Release Vars BUSCA_CEP_ENDERECO, BUSCA_CEP_BAIRRO, BUSCA_CEP_CIDADE, BUSCA_CEP_UF, BUSCA_CEP_PAIS
                EndIf
           Case Field()="Endereco Transport" : Moveto [Bairro Transport]
           Case Field()="Bairro Transport"   : Moveto [Cidade Transport]

           Case Field()="Cidade Transport":
                If IsBlank([]) Then Loop EndIf                          
                Moveto [Uf Transport]          
           Case Field() = "UF Transport":
                If IsBlank([]) Then Loop EndIf                
                If Not IsBlank([Cidade Transport])
                    Then Moveto [Cidade Transport]
                         cidade=[Cidade Transport]
                         uf= [UF Transport]
                         Ativa_Lookup()
                         Moveto [Cidade]
                         Locate cidade,uf
                         If RetVal
                            Then VSD_Cidade=[Cidade ]
                                 VSD_UF=[UF]
                                 KeyPress "ESC"                             
                                 [Cidade Transport]=VSD_Cidade
                                 [UF Transport]=VSD_UF
                                 Moveto [Pais Transport]                                             
                            Else Mensagem("Cidade/UF n„o Cadastrada !")                                                               
                                 KeyPress "ESC"
                                 Moveto [Cidade Transport]
                         EndIf
                         Echo Off                 
                EndIf        
           Case Field() = "Pais Transport":
                If IsBlank([]) Then
                   []="BRASIL"
                EndIf
                Moveto [Telefone Transport]
           Case Field()="Telefone Transport" : Moveto [Celular Transport     ]
           Case Field()="Celular Transport"  : Moveto [Fax Transport         ]
           Case Field()="Fax Transport"      : Moveto [Endereco_Eletronico Trans]
           Case Field()="Endereco_Eletronico Trans" : Moveto [Pagina_Web Transport]
                If Not IsBlank([Endereco_Eletronico Trans])
                   Then [Endereco_Eletronico Trans]=Lower([Endereco_Eletronico Trans])
                EndIf
           Case Field()="Pagina_Web Transport"          : Moveto [CGC Transport]
                If Not IsBlank([Pagina_Web Transport])
                   Then [Pagina_Web Transport]=Lower([Pagina_Web Transport])
                EndIf

           Case Field()="CGC Transport":
                If IsBlank([]) Then Loop EndIf
                If Not Checa_CGC_CPF_Formatado([]) Then Loop EndIf
                Switch
                  Case Search(".",[CGC Transport])=4: [Tipo Pessoa Transport]="FISICA"
                  Case Search(".",[CGC Transport])=3: [Tipo Pessoa Transport]="JURIDICA"
                EndSwitch
                Moveto [IE Transport]
           Case Field()="IE Transport":
                If IsBlank([]) Then Loop EndIf
                If [Tipo Pessoa Transport]="JURIDICA"
                   Then If []<>"ISENTO" And []<>"NAOCONTRIBUINTE"
                           Then Aguarde("Validando IE")
                                If Not Valida_IE([],[UF Transport])
                                   Then LimpAguarde()
                                        Loop
                                EndIf
                                LimpAguarde()
                        EndIf  
                EndIf
                Moveto [RG Transport]
           Case Field()="RG Transport"                  : Moveto [IM Transport]
           Case Field()="IM Transport"                  : Moveto [Conta Contabil Transport]
           Case Field()="Codigo do Veiculo"             : 
                If Not IsBlank([Codigo do Veiculo])
                   Then GetRecord "\\Sistemas\\Vendas\\Veiculos" [Codigo do Veiculo] To VEICULO 
                           If Retval 
                              Then [Placa do Veiculo   ]=VEICULO["Placa do Veiculo"]
                                   [UF Veiculo         ]=VEICULO["UF Veiculo"]
                                   [RNTC Veiculo       ]=VEICULO["RNTC Veiculo"]
                           EndIf 
                  Else If not IsBlank(CODV_ANT)
                           Then [Placa do Veiculo   ]=""
                                [UF Veiculo         ]=""
                                [RNTC Veiculo       ]=""
                       EndIf
                EndIf
                CODV_ANT=[]       
                If Not IsBlank([Codigo do Veiculo])
                   Then Moveto [Tipo Proprietario]
                   Else Moveto [Placa do Veiculo]
                EndIf   
           Case Field()="Tipo Proprietario":
                Switch
                   Case [Tipo Proprietario] = "0" : [Descricao_TpProprietario]="TAC AGREGADO" 
                   Case [Tipo Proprietario] = "1" : [Descricao_TpProprietario]="TAC INDEPENDENTE"
                   Case [Tipo Proprietario] = "2" : [Descricao_TpProprietario]="OUTROS"
                   OtherWise                             : 
                        Moveto [Tipo Proprietario]
                        Loop
                EndSwitch
                Moveto [RNTC Transport]
           Case Field()="RNTC Transport":
                If IsBlank([RNTC Transport]) Or Len([RNTC Transport])=8
                      Then Moveto [Frete por Conta]
                      Else Mensagem("O RNTRC do Propriet rio tem que conter 8 n£meros")
                EndIf
           Case Field()="Frete por Conta"               : 
                If IsFieldNull([]) 
                   Then Loop 
                EndIf
                Moveto [Codigo_Pessoa]
           Case Field()="Codigo_Pessoa":
                If CHAVE=1
                   Then UnLockRecord
                EndIf
                CHAVE=0
                Moveto [Nome Fantasia Transport]
           OtherWise:
                Right
           EndSwitch
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="DEL":
           If CHAVE=0
              Then If QuerExcluir("")
                      Then Grava_LogEx("Transportador")
                           DEL
                           QuitLoop
                   EndIf
           EndIf
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITA()
If RecordStatus("Locked") Then UnLockRecord EndIf         
If OPCAO_FORM="F"
   Then PickForm "F"
EndIf
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bib_Proc"
CoEdit "Transpor"
PickForm "F"
OPCAO_FORM="F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  If CHAVE=5
     Then If OPCAO_FORM="F"
             Then PickForm "F"
             Else PickForm "1"
          EndIf
          Loop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
