;** Ctp_0500 *******************************************************************
;*  Manutencao Cadastro de parƒmetros plano de conta sped bloco 0500           *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido    : 16/11/2017 por Anivel Augusto Rodrigues
;Ultima Alteracao: 19/12/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes sort
;Ultima Alteracao: 10/09/2018 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes Natureza do Frete
;Ultima Alteracao: 08/10/2019 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes Natureza do Frete s¢ para conhecimentos

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True

  Moveto [Codigo da Empresa]
  End
  Down Down Down
  Moveto [Codigo da Empresa]

  While True
    SetaCorRegistro("Editar")
  
    TECLA=Field()
    Switch  
      Case Field()="Codigo da Empresa"   : TECLA=TECLA+", [F1]Consultar tabela"
      Case Field()="CodigoModelo"        : TECLA="Documento fiscal, [F1]Consultar tabela"
    EndSwitch
    
    AguardaTeclasPadrao()
  
  If Retval=-33
     Then
       ShowPopup " Fun‡”es " CENTERED
        "~O~rdenar Regras"  : " Ordernar regras por empresa/docto/pessoas.." : "F5",
        "~C~ancelar"        : " Cancelar a Opera‡„o"                         : "CANCELAR"
       EndMenu
        To MenuVar
       Echo off
  
       If MenuVar="CANCELAR" or MenuVar="Esc"
           Then Loop
       EndIf
       RetVal=MenuVar
  EndIf  

  
    Switch
        Case RetVal="F3": SemFicha()
        Case RetVal="F5":
             del
             do_It!
             Sort "Ctp_0500" on "Codigo da Empresa","CodigoModelo","Razao Social","Codigo","CFOPs"
             ClearAll
             
             CoEdit "Ctp_0500" 
             PickForm "F"
             quitloop
        
        Case RetVal=-94 : MsgTeclasPadrao()
        Case Retval="F1":
             If Field()="Codigo da Empresa" or
                Field()="CodigoModelo"   
                Then CONSULTAF1()
             EndIf
        
        Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
             While True
                PAGINA("Ctp_0500","MR")
                If EDITAR="S"
                   Then CHAVE=0
                        Controla_EdicaoC()
                   Else If EXCLUIR="S"
                           Then If QuerExcluir("")
                                   Then DEL
                                   Else UnLockRecord
                                EndIf
                           Else QuitLoop
                        EndIf
                EndIf
                SetaPosForm()
             EndWhile
             QuitLoop
        Case Retval="ESC":
             CHAVE=9
             Del
             Return   
        Case Retval="ENTER":
             switch
               case field()="Codigo da Empresa"   : 
                 if isblank([]) 
                    then fastmsg("Valor Invalido !")
                    else moveto [CodigoModelo]
                 endif
                    
               case field()="CodigoModelo" : 
                 if isblank([]) 
                    then fastmsg("Valor Invalido !") loop
                    else CHAVE=1
                         Return
                 endif
                         
             endswitch
      EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()
Moveto [Codigo]
While True

      TECLA=" Esc=Retornar  "
      TECLA=TECLA + "Del=Excluir  "
      
      MSGCAMPO=Field()
      Switch  
        Case Field()="Codigo"              : MSGCAMPO="Pessoa, [F1]Consultar tabela"
        Case Field()="COD_CTA"             : MSGCAMPO="Conta, [F1]Consultar tabela"
        Case Field()="CFOPs"               : MSGCAMPO="Relacione CFOPïs, exemplo: 9999,8888,7777"
        Case Field()="Natureza do Frete"   : MSGCAMPO="Informe a Natureza do Frete, [F1]Consultar tabela"
      EndSwitch
      
      Prompt TECLA
      SetaCorRegistro("Editando")
      Wait Field
           Message MSGCAMPO
           Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1",-59

      Switch
      Case Retval="F1" or Retval=-59:
           If Field()="Codigo" or
              Field()="COD_CTA"   
              Then CONSULTAF1()
           EndIf
           
           If Field()="Natureza do Frete"
              Then  
                   MSGCAMPO=""
                   Echo Normal
                   Echo Off
              
                   ShowPopup " Natureza do Frete " CENTERED
                    "~0~ : Vendas - com “nus suportado pelo estabelecimento vendedor.    " : " " : "0",  
                     Separator,             
                    "~1~ : Vendas - com “nus suportado pelo adquirente.                  " : " " : "1",
                     Separator,  
                    "~2~ : Compras - (bens p/ revenda, mat‚rias-prima, e outros,         " : " " : "2", 
                    "    geradores de cr‚dito.                                           " : " " : "2", 
                     Separator,
                    "~3~ : Compras - (bens p/ revenda, mat‚rias-prima, e outros,         " : " " : "3",
                    "    n„o geradores de cr‚dito                                        " : " " : "3",
                     Separator,
                    "~4~ : Transferˆncia de produtos acabados entre estabelecimentos     " : " " : "4",
                    "    da pessoa jur¡dica                                              " : " " : "4",
                     Separator,
                    "~5~ : Transferˆncia de produtos em elabora‡„o entre estabelecimentos" : " " : "5", 
                    "    da pessoa jur¡dica                                              " : " " : "5", 
                     Separator,
                    "~9~ : Outras                                                        " : " " : "9",
                     Separator,              
                    "~S~air                                                              " : " Ignorar op‡äes" : "CANCELAR"

                   EndMenu
                    To MenuVar
                   Echo Off

                   If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                       Then []=MenuVar                            
                   EndIf
                   
           endif   
           
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="ESC":
           Switch
             Case Field()="Codigo":
               If QuerDesfazer("")
                  Then If CHAVE=1
                          Then Del
                       EndIf
                       CHAVE=9
                       QuitLoop
               Endif
             Case Field()="CFOPs"             : Moveto [Codigo]
             Case Field()="COD_CTA"           : Moveto [CFOPs]
             OtherWise: Left
           EndSwitch
      Case Retval="ENTER":
           Switch
                Case Field()="Codigo"         : 
                     If IsBlank([]) Then [Razao Social]="" EndIf
                     Moveto [CFOPs]
                Case Field()="CFOPs"          : 
                     if search([CodigoModelo],"08,09,10,11,26,57,8B")>0
                        then 
                             moveto [Natureza do Frete] 
                        else 
                             [Natureza do Frete]=""
                             Moveto [COD_CTA]
                     endif   

                Case Field()="Natureza do Frete": 
                     if IsBlank([]) or
                         not Verifica_Natureza_Frete()
                         then fastmsg("Natureza do Frete Inv lido !")
                              loop
                     endif                                  
                     Moveto [COD_CTA]

                Case Field()="COD_CTA"        : 
                     If IsBlank([]) Then fastmsg("Valor inv lido!") loop EndIf
                     QuitLoop

                OtherWise:
                     Right
           EndSwitch
      Case Retval="DEL":
           If CHAVE=0
              Then If QuerExcluir("")
                      Then Del
                           QuitLoop
                   EndIf
           EndIf
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao da Cabeca                                             *
;*******************************************************************************
Proc Verifica_Natureza_Frete()
private okfrete

okfrete=true
Switch
  Case [Natureza do Frete]="0" : 
  Case [Natureza do Frete]="1" : 
  Case [Natureza do Frete]="2" : 
  Case [Natureza do Frete]="3" : 
  Case [Natureza do Frete]="4" : 
  Case [Natureza do Frete]="5" : 
  Case [Natureza do Frete]="9" : 
  OtherWise                    : okfrete=false
EndSwitch

return okfrete
EndProc ;Verifica_Natureza_Frete()

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITA()
If RecordStatus("Locked") Then UnLockRecord EndIf         
Endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

Sort "Ctp_0500" on "Codigo da Empresa","CodigoModelo","Razao Social","Codigo","CFOPs"
ClearAll

CoEdit "Ctp_0500"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll

Sort "Ctp_0500" on "Codigo da Empresa","CodigoModelo","Razao Social","Codigo","CFOPs"
ClearAll

Release Vars All
Release Procs All
