;** DestEmp  *******************************************************************
;*  Manutencao Cadastro de Empresas/Filiais                                    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 09/12/2005 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Dados Sintegra
;Ultima Alteracao: 17/09/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 04/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 21/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Contrala_Edicao()
;Ultima Alteracao: 29/06/2009 por Antonio Marcelo Alves
;Motivo Alteracao: Inclusao Novos Campos/Layout
;Ultima Alteracao: 10/09/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Lockrecord
;Ultima Alteracao: 12/03/2010 por Cleber Alves
;Motivo Alteracao: Ajustes MsgCampo
;Ultima Alteracao: 15/03/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes F1 Cidades
;Ultima Alteracao: 30/03/2010 por Cleber Alves
;Motivo Alteracao: Ajustes Enter Cidades
;Ultima Alteracao: 30/06/2010 por Bruno Carvalho
;Motivo Alteracao: Add Proc Novo Codigo e Checagem do C¢digo
;Ultima Alteracao: 16/07/2010 por Bruno Carvalho
;Motivo Alteracao: Novos Campos/Layout  
;Ultima Alteracao: 03/08/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Atividade, Tributa‡Æo Estadual c/ F1
;Ultima Alteracao: 29/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 08/02/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao SPEDdad
;Ultima Alteracao: 26/10/2011 por Bruno Carvalho
;Motivo Alteracao: Incrementado ShowPopup "Perfil e Atividade" e Add "Tipo de Escrituracao"
;Ultima Alteracao: 28/11/2011 por Bruno Carvalho
;Motivo Alteracao: Add "Incidencia_Tributaria", "Apropriacao_Credito", "Tipo_Contribuicao", "Regime_Cumulativo"
;Ultima Alteracao: 14/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajuste layout e add rotina para inserir IE_ST por Estado para cada empresa
;Ultima Alteracao: 20/08/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo estava acessando F3=SPED
;Ultima Alteracao: 21/08/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes valor ajustado para variavel TECLA
;Ultima Alteracao: 24/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes Add "PGDN", devido ao layout alterado
;Ultima Alteracao: 19/09/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustado rotina para navega‡Æo
;Ultima Alteracao: 28/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes visualizar em ordem de c¢digo/nome + fun‡Æo
;Ultima Alteracao: 29/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes F1 parametros para sped                     
;Ultima Alteracao: 04/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Layout SPED Fiscal/Contribui‡äes            
;Ultima Alteracao: 06/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Atividade,Regime Tributario                 
;Ultima Alteracao: 11/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Perfil,Atividade F1                 
;Ultima Alteracao: 12/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Atividade,Regime Tributario                 
;Ultima Alteracao: 02/12/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SPED contribui‡Æo Previdˆnciaria     
;Ultima Alteracao: 13/01/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes Dialogo TERMO_ABENC() 
;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: 08/11/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes vari vel MSGCAMPO
;Ultima Alteracao: 10/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes mensagem showdialog
;Ultima Alteracao: 22/01/2018 por Kamila Gomes
;Motivo Alteracao: InclusÆo de autorizados a obter xml da nota
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx() p/ gravar log de erros ao excluir registros 
;Ultima Alteracao: 20/08/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes na tela do SINTEGRA, onde foi removido os campos LOGRADOUTO entre outros, 
;                  pois ir  buscar do proprio cadastro da empresa estes dados
;Ultima Alteracao: 21/08/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo para informar parƒmetros para a NFS-e 
;Ultima Alteracao: 06/08/2019 por Bruno Carvalho
;Motivo Alteracao: InclusÆo do campo [NIRE]
;Ultima Alteracao: 16/09/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes mensagem tipo pessoa
;Ultima Alteracao: 24/12/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado Bib_Proc

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

While True

  Switch
    Case ORDENARPOR="NOME" :
      Moveto [Razao Social]
      Menu {Image} {OrderTable} Enter {Razao Social}  
    OtherWise              :
      Moveto [Codigo]
      Menu {Image} {OrderTable} Enter {Codigo}  
  EndSwitch

  End
  SEQ=[Codigo]

  If OPCAO_FORM="F"
    Then Down
    Else PgDn 
  EndIf

  Moveto [Codigo]

  SetaCorRegistro("Editar")
  While True

  MSGCAMPO=""
  TECLA=""
  AguardaTeclasPadrao()

  If RetVal=-33
     Then Echo Normal
          Echo Off
          ShowPopup " Fun‡”es " CENTERED
           "Ordenar nome/razÆo social": " Ordenar por nome/razÆo social    " : "ORD_NOME",
           "Ordenar c¢digo           ": " Ordenar por c¢digo               " : "ORD_COD",
           Separator,
           "~C~ancelar               ": " Cancelar a Opera‡„o              " : "CANCELAR"
          EndMenu
          To MenuVar
          Echo Off
          
          If MenuVar="CANCELAR" or MenuVar="Esc"
             Then Loop
          EndIf                                         
          RetVal=MenuVar
          
          Switch
            Case MenuVar="ORD_COD"  : ORDENARPOR="CODIGO" QuitLoop
            Case MenuVar="ORD_NOME" : ORDENARPOR="NOME"   QuitLoop
          EndSwitch
          
  EndIf
  
  Switch
   Case RetVal=-94 : MsgTeclasPadrao()
   Case RetVal="F3":
        If OPCAO_FORM="F"
           Then OPCAO_FORM="2"
           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("Destinat","MR")
             Else PAGINA("Destinat","MT")
          EndIf
          CODIGO=[Codigo]
          If EDITAR="S"
             Then PickForm "2"
                  CHAVE=0
                  Controla_EdicaoC()
             Else If EXCLUIR="S"
                    Then If not ChecaTipoDeRegistro()
                            Then 
                                 UnLockRecord
                            Else If Checa_Supervisor()
                                    Then If QuerExcluir("desta Empresa")
                                           Then PickForm "2"
                                                If Checa_Supervisor()
                                                   Then EXCLUSAO()
                                                EndIf
                                                If OPCAO_FORM="1"
                                                   Then PickForm "2"
                                                   Else PickForm "F"
                                                EndIf
                                           Else UnLockRecord
                                         EndIf
                                    Else UnLockRecord
                                 EndIf
                         EndIf
                    Else QuitLoop
                  EndIf
          EndIf
          SetaPosForm()
        EndWhile
        QuitLoop
   Case Retval="ESC":
        CHAVE=9
        Del
        Return
   Case Retval="ENTER":
        CODIGO=[Codigo]
        Del

        Moveto [Codigo]
        Menu {Image} {OrderTable} Enter {Codigo}  

        CODIGO=Checa_Codigo(CODIGO)
        If IsBlank(CODIGO)
           Then QuitLoop
        EndIf
        PickForm "2"

        Moveto [Codigo]
        Locate CODIGO
        If Retval
           Then CHAVE=0
           Else CHAVE=1
                End PgDn Pgdn
                [Codigo       ] = CODIGO
                [Tipo         ] ="E"
                [Data_Cadastro] =Today()
        EndIf
        If IsLockRecord()
           Then If OPCAO_FORM="F"
                   Then PickForm "F"
                        QuitLoop
                EndIf
        EndIf
        Return
    EndSwitch
  EndWhile
EndWhile
EndProc   ; (Chave)

;*******************************************************************************
;* Rotina para Checagem do tipo de registro                                    *
;*******************************************************************************
Proc ChecaTipoDeRegistro()
private msg, msg1

Echo Normal
Echo Off
         
If [Tipo]<>"E"
   Then 
        msg="Pessoa cadastrada como tipo "
        switch
          case [Tipo]="E" : msg1="Empresa/Filial" 
          case [Tipo]="C" : msg1="Clientes" 
          case [Tipo]="F" : msg1="Fornecedores" 
          case [Tipo]="O" : msg1="Outros" 
        endswitch
        msg=msg+"[ "+msg1+" ] !// //"
        msg=msg+"Para manuten‡Æo desta pessoa use o Cadastro de "+msg1
        MENSAGEM(msg)
        return false
endif        

return true
EndProc

;*******************************************************************************
;* Rotina para Checagem do C¢digo                                              *
;*******************************************************************************
Proc Checa_Codigo(cod)
Private cod

If Not IsBlank(cod)
   Then cod=AlinhE(cod)
EndIf   
If PARAM_REUTILIZA="S"
   Then  cod=Proximo_Codigo(Cod)
   Else If IsBlank(cod)
           Then End
                cod=Novo_Codigo()
        EndIf
EndIf
Return cod
EndProc

;*******************************************************************************
;* Rotina para Criar Novo C¢digo                                               *
;*******************************************************************************
proc Novo_Codigo()
Private cod,vr

cod=[Codigo]
If IsBlank(cod)
   Then cod="0"
EndIf  
vr=SubStr(cod,1,1)
If vr>"9" or cod="9999"
   Then If SubStr(cod,2,3)="999"
	         Then Switch
					        Case vr="9" : cod="A000"
					        Case vr="Z" : Mensagem("Fim de codigo disponivel !")
									              cod=""
					        OtherWise   : cod=Chr(asc(vr)+1)+"000"
					      EndSwitch
					 Else cod=AlinhE(vr+StrVal(NumVal(SubStr(cod,2,3))+1))     
				EndIf	      
   Else cod=AlinhE(StrVal(NumVal(cod)+1))
EndIf

Return cod 
EndProc

;*******************************************************************************
;* Rotina para Gerar Proximo Codigo no Intervalo                               *
;*******************************************************************************
Proc Proximo_Codigo(cod)
Private cod, CodLivre

If IsBlank(PARAM_INICIAL) Or PARAM_INICIAL="0000"

   Then PARAM_INICIAL="0001"
EndIf

If Not IsBlank(cod)
   Then Moveto [Codigo]
        Locate cod   
        If retval
           Then Return cod  
           Else If cod>=AlinhE(PARAM_INICIAL) And cod<=AlinhE(PARAM_FINAL)
                   Then Return cod 
                   Else Mensagem("C¢digo "+cod+" fora do Intervalo !!")
                        Return ""    
                EndIf
        EndIf
EndIf

Home
CodLivre=AlinhE(PARAM_INICIAL)
Moveto [Codigo]
Locate IndexOrder by "Codigo" BestMatch AlinhE(PARAM_INICIAL)
While True
   If CodLivre<=AlinhE(PARAM_FINAL) and CodLivre>=AlinhE(PARAM_INICIAL)
      Then 
					 If CodLivre=[Codigo]
              Then CodLivre=Novo_Codigo()
                   Skip
              Else cod=CodLivre
                   Return cod
           EndIf
           If EOT()
              Then Loop
           EndIf
      Else Mensagem("Fim dos c¢digos livres!!")
           Return ""
   EndIf
EndWhile

EndProc

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

Moveto [Nome Fantasia EmitDest]
[Flag1]=""
[Flag2]=""
While True

  TECLA="Esc=Retornar  "
  
  If CHAVE=0
		 Then TECLA=TECLA+"PgDn=Finalizar  "
  EndIf
  
  MSGCAMPO=Field()

  SpeedBar "~Fun‡”es~"    :-33,
         Chr(060)+Chr(17) :-115,
         Chr(16)+Chr(062) :-116,
         "~?~"            :-94,
         "["+Chr(16)+"]"  :"PGDN"

  If not ChecaTipoDeRegistro()
     Then CHAVE=9
          QuitLoop
  EndIf

  Switch
    Case Field()="Endereco"               : MSGCAMPO="Exemplo(NFe): Logradouro,Numero,Complemento"
    Case Field()="CGC"                    : MSGCAMPO="Formatos: [ CPF ###.###.###-## ] ou [ CNPJ ##.###.###/####-## ]"
    Case Field()="IE"                     : MSGCAMPO="Informe o N§ ou ISENTO p/ Inscri‡„o Estadual"
    Case Field()="IE_ST"                  : MSGCAMPO="Informe a Inscri‡„o Estadual do Sust. Tribut rio"
    Case Field()="IM"                     : MSGCAMPO="Informe o N§ ou ISENTO p/ Inscri‡„o Municipal"
    Case Field()="RG"                     : MSGCAMPO="Informe o Registro Geral"
    Case Field()="CNAE"                   : MSGCAMPO="Informe o CNAE"
    Case Field()="ISUFRAMA"               : MSGCAMPO="Informe a Inscri‡„o SUFRAMA"
    Case Field()="NIRE"                   : MSGCAMPO="Informe o N§ do NIRE"
    Case Field()="Endereco_Eletronico"    : MSGCAMPO="Endere‡o Eletr“nico"
    Case Field()="Pagina_Web"             : MSGCAMPO="Pagina na Internet"
    Case Field()="Flag3"                  : MSGCAMPO="ENTER=Prosseguir"
  EndSwitch
  
  If Field()="Cidade" Or
     Field()="UF"     Or
     Field()="Flag1"  Or
     Field()="Flag2"
     Then MSGCAMPO=MSGCAMPO+", [F1]Consultar tabela"
  EndIf

  Prompt TECLA

  Wait Field
  Until "ESC","ENTER","PGDN",
        -94,-33,-115,-116,-133,-134,
        "F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"

  If RetVal=-33
    Then Echo Normal
         Echo Off
        ShowPopup " Fun‡”es " CENTERED
         "F2  ~S~integra   "            : " Dados p/ Exporta‡„o Sintegra           " :"F2",
         "F3  SPE~D~/EFD   "            : " Dados p/ Exporta‡„o SPED Fiscal        " :"F3",
         "F4  R~e~spons vel"            : " Respons vel pelos Documentos Fiscais   " :"F4",
         "F5  ~N~ota Fiscal de Servi‡o" : " Nota Fiscal de Servi‡o                 " :"F5",
         "F6  ~A~bertura/Encerramento"  : " Dados p/ Termo de Abertura/Encerramento" :"F6",
         "F7  A~u~toriza‡„o XML"        : " Autorizados para obter XML das NF-e's  " :"F7",
         "~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=-94 : MsgTeclasPadrao()      
  Case RetVal=-115 Or RetVal=-116 :   
       CampoAnt=Field()
       Tecla_Funcao=RetVal
       Return
  Case RetVal="F1":
       If Field()="Cidade" Or
          Field()="UF"
          Then If CONSULTAF1()
                  Then If Field()="Cidade"
                          Then [UF  ]=Reg_ConsultaF1["UF"]
                               [Pais]=Reg_ConsultaF1["Pais"]
                       EndIf
               EndIf        
       EndIf
       
       If Field()="Flag1"
          Then Echo Normal
               Echo Off
               ShowPopup " Atividade " CENTERED
                "1 = Ind£stria                  " : " Ind£stria                     " : "INDUSTRIA",
                "2 = Com‚rcio                   " : " Com‚rcio                      " : "COMERCIO",
                "3 = Servi‡o                    " : " Servi‡o                       " : "SERVICO",
                "4 = Ind£stria/Com‚rcio         " : " Ind£stria e com‚rcio          " : "IND/COM",
                "5 = Com‚rcio/Servi‡o           " : " Com‚rcio e servi‡o            " : "COM/SERV",
                "6 = Industria/Com‚rcio/Servi‡o " : " Industria, com‚rcio e servi‡o " : "IND/COM/SERV"
               EndMenu
               To MenuVar
               Echo Off
               If MenuVar="CANCELAR" or MenuVar="Esc"
                   Then Loop
                   Else [Nome Fantasia Represent]=MenuVar
                        []=""
               EndIf
        EndIf

       If Field()="Flag2"
          Then Echo Normal
               Echo Off
               ShowPopup " Regime tribut rio " CENTERED
                "1 = Simples Nacional              " : " Simples Nacional                                          " : "1",
                "2 = Simples Nacional ESRB         " : " Simples Nacional - Exesso de sublimite de receita bruta   " : "2",
                "3 = D‚bito/Cr‚dito-Lucro Real     " : " D‚bito/Cr‚dito-Lucro Real                                 " : "3",
                "4 = D‚bito/Cr‚dito-Lucro Presumido" : " D‚bito/Cr‚dito-Lucro Presumido                            " : "4"
               EndMenu
               To MenuVar
               Echo Off
               If MenuVar="CANCELAR" or MenuVar="Esc"
                   Then Loop
                   Else Switch
                          Case MenuVar="1" : [Descricao da Area      ]="SIMPLES NACIONAL"
                                             [Descricao do Cobrador  ]="SN"
                          Case MenuVar="2" : [Descricao da Area      ]="SIMPLES NAC. ESRB"
                                             [Descricao do Cobrador  ]="SN ESRB"
                          Case MenuVar="3" : [Descricao da Area      ]="DEBITO/CREDITO"   
                                             [Descricao do Cobrador  ]="LUCRO REAL"
                          Case MenuVar="4" : [Descricao da Area      ]="DEBITO/CREDITO"   
                                             [Descricao do Cobrador  ]="LUCRO PRESUMIDO"
                        EndSwitch
                        []=""
               EndIf
       EndIf

	Case Retval="ESC":
			 Switch
			 Case Field()="Nome Fantasia EmitDest":
						If QuerDesfazer("")
							 Then If CHAVE=1
											 Then Del
											 Else Undo
										EndIf
										CHAVE=9
										QuitLoop
						EndIf
       Case Field()="Razao Social"                 : Moveto [Nome Fantasia EmitDest]	
       Case Field()="Contato"                      : Moveto [Razao Social]
       Case Field()="CEP"                          : Moveto [Contato]
       Case Field()="Endereco"                     : Moveto [CEP]
		   Case Field()="Bairro"                       : Moveto [Endereco]
			 Case Field()="Cidade"                       : Moveto [Bairro]
			 Case Field()="UF"                           : Moveto [Cidade]
			 Case Field()="Pais"                         : Moveto [UF]
			 Case Field()="Telefone"                     : Moveto [Pais]
			 Case Field()="Celular"                      : Moveto [Telefone]
			 Case Field()="Fax"                          : Moveto [Celular]
       Case Field()="Endereco_Eletronico"          : Moveto [Fax]
       Case Field()="Pagina_Web"                   : Moveto [Endereco_Eletronico]
			 Case Field()="CGC"                          : Moveto [Pagina_Web]
			 Case Field()="Tipo Pessoa"                  : Moveto [CGC]
			 Case Field()="IE"                           : Moveto [Tipo Pessoa]
			 Case Field()="IM"                           : Moveto [IE]
       Case Field()="IE_ST"                        : Moveto [IM]
       Case Field()="CNAE"                         : Moveto [IE_ST]
       Case Field()="NIRE"                         : Moveto [CNAE]
       Case Field()="ISUFRAMA"                     : Moveto [NIRE]
       Case Field()="Conta Contabil"               : Moveto [ISUFRAMA]
       Case Field()="Nome Fantasia Transport"      : Moveto [Conta Contabil]
			 Case Field()="Flag1"                        : Moveto [Nome Fantasia Transport]
			 Case Field()="Flag2"                        : Moveto [Flag1]
			 Case Field()="Flag3"                        : Moveto [Flag2]
			 OtherWise:
						Left
			 EndSwitch
	Case Retval="F2":
       NCAMPO=Field()
       EXP_RECEITA()
       Moveto Field NCAMPO
       Loop
	Case Retval="F3":
       NCAMPO=Field()
       SPED()
       Moveto Field NCAMPO
       Loop
  Case Retval="F4":
       NCAMPO=Field()
       DOCTO_FISCAIS()
       Moveto Field NCAMPO
       Loop
  Case Retval="F5":
       NCAMPO=Field()
       NFSE()
       Moveto Field NCAMPO
       Loop
  Case Retval="F6":
       NCAMPO=Field()
       TERMO_ABENC()
       Moveto Field NCAMPO
       Loop     
  Case Retval="F7": 
       Play "EMP_AUT"
       Loop     
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVE=0
          Then If Checa_Supervisor()
                  Then If QuerExcluir("desta empresa")
                          Then If Checa_Supervisor()
                                  Then EXCLUSAO()
                                       CHAVE=9
                                       DIGITA=False
                                       QuitLoop
                               EndIf
                       EndIf
               EndIf
       EndIf         
  Case Retval="PGDN" And CHAVE=0:
       GRAVA_EMPRESA()
       CHAVE=9
       Tecla_Funcao=""
       DIGITA=False
       ;Return     
       QuitLoop
  Case Retval="ENTER":
       [Data da Manutencao]=Today()
       [Hora da Manutencao]=Time()
       [Chapa             ] =  SYS_CHAPA_USUARIO

       Switch
       Case Field() = "Nome Fantasia EmitDest":
            If IsBlank([]) Then Loop EndIf
            Moveto [Razao Social]
       Case Field()="Razao Social":
            If IsBlank([]) Then Loop EndIf
            Moveto [Contato]
       Case Field()="Contato"  : Moveto [CEP]
       Case Field()="CEP"      : Moveto [Endereco]
            If Not Isblank([CEP]) And CHAVE = 1
               Then Busca_Cep([CEP])
                    [Endereco] = BUSCA_CEP_ENDERECO
                    [Bairro  ] = BUSCA_CEP_BAIRRO
                    [Cidade  ] = BUSCA_CEP_CIDADE
                    [UF      ] = BUSCA_CEP_UF
                    [Pais    ] = BUSCA_CEP_PAIS
                    Release Vars BUSCA_CEP_ENDERECO, BUSCA_CEP_BAIRRO, BUSCA_CEP_CIDADE, BUSCA_CEP_UF, BUSCA_CEP_PAIS
            EndIf
       Case Field()="Endereco" : Moveto [Bairro]     
       Case Field()="Bairro"   : Moveto [Cidade]  
       Case Field()="Cidade":
            If IsBlank([]) Then Loop EndIf                          
               Moveto [Uf]            
       Case Field() = "UF":
            If IsBlank([]) Then Loop EndIf                
            If Not IsBlank([Cidade])
                Then Moveto [Cidade]
                     Ativa_Lookup()
                     Moveto [Cidade]
                     Locate [Destinat->Cidade],[Destinat->UF]
                     If RetVal
                        Then VSD_Cidade=[Cidade ]
                             VSD_UF=[UF]
                             KeyPress "ESC"
                             Moveto "Destinat"
                             [Cidade]=VSD_Cidade
                             [UF]=VSD_UF
                             Moveto [Pais]                                             
                        Else Mensagem("Cidade n„o Cadastrada !")
                             VSD_Cidade=""                                 
                             KeyPress "ESC"
                             Moveto [Cidade]
                     EndIf
                     Echo Off                 
            EndIf 
       Case Field() = "Pais":
            If IsBlank([]) Then
               []="BRASIL"
            EndIf
            Moveto [Telefone]            
       Case Field()="Telefone" : Moveto [Celular      ]
       Case Field()="Celular"  : Moveto [Fax          ]
       Case Field()="Fax"      : Moveto [Endereco_Eletronico]
       Case Field()="Endereco_Eletronico" : Moveto [Pagina_Web]
            If Not IsBlank([Endereco_Eletronico])
               Then [Endereco_Eletronico]=Lower([Endereco_Eletronico])
            EndIf
       Case Field()="Pagina_Web"          : Moveto [CGC]
            If Not IsBlank([Pagina_Web])
               Then [Pagina_Web]=Lower([Pagina_Web])
            EndIf
       Case Field()="CGC":
            If IsBlank([]) Then Loop EndIf
            If Not Checa_CGC_CPF_Formatado([]) Then Loop EndIf
            Switch
               Case Search(".",[CGC])=4: [Tipo Pessoa]="FISICA"
               Case Search(".",[CGC])=3: [Tipo Pessoa]="JURIDICA"
            EndSwitch
            Moveto [IE]
       Case Field()="IE":
            If IsBlank([]) Then Loop EndIf
            If [Tipo Pessoa]="JURIDICA"
               Then If []<>"ISENTO" And []<>"NAOCONTRIBUINTE"
                       Then Aguarde("Validando IE")
                            If Not Valida_IE([],[UF])
                               Then LimpAguarde()
                                    Loop
                            EndIf
                            LimpAguarde()
                    EndIf
            EndIf
            Moveto [IM]
       Case Field()="IM"                  : Moveto [IE_ST]
       Case Field()="IE_ST"               : Moveto [CNAE]
       Case Field()="CNAE"                : Moveto [NIRE]
       Case Field()="NIRE"                : Moveto [ISUFRAMA]
       Case Field()="ISUFRAMA"            : Moveto [Conta Contabil]       
       Case Field()="Conta Contabil"      : Moveto [Nome Fantasia Transport]
       Case Field()="Nome Fantasia Transport" : Moveto [Flag1]
       Case Field()="Flag1":
            If IsBlank([Nome Fantasia Represent])
               Then Mensagem("Atividade inv lida ! [F1]Consultar")
                    Loop
            EndIf
            Moveto [Flag2]
       Case Field()="Flag2": 
            If IsBlank([Descricao do Cobrador])
               Then Mensagem("Regime inv lido ! [F1]Consultar")
                    Loop
            EndIf
            Moveto [Flag3]
       Case Field()="Flag3": 
            If CHAVE=1
              Then GRAVA_EMPRESA()
                   UnLockRecord
                   CHAVE=0
            EndIf

            TELA="TELA_IEST"
            Tecla_Funcao=TELA
            Return

       OtherWise:
            Right
       EndSwitch
  EndSwitch
EndWhile
EndProc   ; (Digita)

;*******************************************************************************
;* Rotina para Digitacao dos Itens . Tabela 2                                  *
;*******************************************************************************
Proc CHAVEE()

While True
  SpeedBar "~Fun‡”es~"      :-33,
           Chr(060)+Chr(17) :-115,
           Chr(16)+Chr(062) :-116,
           "~?~"            :-94,
           "["+Chr(16)+"]"  :"PGDN"

  Moveto "Empriest"   
    
  Moveto [UF]
  End Down        
    
  If IsLockRecord()
     Then Del
          Loop
     Else Del     
  EndIf
      
  Moveto [UF]
  End Down        

  Opcao_Ver     = False
  SetaCorRegistro("Editar")
  While True                                      

    If Field()="UF" 
       Then TECLA="Esc=Retornar  F1=Tabelas  PgDn=Finalizar  "
       Else TECLA="Esc=Retornar              PgDn=Finalizar  "     
    EndIf
    
    Switch
      Case Field()="UF"     : MSGCAMPO="Informe o Estado da Inscri‡„o Estadual ST"
      Case Field()="IE_ST"  : MSGCAMPO="Informe a Inscri‡„o Estadual Substitui‡Æo Tribut ria"
      OtherWise             : MSGCAMPO=Field()
    EndSwitch    
    
    Prompt TECLA
    
    Wait Field
    Until "ESC","ENTER","UP","PGDN",
          -94,-33,-115,-116,-133,-134,
          "F1","F2","F4","F5","F6","F7","F8","F9","F10","F11","F12"
    
    Switch
    Case RetVal=-33 : SemFuncoes()
    Case RetVal=-94 : MsgTeclasPadrao()   
    Case RetVal="F1":
         If Field()="UF"
            Then CONSULTAF1()
         EndIf     
               
    Case Retval="PGDN": 
         Del
         Moveto "Destinat"
         GRAVA_EMPRESA()
         CHAVEE=9
         Tecla_Funcao=""
         DIGITA=False
         Return     

    Case RetVal=-115 Or RetVal=-116   :
         Del
         Tecla_Funcao=RetVal        
         CHAVEE=9
         Return         
       
    Case RetVal="ESC"  :  
         Del
         Tecla_Funcao=-116
         CHAVEE=9
         Return
       
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":  
         Del
         While True
           PAGINA("Empriest","MR")
           SEQIT=[UF]
                       
           Moveto "Empriest"
           [UF]=SEQIT          
           Moveto "Empriest"
           
           If EDITAR="S"
              Then CHAVEE=0
                   DIGITA_IEST()
                   Moveto "Empriest"  
                   QuitLoop
              Else If EXCLUIR="S"
                      Then If QuerExcluir("")
                              Then CHAVEE=8
                                   Del
                              Else UnLockRecord
                           EndIf
                      Else QuitLoop
                   EndIf
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop               
 
    Case Retval="ENTER":        
         Switch
           Case Field()="UF" : 
                If IsBlank([])
                   Then Loop 
                EndIf
                SEQIT=[]
                Del
                Locate SEQIT
                If Retval
                   Then CHAVEE=0
                        SEQIT=[]
                   Else CHAVEE=1
                        End Down
                        [UF]=SEQIT
                        UnLockRecord
                        Locate SEQIT
                EndIf
                DIGITA_IEST()
                QuitLoop            
         EndSwitch                     
    EndSwitch
  EndWhile
EndWhile

EndProc ;CHAVEE()

;*******************************************************************************
;* Rotina para Digitacao Item                                                  *
;*******************************************************************************
Proc DIGITA_IEST()
private Desfazer

Moveto "Empriest"
While True

  ClearSpeedBar

  Moveto [IE_ST]
  SetaCorRegistro("Editar")
  While True                                      
    
    If Field()="UF" 
       Then TECLA=" Esc=Retornar  F1=Tabelas"
       Else TECLA=" Esc=Retornar "     
    EndIf   

    Switch
      Case Field()="UF"     : MSGCAMPO="Informe o Estado da Inscri‡„o Estadual ST"
      Case Field()="IE_ST"  : MSGCAMPO="Informe a Inscri‡„o Estadual Substitui‡Æo Tribut ria"
      OtherWise             : MSGCAMPO=Field()
    EndSwitch
    
    Prompt TECLA
    Wait Field
         Until "ESC","ENTER","HOME","UP","PGUP","PGDN","PGUP", "F1"

    Switch
     Case RetVal="F1":                                       
          If Field()="UF"
             Then CONSULTAF1()
          EndIf                      
     Case Retval="ENTER":                                                    
          Switch                       
            Case Field()="IE_ST"    : If IsBlank([])
                                         Then Mensagem("Informe a Inscri‡„o Estadual Substitui‡„o Tribut ria para o estado de "+[UF]+"!")
                                              Loop 
                                         Else Aguarde("Validando IE")
                                              UnLockRecord  
                                              Return
                                              LimpAguarde()
                                      EndIf   
          EndSwitch
     Case Retval="ESC":         
          Switch
            Case Field()="IE_ST"  :  If CHAVEE=1
                                        Then If QuerDesfazer("")
                                                Then Desfazer=True
                                                     Del
                                                Else Desfazer=False
                                                     Loop
                                              EndIf
                                        Else Desfazer=True  
                                     EndIf
                                     If Desfazer
                                        Then Moveto "Destinat"
                                             Moveto [Codigo]
                                             ResyncKey
                                             Return
                                     EndIf  
                                     UnLockRecord    
          EndSwitch
    EndSwitch
  EndWhile
EndWhile

EndProc    ;  (DIGITA_IEST)

;*******************************************************************************
;* Grava Registro                                                              *
;*******************************************************************************
Proc GRAVA_EMPRESA()
UnLockRecord
FormKey

Moveto "Empresas"
Moveto [Codigo da Empresa]
Locate CODIGO
If Not RetVal
   Then End Down
        [Codigo da Empresa]=[Destinat->Codigo]
EndIf
[Nome Fantasia Empresa ]=[Destinat->Nome Fantasia EmitDest ]
[Razao Social Empresa  ]=[Destinat->Razao Social           ]
[Endereco Empresa      ]=[Destinat->Endereco               ]
[Bairro Empresa        ]=[Destinat->Bairro                 ]
[CEP Empresa           ]=[Destinat->CEP                    ]
[Cidade Empresa        ]=[Destinat->Cidade                 ]
[UF Empresa            ]=[Destinat->UF                     ]
[CGC Empresa           ]=[Destinat->CGC                    ]
[IE Empresa            ]=[Destinat->IE                     ]
[Telefone Empresa      ]=[Destinat->Telefone               ]
[Telex Empresa         ]=[Destinat->Telex                  ]
[Fax Empresa           ]=[Destinat->Fax                    ]
[Contato Empresa       ]=[Destinat->Contato                ]
[Conta Contabil Empresa]=[Destinat->Conta Contabil         ]
[Atividade             ]=[Destinat->Nome Fantasia Represent]
[Tipo da Empresa       ]=[Destinat->Descricao da Area      ]
[Tributacao_Regime     ]=[Destinat->Descricao do Cobrador  ]
[NIRE                  ]=[Destinat->NIRE                   ]
UnLockRecord

Moveto "Destinat"
FormKey
LockRecord
EndProc

;*******************************************************************************
;* Exclusao de Registros                                                       *
;*******************************************************************************
Proc EXCLUSAO()
If not ChecaTipoDeRegistro()
   Then Return
EndIf

UnLockRecord
FormKey

Moveto "\\Sistemas\\Icms_Ipi\\ReceitaE"
Moveto [Codigo da Empresa]
Locate CODIGO
If RetVal
   Then Del
EndIf

Moveto "\\Sistemas\\Icms_Ipi\\RespDoct"
Moveto [Codigo da Empresa]
Locate CODIGO
If RetVal
   Then Del
EndIf

Moveto "\\Sistemas\\Icms_Ipi\\Dadsped"
Moveto [Codigo da Empresa]
Locate CODIGO
If RetVal
   Then Del
EndIf

Moveto "Empriest"
Moveto [Codigo da Empresa]
Locate CODIGO
If RetVal
   Then While CODIGO=[Codigo da Empresa]
          Del
        EndWhile
EndIf

Moveto "Empresas"
Moveto [Codigo da Empresa]
Locate CODIGO
If RetVal
   Then Del
EndIf

Moveto "Destinat"
Grava_LogEx("Empresa")
Del
FormKey
EndProc  ; (Exclusao)

;*******************************************************************************
;* Rotina entrada de dados para exportacao                                     *
;*******************************************************************************
Proc SD_EXP_RECEITA(Disparo,Campo,Evento,Elemento)
Temp=True
MSGCAMPO=""
TECLA=""

If INICIO_DIALOG
   Then Campo="Contato"
        INICIO_DIALOG=False
EndIf
If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9:
          Temp=False
     Case Evento["KeyCode"] = 27:
          Switch
            Case Campo="Contato"         : CancelDialog
            ;Case Campo="Logradouro"      : Campo= "Contato"
            ;Case Campo="Numero"          : Campo= "Logradouro"
            ;Case Campo="Complemento"     : Campo= "Numero"
            ;Case Campo="Bairro"          : Campo="Complemento"
            ;Case Campo="Cep"             : Campo="Bairro"
            ;Case Campo="Municipio"       : Campo="Cep"
            ;Case Campo="Uf"              : Campo="Municipio"
            ;Case Campo="Telefone"        : Campo="Uf"
            ;Case Campo="Fax"             : Campo="Telefone"
            ;Case Campo="Inscricao"       : Campo="Fax"
            ;Case Campo="Cgc"             : Campo="Inscricao"
            Case Campo="Convenio"        : Campo="Contato"
            Case Campo="Natureza"        : Campo="Convenio"
            ;Case Campo="InscMunicipal"   : Campo="Natureza"
          EndSwitch
          TEMP=False
     Case Evento["KeyCode"] = 13:
          Switch
            Case Campo="Razao_Social":
                 VSD_Razao = ControlValue("Razao_Social")
                 Campo="Contato"
            Case Campo="Contato":
                 VSD_Contato = ControlValue("Contato")
            ;     Campo="Logradouro"
            ;Case Campo="Logradouro":
            ;     VSD_Logradouro = ControlValue("Logradouro")
            ;     Campo="Numero"
            ;Case Campo="Numero":
            ;     VSD_Numero = ControlValue("Numero")
            ;     Campo="Complemento"
            ;Case Campo="Complemento":
            ;     VSD_Complemento = ControlValue("Complemento")
            ;     Campo="Bairro"
            ;Case Campo="Bairro":
            ;     VSD_Bairro = ControlValue("Bairro")
            ;     Campo="Cep"
            ;Case Campo="Cep":
            ;     VSD_Cep = ControlValue("Cep")
            ;     Campo="Municipio"
            ;Case Campo="Municipio":
            ;     VSD_Municipio = ControlValue("Municipio")
            ;     Campo="Uf"
            ;Case Campo="Uf":
            ;     VSD_Uf = ControlValue("Uf")
            ;     Campo="Telefone"
            ;Case Campo="Telefone":
            ;     VSD_Telefone = ControlValue("Telefone")
            ;     Campo="Fax"
            ;Case Campo="Fax":
            ;     VSD_Fax = ControlValue("Fax")
            ;     Campo="Inscricao"
            ;Case Campo="Inscricao":
            ;     VSD_Inscricao = ControlValue("Inscricao")
            ;     Campo="Cgc"
            ;Case Campo="Cgc":
            ;     VSD_Cgc = ControlValue("Cgc")
            ;     Campo="InscMunicipal"
            ;Case Campo="InscMunicipal":
            ;     VSD_InscMunicipal = ControlValue("InscMunicipal")
         ;;;;     Campo="Emite_NF"
         ;;;Case Campo="Emite_NF":
         ;;;     VSD_Emite_NF = ControlValue("Emite_NF")
         ;;;     Campo="Emite_ECF"
         ;;;Case Campo="Emite_ECF":
         ;;;     VSD_Emite_ECF = ControlValue("Emite_ECF")
         ;;;     If VSD_Emite_ECF="S"
         ;;;        Then Campo="Serie_ECF"
         ;;;        Else VSD_Serie_ECF=""
         ;;;             Campo="Convenio"
         ;;;     EndIf
         ;;;Case Campo="Serie_ECF":
         ;;;     VSD_Serie_ECF = ControlValue("Serie_ECF")
                 Campo="Convenio"
            Case Campo="Convenio":
                 VSD_Convenio = ControlValue("Convenio")
                 If Not IsBlank(VSD_Convenio)
                    Then Campo="Natureza"
                 EndIf
            Case Campo="Natureza":
                 VSD_Natureza = ControlValue("Natureza")
                 If Not IsBlank(VSD_Natureza)
                    Then AcceptDialog
                 EndIf
          EndSwitch
          Temp=False
     Case Evento["KeyCode"] = -81:
          AcceptDialog
   EndSwitch
EndIf

SelectControl Campo
TECLA=" Esc=Retornar  "
Switch
  ;Case Campo="Cgc" Or
       ;Campo="Numero" Or
       ;Campo="Inscricao" Or
       ;Campo="Telefone" Or
       ;Campo="Cep" Or
       ;Campo="Fax":
       ;MSGCAMPO="Informe sem formata‡„o"
  OtherWise:
       MSGCAMPO=""
EndSwitch
If CHAVEE=0
    Then TECLA=TECLA+"PgDn=Finalizar  "
EndIf

MontaRodapeSD(MSGCAMPO, TECLA)

RefreshDialog
Return Temp
EndProc  ; (Inf_Receita)

;*******************************************************************************
;* Dados p/ receita estadual - Geracao de Disco Icms Convevio 57/95            *
;*******************************************************************************
Proc EXP_RECEITA()
UnLockRecord
FormKey

Moveto "\\Sistemas\\Icms_Ipi\\ReceitaE"
Moveto [Codigo da Empresa]
Locate [Destinat->Codigo]
If Not Retval
   Then CHAVEE=1
        End Down
        [Codigo da Empresa ]=[Destinat->Codigo]
   Else CHAVEE=0
EndIf
[Nome do Contribuinte]=[Destinat->Razao Social]
;[Bairro              ]=[Destinat->Bairro      ]
;[Municipio           ]=[Destinat->Cidade      ]
;[Unidade da Federacao]=[Destinat->Uf          ]

Ler_Gravar_EXP_RECEITA("Ler")
INICIO_DIALOG=True
ShowDialog "Dados p/ exporta‡„o Sintegra" Proc "SD_EXP_RECEITA"
   Trigger "OPEN","ARRIVE"
    Key "TAB","ReverseTab","ENTER","ESC","ClearArea","PGDN"
   @ 06,01 Height 12 Width 77

   Label  @ 00,00 "Responsavel - Contato" For "Contato"
   Accept @ 01,01 Width 35 "A28" Picture "!*!" Tag "Contato" To VSD_Contato

   ;Label  @ 02,00 "Logradouro" For "Logradouro"
   ;Accept @ 03,01 Width 36 "A34" Picture "!*!" Tag "Logradouro" To VSD_Logradouro

   ;Label  @ 02,38 "N§" For "Numero"
   ;Accept @ 03,38 Width 08 "A05" Picture "#*#" Tag "Numero" To VSD_Numero

   ;Label  @ 02,47 "Complemento" For "Complemento"
   ;Accept @ 03,47 Width 27 "A25" Picture "!*!" Tag "Complemento" To VSD_Complemento

   ;Label  @ 04,00 "Bairro" For "Bairro"
   ;Accept @ 05,01 Width 19 "A15" Picture "!*!" Tag "Bairro" To VSD_Bairro

   ;Label  @ 04,21 "Cep" For "Cep"
   ;Accept @ 05,21 Width 13 "A08" Picture "#*#" Tag "Cep" To VSD_Cep
   
   ;Label  @ 04,35 "Cidade" For "Municipio"
   ;Accept @ 05,35 Width 33 "A30" Picture "!*!" Tag "Municipio" To VSD_Municipio

   ;Label  @ 04,71 "Uf" For "Uf"
   ;Accept @ 05,69 Width 05 "A02" Picture "!*!" Tag "Uf" To VSD_Uf

   ;Label  @ 06,00 "Telefone" For "Telefone"
   ;Accept @ 07,01 Width 14 "A12" Picture "#*#" Tag "Telefone" To VSD_Telefone

   ;Label  @ 06,16 "Fax" For "Fax"
   ;Accept @ 07,16 Width 13 "A10" Picture "#*#" Tag "Fax" To VSD_Fax

   ;Label  @ 06,30 "Insc. Estadual" For "Inscricao"
   ;Accept @ 07,30 Width 22 "A14" Picture "!*!" Tag "Inscricao" To VSD_Inscricao

   ;Label  @ 06,53 "Cgc/Cpf" For "Cgc"
   ;Accept @ 07,53 Width 21 "A14" Picture "#*#" Tag "Cgc" To VSD_Cgc

   ;Label  @ 08,00 "Insc.Municipal" For "InscMunicipal"
   ;Accept @ 09,01 Width 22 "A14" Picture "!*!" Tag "InscMunicipal" To VSD_InscMunicipal

;;;Label  @ 08,16 "Emite ECF" For "Emite_ECF"
;;;@ 09,21 ?? "(S/N)"
;;;Accept @ 09,17 Width 04 "A1" Picture "S,N" Tag "Emite_ECF" To VSD_Emite_ECF
;;;
;;;Label  @ 08,30 "N§ Serie Fabrica‡„o ECF" For "Serie_ECF"
;;;Accept @ 09,31 Width 18 "A15" Picture "!*!" Tag "Serie_ECF" To VSD_Serie_ECF
;;;
   Label  @ 03,00 "Convenio  : " For "Convenio"
   Label  @ 03,17 "1-Convenio 31/99 | 2-Convenio xx/02 | 3-Convenio 76/04" For "Convenio"
   Accept @ 03,12 Width 04 "A1" Picture "1,2,3" Tag "Convenio" To VSD_Convenio

   Label  @ 04,00 "Natureza  : " For "Natureza"
   Accept @ 04,12 Width 04 "A1" Picture "1,2,3" Tag "Natureza" To VSD_Natureza
   Label  @ 04,17 "1 - Interestadual somente operacao sujeitas ao regime de" For "Natureza"
   Label  @ 05,17 "    Substituicao Tributaria" For "Natureza"
   Label  @ 06,17 "2 - Interestadual operacao com ou sem Substituicao Tribu" For "Natureza"
   Label  @ 07,17 "    taria" For "Natureza"
   Label  @ 08,17 "3 - Totalidade das operacoes do informante" For "Natureza"

EndDialog
If RetVal
   Then Ler_Gravar_EXP_RECEITA("Gravar")
EndIf

Moveto "Destinat"
FormKey
LockRecord
EndProc  ;  (Receita_Dados)

;*******************************************************************************
;* Dados p/ doctos fiscais                                                     *
;*******************************************************************************
Proc Ler_Gravar_EXP_RECEITA(opcao)
private opcao
Switch
  Case opcao="Ler":
       VSD_Contato         = [Nome Contato        ]
       ;VSD_Logradouro      = [Logradouro          ]
       ;VSD_Numero          = [Numero              ]
       ;VSD_Complemento     = [Complemento         ]
       ;VSD_Bairro          = [Bairro              ]
       ;VSD_Cep             = [Cep                 ]
       ;VSD_Municipio       = [Municipio           ]
       ;VSD_Uf              = [Unidade da Federacao]
       ;VSD_Telefone        = [Telefone            ]
       ;VSD_Fax             = [Fax                 ]
       ;VSD_Cgc             = [Cgc                 ]
       ;VSD_Inscricao       = [Inscricao Estadual  ]
       ;VSD_InscMunicipal   = [Inscricao Municipal ]
       VSD_Convenio        = [Codigo do Convenio  ]
       VSD_Natureza        = [Codigo de Operacao  ]
    ;;;VSD_Emite_ECF       = [Emite ECF pelo Sistema]
    ;;;VSD_Serie_ECF       = [Numero Serie Fabricacao]
  Case opcao="Gravar":
       [Nome Contato         ] = Completa(VSD_Contato,28," ")
       ;[Logradouro           ] = Completa(VSD_Logradouro,34," ")
       ;[Numero               ] = Alinhm(VSD_Numero,5)
       ;[Complemento          ] = Completa(VSD_Complemento,22," ")
       ;[Bairro               ] = Completa(VSD_Bairro,15," ")
       ;[Cep                  ] = VSD_Cep
       ;[Municipio            ] = Completa(VSD_Municipio,30," ")
       ;[Unidade da Federacao ] = VSD_Uf
       ;[Telefone             ] = Alinhm(VSD_Telefone,12)
       ;[Fax                  ] = Alinhm(VSD_Fax,10)
       ;[Cgc                  ] = Alinhm(VSD_Cgc,14)
;;;;;;;[Inscricao Estadual   ] = Alinhm(VSD_Inscricao,14)
       ;[Inscricao Estadual   ] = Completa(VSD_Inscricao,14," ")
       ;[Inscricao Municipal  ] = Completa(VSD_InscMunicipal,14," ")
       [Codigo do Convenio   ] = Completa(VSD_Convenio,1," ")
       [Codigo de Operacao   ] = Completa(VSD_Natureza,1," ")
    ;;;[Emite NF pelo Sistema] = VSD_Emite_NF
    ;;;[Emite ECF pelo Sistema] = VSD_Emite_ECF
    ;;;[Numero Serie Fabricacao] = VSD_Serie_ECF
       UnLockRecord
EndSwitch
EndProc

;*******************************************************************************
;* Rotina para verificar valores de campos                                     *
;*******************************************************************************
Proc Ajusta_Campo(PARAM)
             
If PARAM="Todos" Or PARAM="IncentivadorCultural"
   Then Switch
          Case VSD_IncentivadorCultural = "1" : VSD_NOMIncentivadorCultural  = "SIM (INCENTIVADOR)"
          Case VSD_IncentivadorCultural = "2" : VSD_NOMIncentivadorCultural  = "NAO (NAO INCENTIVADOR)"
          OtherWise                           : VSD_IncentivadorCultural     = ""
                                                VSD_NOMIncentivadorCultural  = ""
        EndSwitch                  
EndIf 
If PARAM="Todos" Or PARAM = "RegimeEspecialTributacao"  
   Then Switch
          Case VSD_RegimeEspecialTributacao="1" : VSD_NOMRegimeEspecialTributacao = "MICROEMPRESA MUNICIPAL" 
          Case VSD_RegimeEspecialTributacao="2" : VSD_NOMRegimeEspecialTributacao = "ESTIMATIVA"
          Case VSD_RegimeEspecialTributacao="3" : VSD_NOMRegimeEspecialTributacao = "SOCIEDADE DE PROFISSIONAIS"
          Case VSD_RegimeEspecialTributacao="4" : VSD_NOMRegimeEspecialTributacao = "COOPERATIVA"
          Case VSD_RegimeEspecialTributacao="5" : VSD_NOMRegimeEspecialTributacao = "MICRO EMPRESµRIO INDIVIDUAL (MEI)"
          Case VSD_RegimeEspecialTributacao="6" : VSD_NOMRegimeEspecialTributacao = "MICRO EMPRESµRIO E EMPRESA DE PEQUENO PORTE (ME EPP)"
          OtherWise                             : VSD_RegimeEspecialTributacao    = ""
                                                  VSD_NOMRegimeEspecialTributacao = ""
        EndSwitch
EndIf

If PARAM="Todos" Or PARAM="NaturezaTributacao"
   Then Switch
          Case VSD_NaturezaTributacao = "1" : VSD_NOMNaturezaTributacao  = "SIMPLES NACIONAL"
          Case VSD_NaturezaTributacao = "2" : VSD_NOMNaturezaTributacao  = "FIXO"
          Case VSD_NaturezaTributacao = "3" : VSD_NOMNaturezaTributacao  = "DEPàSITO EM JUIZO"
          Case VSD_NaturezaTributacao = "4" : VSD_NOMNaturezaTributacao  = "EXIGIBILIDADE SUSPENSA POR DECISÇO JUDICIAL"
          Case VSD_NaturezaTributacao = "5" : VSD_NOMNaturezaTributacao  = "EXIGIBILIDADE SUSPENSA POR PROCEDIMENTO ADMINISTRATIVO"
          Case VSD_NaturezaTributacao = "6" : VSD_NOMNaturezaTributacao  = "ISEN€ÇO PARCIAL"
          OtherWise                         : VSD_NaturezaTributacao     = ""
                                              VSD_NOMNaturezaTributacao  = ""
        EndSwitch
EndIf
If PARAM="Todos" Or PARAM="IncentivoFiscal"
   Then Switch
          Case VSD_IncentivoFiscal = "1" : VSD_NOMIncentivoFiscal  = "SIM"
          Case VSD_IncentivoFiscal = "2" : VSD_NOMIncentivoFiscal  = "NAO"
          OtherWise                      : VSD_IncentivoFiscal     = ""
                                           VSD_NOMIncentivoFiscal  = ""
        EndSwitch            
EndIf
If PARAM="Todos" Or PARAM="CodigoTributacaoMunicipio"
   Then ;Switch
        ; Case VSD_CodigoTributacaoMunicipio = "4445" : VSD_NOMCodigoTributacaoMunicipio  = ""
        ; OtherWise                                   : VSD_CodigoTributacaoMunicipio     = ""
        ;                                               VSD_NOMCodigoTributacaoMunicipio  = ""
        ;EndSwitch
EndIf
If PARAM="Todos" Or PARAM="ExigibilidadeISS" 
   Then Switch
          Case VSD_ExigibilidadeISS = "1" : VSD_NOMExigibilidadeISS  = "EXIGIVEL"
          Case VSD_ExigibilidadeISS = "2" : VSD_NOMExigibilidadeISS  = "NÇO INCIDÒNCIA"
          Case VSD_ExigibilidadeISS = "3" : VSD_NOMExigibilidadeISS  = "ISEN€ÇO"
          Case VSD_ExigibilidadeISS = "4" : VSD_NOMExigibilidadeISS  = "EXPORTA€¶O"
          Case VSD_ExigibilidadeISS = "5" : VSD_NOMExigibilidadeISS  = "IMUNIDADE"
          Case VSD_ExigibilidadeISS = "6" : VSD_NOMExigibilidadeISS  = "EXIGIBILIDADE SUSPENSA POR DECISÇO JUDICIAL"
          Case VSD_ExigibilidadeISS = "7" : VSD_NOMExigibilidadeISS  = "EXIGIBILIDADE SUSPENSA POR PROCEDIMENTO ADMINISTRATIVO"
          OtherWise                       : VSD_ExigibilidadeISS     = ""
                                            VSD_NOMExigibilidadeISS  = ""
        EndSwitch
EndIf
If PARAM="Todos" Or PARAM="Operacao"
   Then Switch
         Case VSD_Operacao = "A" : VSD_NOMOperacao  = "SEM DEDU€ÇO"
         Case VSD_Operacao = "B" : VSD_NOMOperacao  = "COM DEDU€ÇO/MATERIAIS"
         Case VSD_Operacao = "C" : VSD_NOMOperacao  = "IMUNE/ISENTA DE ISSQN"
         Case VSD_Operacao = "D" : VSD_NOMOperacao  = "DEVOLU€ÇO/SIMPLES REMESSA"
         Case VSD_Operacao = "J" : VSD_NOMOperacao  = "INTERMEDIA€ÇO"
         OtherWise               : VSD_Operacao     = ""
                                   VSD_NOMOperacao  = ""
       EndSwitch 
EndIf
If PARAM="Todos" Or PARAM="IssRetido" 
   Then Switch
          Case VSD_IssRetido = "1" : VSD_NOMIssRetido  = "SIM"
          Case VSD_IssRetido = "2" : VSD_NOMIssRetido  = "NAO"
          OtherWise                : VSD_IssRetido     = ""
                                     VSD_NOMIssRetido  = ""
        EndSwitch   
EndIf

EndProc ;Ajusta_Campo()

;*******************************************************************************
;* Rotina entrada de dados doctos fiscais                                      *
;*******************************************************************************
Proc SD_NFSE(Disparo,Campo,Evento,Elemento)
Temp=True
MSGCAMPO=""
TECLA=""
If INICIO_DIALOG
   Then Campo="TG_IncentivadorCultural"
        INICIO_DIALOG=False
EndIf
If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Switch
      Case Evento["KeyCode"] = 9:
           Temp=False
      Case Evento["KeyCode"] = -59:
           If Campo="TG_IncentivadorCultural"      Or 
              Campo="TG_RegimeEspecialTributacao"  Or  
              Campo="TG_NaturezaTributacao"        Or
              Campo="TG_IncentivoFiscal"           Or
              Campo="TG_ExigibilidadeISS"          Or 
              Campo="TG_Operacao"                  Or                   
              Campo="TG_IssRetido"                 
              Then Switch
                    Case Campo="TG_IncentivadorCultural"       :
                    ShowPopup "Incentivador Cultural" CENTERED
                      "~1~ Sim    ": " Sim (incentivador)         " : "1",
                      "~2~ NÆo    ": " NÆo (nÆo incentivador)     " : "2",
                      separator,        
                      "~C~ancelar  ": " Cancelar a Opera‡„o       " : "CANCELAR"
                    EndMenu
                    To MenuVar 
                    
                    Case Campo="TG_RegimeEspecialTributacao"  :
                    ShowPopup "Regime Especial Tributa‡Æo" CENTERED
                      "~1~ Microempresa municipal                              ": "Microempresa municipal"                               : "1",
                      "~2~ Estimativa                                          ": "Estimativa"                                           : "2",
                      "~3~ Sociedade de profissionais                          ": "Sociedade de profissionais"                           : "3",
                      "~4~ Cooperativa                                         ": "Cooperativa"                                          : "4",
                      "~5~ Micro empres rio individual (MEI)                   ": "Micro empres rio individual (MEI)"                    : "5",
                      "~6~ Micro empres rio e empresa de pequeno porte (ME EPP)": "Micro empres rio e empresa de pequeno porte (ME EPP)" : "6",
                      separator,        
                      "~C~ancelar  ": " Cancelar a Opera‡„o       " : "CANCELAR"
                    EndMenu
                    To MenuVar  
                    
                    Case Campo="TG_NaturezaTributacao"        :
                    ShowPopup "Natureza da Tributa‡Æo" CENTERED
                      "~1~ Simples Nacional    "                                   : "Simples Nacional"                                       : "1",
                      "~2~ Fixo                "                                   : "Fixo"                                                   : "2",
                      "~3~ Dep¢sito em juizo   "                                   : "Dep¢sito em juizo"                                      : "3",
                      "~4~ Exigibilidade suspensa por decisÆo judicial"            : "Exigibilidade suspensa por decisÆo judicial"            : "4",
                      "~5~ Exigibilidade suspensa por procedimento administrativo" : "Exigibilidade suspensa por procedimento administrativo" : "5",
                      "~6~ Isen‡Æo parcial"                                        : "Isen‡Æo parcial"                                        : "6",
                      separator,        
                      "~C~ancelar  ": " Cancelar a Opera‡„o       " : "CANCELAR"
                    EndMenu
                    To MenuVar
                     
                    Case Campo="TG_IncentivoFiscal"           :
                    ShowPopup "Incentivador Fiscal" CENTERED
                      "~1~ Sim    ": " Sim                        " : "1",
                      "~2~ NÆo    ": " NÆo                        " : "2",
                      separator,        
                      "~C~ancelar  ": " Cancelar a Opera‡„o       " : "CANCELAR"
                    EndMenu
                    To MenuVar
                    
                    Case Campo="TG_ExigibilidadeISS"          : 
                    ShowPopup "Exigibilidade ISS" CENTERED
                      "~1~ Exigivel                                               " : "Exigivel"                                               : "1",
                      "~2~ NÆo incidˆncia                                         " : "NÆo incidˆncia"                                         : "2",
                      "~3~ Isen‡Æo                                                " : "Isen‡Æo"                                                : "3",
                      "~4~ Exporta‡Æo                                             " : "Exporta‡Æo"                                             : "4",
                      "~5~ Imunidade                                              " : "Imunidade"                                              : "5",
                      "~6~ Exigibilidade suspensa por decisÆo judicial            " : "Exigibilidade suspensa por decisÆo judicial"            : "6",
                      "~7~ Exigibilidade suspensa por procedimento administrativo " : "Exigibilidade suspensa por procedimento administrativo" : "7",
                      separator,        
                      "~C~ancelar                                                 " : " Cancelar a Opera‡„o                                  " : "CANCELAR"
                    EndMenu
                    To MenuVar
                    
                    Case Campo="TG_Operacao"                  :
                    ShowPopup "Opera‡Æo" CENTERED
                      "~A~ Sem dedu‡Æo                             " : "Sem dedu‡Æo"               : "A",
                      "~B~ Com dedu‡Æo/Materiais                   " : "Com dedu‡Æo/Materiais"     : "B",
                      "~C~ Imune/Isenta de ISSQN                   " : "Imune/Isenta de ISSQN"     : "C",
                      "~D~ Devolu‡Æo/Simples remessa               " : "Devolu‡Æo/Simples remessa" : "D",
                      "~J~ Intermedia‡Æo                           " : "Intermedia‡Æo"             : "J",
                      separator,        
                      "~C~ancelar                                  " : " Cancelar a Opera‡„o"      : "CANCELAR"
                    EndMenu
                    To MenuVar
                       
                    Case Campo="TG_IssRetido"                 :
                    ShowPopup "ISS Retido" CENTERED
                      "~1~ Sim    ": " Sim                        " : "1",
                      "~2~ NÆo    ": " NÆo                        " : "2",
                      separator,        
                      "~C~ancelar  ": " Cancelar a Opera‡„o       " : "CANCELAR"
                    EndMenu
                    To MenuVar 
                  EndSwitch
                  
                  If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                      Then Switch  
                            Case Campo="TG_IncentivadorCultural"      : VSD_IncentivadorCultural       = MenuVar
                            Case Campo="TG_RegimeEspecialTributacao"  : VSD_RegimeEspecialTributacao   = MenuVar
                            Case Campo="TG_NaturezaTributacao"        : VSD_NaturezaTributacao         = MenuVar
                            Case Campo="TG_IncentivoFiscal"           : VSD_IncentivoFiscal            = MenuVar
                            Case Campo="TG_ExigibilidadeISS"          : VSD_ExigibilidadeISS           = MenuVar
                            Case Campo="TG_Operacao"                  : VSD_Operacao                   = MenuVar
                            Case Campo="TG_IssRetido"                 : VSD_IssRetido                  = MenuVar
                          EndSwitch
                  EndIf
           EndIf          
      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="TG_IncentivadorCultural"      : CancelDialog
             Case Campo="TG_RegimeEspecialTributacao"  : Campo="TG_IncentivadorCultural" 
             Case Campo="TG_NaturezaTributacao"        : Campo="TG_RegimeEspecialTributacao"
             Case Campo="TG_IncentivoFiscal"           : Campo="TG_NaturezaTributacao"
             Case Campo="TG_CodigoTributacaoMunicipio" : Campo="TG_IncentivoFiscal" 
             Case Campo="TG_ExigibilidadeISS"          : Campo="TG_CodigoTributacaoMunicipio"
             Case Campo="TG_Operacao"                  : Campo="TG_ExigibilidadeISS"                   
             Case Campo="TG_IssRetido"                 : Campo="TG_Operacao"
           EndSwitch
           Temp=False
      Case Evento["KeyCode"] = 13:
        Switch
          Case Campo="TG_IncentivadorCultural"     : Campo="TG_RegimeEspecialTributacao"       
               VSD_IncentivadorCultural = ControlValue("TG_IncentivadorCultural")
               Ajusta_Campo("IncentivadorCultural")
          Case Campo="TG_RegimeEspecialTributacao"  : Campo="TG_NaturezaTributacao"
               VSD_RegimeEspecialTributacao = ControlValue("TG_RegimeEspecialTributacao")
               Ajusta_Campo("RegimeEspecialTributacao")
          Case Campo="TG_NaturezaTributacao"        : Campo="TG_IncentivoFiscal"
               VSD_NaturezaTributacao = ControlValue("TG_NaturezaTributacao")
               Ajusta_Campo("NaturezaTributacao")
          Case Campo="TG_IncentivoFiscal"       : Campo="TG_CodigoTributacaoMunicipio"
               VSD_IncentivoFiscal = ControlValue("TG_IncentivoFiscal")
               Ajusta_Campo("IncentivoFiscal")   
          Case Campo="TG_CodigoTributacaoMunicipio" : Campo="TG_ExigibilidadeISS"
               VSD_CodigoTributacaoMunicipio = ControlValue("TG_CodigoTributacaoMunicipio")
               ;Ajusta_Campo("CodigoTributacaoMunicipio")     
          Case Campo="TG_ExigibilidadeISS"          : Campo="TG_Operacao"
               VSD_ExigibilidadeISS = ControlValue("TG_ExigibilidadeISS") 
               Ajusta_Campo("ExigibilidadeISS")    
          Case Campo="TG_Operacao"                  : Campo="TG_IssRetido"
               VSD_Operacao = ControlValue("TG_Operacao")
               Ajusta_Campo("Operacao")
          Case Campo="TG_IssRetido"                 :
               VSD_IssRetido  = ControlValue("TG_IssRetido")
               Ajusta_Campo("IssRetido")
               AcceptDialog
        EndSwitch
        Temp=False
   Case Evento["KeyCode"] = -81:
        AcceptDialog
   EndSwitch
EndIf

SelectControl Campo
TECLA=" Esc=Retornar  "
Switch
  Case Campo="TG_IncentivadorCultural"      : MSGCAMPO="Incentivador Cultural"
  Case Campo="TG_RegimeEspecialTributacao"  : MSGCAMPO="Regime Especial Tributa‡Æo" 
  Case Campo="TG_NaturezaTributacao"        : MSGCAMPO="Natureza Tributa‡Æo"
  Case Campo="TG_IncentivoFiscal"           : MSGCAMPO="Incentivo Fiscal"
  Case Campo="TG_CodigoTributacaoMunicipio" : MSGCAMPO="C¢digo Tributa‡Æo do Municipio" 
  Case Campo="TG_ExigibilidadeISS"          : MSGCAMPO="Exigibilidade ISS"
  Case Campo="TG_Operacao"                  : MSGCAMPO="Opera‡Æo"                   
  Case Campo="TG_IssRetido"                 : MSGCAMPO="ISS Retido"
EndSwitch

If Campo<>"TG_CodigoTributacaoMunicipio" 
   Then TECLA=TECLA+"F1=Consulta  "
EndIf

MontaRodapeSD(MSGCAMPO, TECLA)

RefreshDialog
Return Temp
EndProc  ;SD_NFSE()

;*******************************************************************************
;* Dados p/ Nota Fiscal de Servi‡o                                             *
;*******************************************************************************
Proc NFSE()
UnLockRecord
FormKey

Moveto "\\Sistemas\\Cadastro\\Emprnfse"
Moveto [Codigo da Empresa]
Locate [Destinat->Codigo]
If Not Retval
   Then CHAVEF=1
        End Down
        [Codigo da Empresa] = [Destinat->Codigo]
   Else CHAVEF=0
        Ler_Gravar_EMPRNFSE("Ler")
        Ajusta_Campo("Todos")
EndIf

INICIO_DIALOG=True
ShowDialog "Nota Fiscal de Servi‡o" Proc "SD_NFSE"
   Trigger "OPEN","ARRIVE"
    Key "TAB","ReverseTab","ENTER","ESC","ClearArea","PGDN","F1"
   @ 03,07 Height 19 Width 66

   Label  @ 00,00 "Incentivador Cultural" For "TG_IncentivadorCultural"
   Accept @ 01,01 Width 4 "A1" Picture "1,2" Tag "TG_IncentivadorCultural" To VSD_IncentivadorCultural
   Accept @ 01,06 Width 28 "A25" Picture "!*!" Tag "TG_NOMIncentivadorCultural" To VSD_NOMIncentivadorCultural

   Label  @ 02,00 "Regime Especial Tributa‡Æo" For "TG_RegimeEspecialTributacao"
   Accept @ 03,01 Width 4 "A1" Picture "1,2,3,4,5,6" Tag "TG_RegimeEspecialTributacao" To VSD_RegimeEspecialTributacao
   Accept @ 03,06 Width 57 "A54" Picture "!*!" Tag "TG_NOMRegimeEspecialTributacao" To VSD_NOMRegimeEspecialTributacao

   Label  @ 04,00 "Natureza Tributa‡Æo" For "TG_NaturezaTributacao"
   Accept @ 05,01 Width 4 "A1" Picture "1,2,3,4,5,6" Tag "TG_NaturezaTributacao" To VSD_NaturezaTributacao
   Accept @ 05,06 Width 57 "A54" Picture "!*!" Tag "TG_NOMNaturezaTributacao" To VSD_NOMNaturezaTributacao
   
   Label  @ 06,00 "Incentivo Fiscal" For "TG_IncentivoFiscal"
   Accept @ 07,01 Width 4 "A1" Picture "1,2" Tag "TG_IncentivoFiscal" To VSD_IncentivoFiscal
   Accept @ 07,06 Width 7 "A3" Picture "!*!" Tag "TG_NOMIncentivoFiscal" To VSD_NOMIncentivoFiscal
   
   Label  @ 08,00 "Codigo Tributacao Municipio" For "TG_CodigoTributacaoMunicipio"
   Accept @ 09,01 Width 7 "A4" Picture "!*!" Tag "TG_CodigoTributacaoMunicipio" To VSD_CodigoTributacaoMunicipio
   ;Accept @ 09,09 Width 20 "A17" Picture "!*!" Tag "TG_NOMCodigoTributacaoMunicipio" To VSD_NOMCodigoTributacaoMunicipio
      
   Label  @ 10,00 "Exigibilidade ISS" For "TG_ExigibilidadeISS"
   Accept @ 11,01 Width 4 "A1" Picture "1,2,3,4,5,6,7" Tag "TG_ExigibilidadeISS" To VSD_ExigibilidadeISS
   Accept @ 11,06 Width 57 "A54" Picture "!*!" Tag "TG_NOMExigibilidadeISS" To VSD_NOMExigibilidadeISS
      
   Label  @ 12,00 "Opera‡Æo" For "TG_Operacao"
   Accept @ 13,01 Width 4 "A1" Picture "A,B,C,D,J" Tag "TG_Operacao" To VSD_Operacao
   Accept @ 13,06 Width 28 "A25" Picture "!*!" Tag "TG_NOMOperacao" To VSD_NOMOperacao
      
   Label  @ 14,00 "ISS Retido" For "TG_IssRetido"
   Accept @ 15,01 Width 4 "A1" Picture "1,2" Tag "TG_IssRetido" To VSD_IssRetido   
   Accept @ 15,06 Width 7 "A3" Picture "!*!" Tag "TG_NOMIssRetido" To VSD_NOMIssRetido   
   
EndDialog
If RetVal
   Then Ler_Gravar_EMPRNFSE("Gravar")
EndIf

Moveto "Destinat"
FormKey
LockRecord

EndProc ;NFSE()

;*******************************************************************************
;* Dados p/ doctos fiscais                                                     *
;*******************************************************************************
Proc Ler_Gravar_EMPRNFSE(opcao)
private opcao
Switch
  Case opcao="Ler":
       VSD_IncentivadorCultural      = [IncentivadorCultural     ] 
       VSD_RegimeEspecialTributacao  = [RegimeEspecialTributacao ] 
       VSD_NaturezaTributacao        = [NaturezaTributacao       ] 
       VSD_IncentivoFiscal           = [IncentivoFiscal          ] 
       VSD_CodigoTributacaoMunicipio = [CodigoTributacaoMunicipio] 
       VSD_ExigibilidadeISS          = [ExigibilidadeISS         ] 
       VSD_Operacao                  = [Operacao                 ] 
       VSD_IssRetido                 = [IssRetido                ]
  Case opcao="Gravar": 
       [IncentivadorCultural     ] = VSD_IncentivadorCultural 
       [RegimeEspecialTributacao ] = VSD_RegimeEspecialTributacao
       [NaturezaTributacao       ] = VSD_NaturezaTributacao
       [IncentivoFiscal          ] = VSD_IncentivoFiscal
       [CodigoTributacaoMunicipio] = VSD_CodigoTributacaoMunicipio
       [ExigibilidadeISS         ] = VSD_ExigibilidadeISS
       [Operacao                 ] = VSD_Operacao
       [IssRetido                ] = VSD_IssRetido
       UnLockRecord
EndSwitch

EndProc ;Ler_Gravar_EMPRNFSE()

;*******************************************************************************
;* Dados p/ doctos fiscais                                                     *
;*******************************************************************************
Proc DOCTO_FISCAIS()
UnLockRecord
FormKey

Moveto "\\Sistemas\\Icms_Ipi\\RespDoct"
Moveto [Codigo da Empresa]
Locate [Destinat->Codigo]
If Not Retval
   Then CHAVED=1
        End Down
        [Codigo da Empresa   ] = [Destinat->Codigo      ]
        [Razao Social Empresa] = [Destinat->Razao Social]
   Else CHAVED=0
EndIf

Ler_Gravar_DOCTO_FISCAIS("Ler")
INICIO_DIALOG=True
ShowDialog "Respons vel pelos documentos fiscais" Proc "SD_DOCTO_FISCAIS"
   Trigger "OPEN","ARRIVE"
    Key "TAB","ReverseTab","ENTER","ESC","ClearArea","PGDN"
   @ 14,01 Height 08 Width 49

   Label  @ 00,00 "Nome" For "Nome"
   Accept @ 01,01 Width 45 "A40" Picture "!*!" Tag "Nome" To VSD_Nome

   Label  @ 02,00 "Cargo na Empresa" For "Cargo"
   Accept @ 03,01 Width 45 "A40" Picture "!*!" Tag "Cargo" To VSD_Cargo

   Label  @ 04,00 "Cpf/Crc" For "Cpf"
   Accept @ 05,01 Width 23 "A20" Picture "!*!" Tag "Cpf" To VSD_Cpf

   Label  @ 04,25 "Telefone" For "Telefone"
   Accept @ 05,26 Width 20 "A15" Picture "!*!" Tag "Telefone" To VSD_Telefone

EndDialog
If RetVal
   Then Ler_Gravar_DOCTO_FISCAIS("Gravar")
EndIf

Moveto "Destinat"
FormKey
LockRecord
EndProc  ; (Docto_Fiscais)

;*******************************************************************************
;* Dados p/ doctos fiscais                                                     *
;*******************************************************************************
Proc Ler_Gravar_DOCTO_FISCAIS(opcao)
private opcao
Switch
  Case opcao="Ler":
       VSD_Nome    =[Nome do Responsavel    ]
       VSD_Cargo   =[Cargo da Empresa       ]
       VSD_Cpf     =[CPF/CRC                ]
       VSD_Telefone=[Telefone do Responsavel]
  Case opcao="Gravar":
       [Nome do Responsavel    ]=VSD_Nome
       [Cargo da Empresa       ]=VSD_Cargo
       [Cpf/Crc                ]=VSD_Cpf
       [Telefone do Responsavel]=VSD_Telefone
       UnLockRecord
EndSwitch
EndProc

;*******************************************************************************
;* Rotina entrada de dados doctos fiscais                                      *
;*******************************************************************************
Proc SD_DOCTO_FISCAIS(Disparo,Campo,Evento,Elemento)
Temp=True
MSGCAMPO=""
TECLA=""
If INICIO_DIALOG
   Then Campo="Nome"
        INICIO_DIALOG=False
EndIf
If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Switch
      Case Evento["KeyCode"] = 9:
           Temp=False
      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="Nome"    : CancelDialog
             Case Campo="Cargo"   : Campo="Nome"
             Case Campo="Cpf"     : Campo="Cargo"
             Case Campo="Telefone": Campo="Cpf"
           EndSwitch
           Temp=False
      Case Evento["KeyCode"] = 13:
        Switch
             Case Campo="Nome":
                  VSD_Nome = ControlValue("Nome")
                  Campo="Cargo"
             Case Campo="Cargo":
                  VSD_Cargo = ControlValue("Cargo")
                  Campo="Cpf"
             Case Campo="Cpf":
                  VSD_Cpf = ControlValue("Cpf")
                  Campo="Telefone"
             Case Campo="Telefone":
                  VSD_Telefone = ControlValue("Telefone")
                  AcceptDialog
        EndSwitch
        Temp=False
   Case Evento["KeyCode"] = -81:
        AcceptDialog
   EndSwitch
EndIf

SelectControl Campo
TECLA=" Esc=Retornar  "
Switch
  Case Campo="":
       MSGCAMPO=""
  OtherWise:
       MSGCAMPO=""
EndSwitch
If CHAVED=0
    Then TECLA=TECLA+"PgDn=Finalizar  "
EndIf

MontaRodapeSD(MSGCAMPO, TECLA)

RefreshDialog
Return Temp
EndProc  ; (SD_Docto_Fiscais)


;*******************************************************************************
;* Dados p/ Termo Abertura/Encerramento                                        *
;*******************************************************************************
Proc TERMO_ABENC()
UnLockRecord
FormKey

Moveto "CompEmp"
Moveto [Codigo da Empresa]
Locate [Destinat->Codigo]
If Not Retval
   Then CHAVED=1
        End Down
        [Codigo da Empresa   ] = [Destinat->Codigo      ]
   Else CHAVED=0
EndIf

Ler_Gravar_TERMO_ABENC("Ler")
INICIO_DIALOG=True
ShowDialog "Dados p/ termo de Abertura/Encerramento" Proc "SD_TERMO_ABENC"
   Trigger "OPEN","ARRIVE"
    Key "TAB","ReverseTab","ENTER","ESC","ClearArea","PGDN"
   @ 14,01 Height 08 Width 49

   Label  @ 00,00 "JUCEMG" For "Jucemg"
   Accept @ 01,01 Width 19 "A16" Picture "!*!" Tag "Jucemg" To VSD_Jucemg

   Label  @ 02,00 "Representante Legal" For "Representante"
   Accept @ 03,01 Width 43 "A40" Picture "!*!" Tag "Representante" To VSD_Representante

   Label  @ 04,00 "Data Registro na JUCEMG" For "Arquivado"
   Accept @ 05,01  Width 13 "D" picture "#[#];.##;.##[##]" Tag "Arquivado" to VSD_Arquivado

EndDialog
If RetVal
   Then Ler_Gravar_TERMO_ABENC("Gravar")
EndIf

Moveto "Destinat"
FormKey
LockRecord
EndProc  ; (TERMO_ABENC)

;*******************************************************************************
;* Dados p/ Termo Abertura/Encerramento                                        *
;*******************************************************************************
Proc Ler_Gravar_TERMO_ABENC(opcao)
private opcao
Switch
  Case opcao="Ler":
       VSD_Jucemg       =[Jucemg                 ]
       VSD_Representante=[Representante Legal    ]
       VSD_Arquivado    =[Arquivado              ]
  Case opcao="Gravar":
       [Jucemg                 ]=VSD_Jucemg
       [Representante Legal    ]=VSD_Representante
       [Arquivado              ]=VSD_Arquivado
       UnLockRecord
EndSwitch
EndProc

;*******************************************************************************
;* Dados p/ Termo Abertura/Encerramento                                        *
;*******************************************************************************
Proc SD_TERMO_ABENC(Disparo,Campo,Evento,Elemento)
Temp=True
MSGCAMPO=""
TECLA=""
If INICIO_DIALOG
   Then Campo="Jucemg"
        INICIO_DIALOG=False
EndIf
If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Switch
      Case Evento["KeyCode"] = 9:
           Temp=False
      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="Jucemg"        : CancelDialog
             Case Campo="Representante" : Campo="Jucemg"
             Case Campo="Arquivado"     : Campo="Representante"
           EndSwitch
           Temp=False
      Case Evento["KeyCode"] = 13:
        Switch
             Case Campo="Jucemg":
                  VSD_Jucemg = ControlValue("Jucemg")
                  Campo="Representante"
             Case Campo="Representante":
                  VSD_Representante=ControlValue("Representante")
                  Campo="Arquivado"
             Case Campo="Arquivado":
                  VSD_Arquivado= ControlValue("Arquivado")
                  AcceptDialog
        EndSwitch
        Temp=False
   Case Evento["KeyCode"] = -81:
        AcceptDialog
   EndSwitch
EndIf

SelectControl Campo
TECLA=" Esc=Retornar  "
Switch
  Case Campo="":
       MSGCAMPO=""
  OtherWise:
       MSGCAMPO=""
EndSwitch
If CHAVED=0
    Then TECLA=TECLA+"PgDn=Finalizar  "
EndIf

MontaRodapeSD(MSGCAMPO, TECLA)

RefreshDialog
Return Temp
EndProc  ; (SD_TERMO_ABENC)

;*******************************************************************************
;* Rotina entrada de dados para exportacao                                     *
;*******************************************************************************
Proc SD_SPED(Disparo,Campo,Evento,Elemento)
Temp=True
MSGCAMPO=""
TECLA=""

If INICIO_DIALOG
   Then Campo="Nome"
        INICIO_DIALOG=False
EndIf
If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9:
          Temp=False
     Case Evento["KeyCode"] = -59:
          Switch  
            Case Campo="Municipio" Or Campo="Uf" :
                 Dynarray WinArray5[]
                 Window Handle Dialog to JANELA
                 Window GetAttributes JANELA To WinArray5
                 WinArray5["FLOATING"]=False
                 Window SetAttributes JANELA From WinArray5
  
                 If Campo="Municipio" Then Moveto [Contador_Cidade      ] EndIf
                 If Campo="Uf"        Then Moveto [Contador_UF          ] EndIf
                 If ConsultaF1()
                    Then If Campo="Municipio"
                            Then [Contador_UF  ]=Reg_ConsultaF1["UF"]
                                 VSD_UF=[Contador_UF]
                         EndIf
                 EndIf        

                 Window Select JANELA
                 WinArray5["FLOATING"]=True
                 Window SetAttributes JANELA From WinArray5

                 echo Normal
                 echo off

                 If Campo="Municipio"
                    Then VSD_Municipio=[Contador_Cidade]
                 EndIf
                 If Campo="Uf"
                    Then VSD_Uf=[Contador_UF]
                 EndIf
                 Moveto "\\Sistemas\\Icms_ipi\\Dadsped"
                 
            Case Campo="Perfil" :
                 ShowPopup " Perfil [SPED Fiscal] " CENTERED
                  "              " : " " : "", ;Label
                  "~A~ - Perfil A" : " " : "A",
                  "~B~ - Perfil B" : " " : "B",
                  "~C~ - Perfil C" : " " : "C",
                  Separator,
                  "Cancela~r~  " : " " : "CANCELAR"
                 EndMenu                                         
                 To MenuVar
                  
                 If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                    Then VSD_Perfil=MenuVar
                 EndIf
     
            Case Campo="Atividade" :
                 ShowPopup " Atividade [SPED Fiscal] " CENTERED
                  "                                           " : " " : "", ;Label
                  "~0~ - Industrial ou equiparado a industrial" : " " : "0",
                  "~1~ - Prestador de servi‡o                 " : " " : "1",
                  "~2~ - Atividade de com‚rcio                " : " " : "2",
                  "~3~ - Atividade financeira                 " : " " : "3",
                  "~4~ - Atividade imobili ria                " : " " : "4",
                  "~9~ - Outros                               " : " " : "9",
                  Separator,
                  "Cancela~r~  " : " " : "CANCELAR"
                 EndMenu                                         
                 To MenuVar
                  
                 If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                    Then VSD_Atividade=MenuVar
                 EndIf                 

           Case Campo="Incidencia_Tributaria" :
                ShowPopup " Incidencia tribut ria [SPED Contribui‡äes] " CENTERED
                 "                                                             " : " " : "", ;Label
                 " C¢digo indicador da incidˆncia tribu ria:                   " : " " : "", ;Label 
                 "                                                             " : " " : "", ;Label
                 "~1~ - Escritura‡„o de opera‡”es com incidˆncia exclusivamente" : " " : "1",
                 "    no regime n„o-cumulativo.                                " : " " : "1",
                 Separator,
                 "~2~ - Escritura‡„o de opera‡”es com incidˆncia exclusivamente" : " " : "2",
                 "    no regime cumulativo.                                    " : " " : "2",
                 Separator,
                 "~3~ - Escritura‡„o de opera‡”es com incidˆncia nos regimes   " : " " : "3",
                 "    n„o-cumulativo e cumulativo.                             " : " " : "3",
                 Separator,
                 "Cancela~r~  " : " " : "CANCELAR"
                EndMenu                                         
                To MenuVar      
                 
                If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                   Then VSD_INC_TRIBUTARIA=MenuVar
                EndIf

           Case Campo="Apropriacao_Credito" :          
                ShowPopup "Apropria‡Æo de cr‚dito [SPED Contribui‡äes] " CENTERED
                 "                                                             " : " " : "", ;Label 
                 " C¢digo indicador de m‚todo de apropria‡„o de cr‚ditos,      " : " " : "", ;Label"
                 " no caso de incidˆncia no regime n„o-cumulativo:             " : " " : "", ;Label
                 "                                                             " : " " : "", ;Label
                 Separator,
                 "~1~ - M‚todo de apropria‡„o direta                           " : " " : "1",
                 Separator,
                 "~2~ - M‚todo de rateio proporcional (Receita bruta)          " : " " : "2", 
                 Separator,
                 "Cancela~r~  " : " " : "CANCELAR"
                EndMenu                                         
                To MenuVar      
                 
                If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                   Then VSD_APROPR_CREDITO=MenuVar
                EndIf
                
           Case Campo="Tipo_Contribuicao" :          
                ShowPopup " Tipo contribui‡Æo apurada [SPED Contribui‡äes] " CENTERED
                 "                                                                " : " " : "", ;Label 
                 " C¢digo indicador do tipo de contribui‡„o apurada:              " : " " : "", ;Label
                 "                                                                " : " " : "", ;Label 
                 Separator,
                 "~1~ - Apura‡„o da contribui‡„o exclusivamente a al¡quota b sica " : " " : "1",
                 Separator,
                 "~2~ - Apura‡„o da contribui‡„o a al¡quotas espec¡ficas          " : " " : "2",
                 "    (Diferenciadas e/ou por unidade de medida de produto)       " : " " : "2",
                 Separator,
                 "Cancela~r~  " : " " : "CANCELAR"
                EndMenu                                         
                To MenuVar      
                 
                If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                   Then VSD_TP_CONTRIBUICAO=MenuVar
                EndIf

           Case Campo="Regime_Cumulativo" :          
                ShowPopup " Regime cumulativo [SPED Contribui‡äes] " CENTERED
                 "                                                               " : " " : "", ;Label 
                 "  C¢digo indicador do crit‚rio de escritura‡„o e apura‡„o,     " : " " : "", ;Label
                 "  no caso de incidˆncia exclusivamente no regime cumulativo,   " : " " : "", ;Label
                 "  pela pessoa jur¡dica submetida ao regime de tributa‡„o com   " : " " : "", ;Label
                 "  base no lucro presumido:                                     " : " " : "", ;Label 
                 "                                                               " : " " : "", ;Label 
                 Separator,
                 "~1~ - Regime de caixa - Escritura‡„o consolidada               " : " " : "1",
                 "    (Registro F500)                                            " : " " : "1",
                 Separator,                                                   
                 "~2~ - Regime de competˆncia - Escritura‡„o consolidada         " : " " : "2", 
                 "    (Registro F550)                                            " : " " : "2",
                 Separator,
                 "~9~ - Regime de competˆncia - Escritura‡„o detalhada, com base " : " " : "9", 
                 "    nos registros dos Blocos A, C, D e F                       " : " " : "9",
                 Separator,
                 "Cancela~r~  " : " " : "CANCELAR"
                EndMenu                                         
                To MenuVar      
                 
                If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                   Then VSD_REG_CUMULATIVO=MenuVar
                EndIf             

            Case Campo="CP_Indicador_Incidencia":
                ShowPopup " Indicador de Incidˆncia [SPED Contribui‡äes] " CENTERED
                 "                                                               " : " " : "", ;Label 
                 "  C¢digo indicador da incidˆncia tribut ria no per¡odo:        " : " " : "", ;Label
                 "                                                               " : " " : "", ;Label 
                 Separator,
                 "~0~ - Sem incidˆncia                                           " : " " : "0",
                 Separator,                                                   
                 "~1~ - Contribui‡Æo Previdˆnciaria apurada no per¡odo,          " : " " : "1", 
                 "    exclusivamente com base na Receita Bruta;                  " : " " : "1",
                 Separator,
                 "~2~ - Contribui‡Æo Previdˆnciaria apurada no per¡odo,          " : " " : "2", 
                 "    exclusivamente com base na Receita Bruta e com base        " : " " : "2",
                 "    nas Remunera‡äes pagas, na forma dos incisios I e III      " : " " : "2",
                 "    do art 22 da lei n§ 8.212, de 1991.                        " : " " : "2",
                 "         [esta op‡Æo nÆo ‚ gerada pelo sistema !]              " : " " : "2",
                 Separator,
                 "Cancela~r~  " : " " : "CANCELAR"
                EndMenu                                         
                To MenuVar      
                 
                If MenuVar<>"CANCELAR" And MenuVar<>"Esc"
                   Then VSD_CP_INDICADOR_INCIDENCIA=MenuVar
                EndIf             

          EndSwitch    
                           
     Case Evento["KeyCode"] = 27:
          Switch
            Case Campo="Nome"                  : CancelDialog
            Case Campo="Logradouro"            : Campo="Nome"
            Case Campo="Numero"                : Campo="Logradouro"
            Case Campo="Complemento"           : Campo="Numero"
            Case Campo="Bairro"                : Campo="Complemento"
            Case Campo="Cep"                   : Campo="Bairro"
            Case Campo="Municipio"             : Campo="Cep"
            Case Campo="Uf"                    : Campo="Municipio"
            Case Campo="Telefone"              : Campo="Uf"              
            Case Campo="Fax"                   : Campo="Telefone"
            Case Campo="Email"                 : Campo="Fax"
            Case Campo="CPF"                   : Campo="Email"
            Case Campo="CRC"                   : Campo="CPF"
            Case Campo="CNPJ"                  : Campo="CRC"
            Case Campo="Perfil"                : Campo="CNPJ"
            Case Campo="Atividade"             : Campo="Perfil"
            Case Campo="Escrituracao_PC"       : Campo="Atividade"
            Case Campo="Incidencia_Tributaria" : Campo="Atividade"
            Case Campo="Apropriacao_Credito"   : Campo="Incidencia_Tributaria"
            Case Campo="Tipo_Contribuicao"     : If VSD_INC_TRIBUTARIA<>"1" And VSD_INC_TRIBUTARIA<>"3"
                                                    Then Campo="Incidencia_Tributaria"
                                                    Else Campo="Apropriacao_Credito"
                                                 EndIf 
            Case Campo="Regime_Cumulativo"      : Campo="Tipo_Contribuicao"
            Case Campo="CP_Indicador_Incidencia": Campo="Incidencia_Tributaria"
            Case Campo="CP_Codigo_Atividade"    : Campo="CP_Indicador_Incidencia"
            Case Campo="CP_Aliquota"            : Campo="CP_Codigo_Atividade"
       
          EndSwitch

          TEMP=False
     Case Evento["KeyCode"] = 13:
          Switch
            Case Campo="Nome":
                 VSD_Nome = ControlValue("Nome")
                 Campo="Logradouro"
            Case Campo="Logradouro":
                 VSD_Logradouro = ControlValue("Logradouro")
                 Campo="Numero"
            Case Campo="Numero":
                 VSD_Numero = ControlValue("Numero")
                 Campo="Complemento"
            Case Campo="Complemento":
                 VSD_Complemento = ControlValue("Complemento")
                 Campo="Bairro"
            Case Campo="Bairro":
                 VSD_Bairro = ControlValue("Bairro")
                 Campo="Cep"
            Case Campo="Cep":
                 VSD_Cep = ControlValue("Cep")
                 Campo="Municipio"
            Case Campo="Municipio":
                 VSD_Municipio = ControlValue("Municipio")
                 Campo="Uf"
            Case Campo="Uf":
                 VSD_Uf = ControlValue("Uf")
                 Campo="Telefone"
            Case Campo="Telefone":
                 VSD_Telefone = ControlValue("Telefone")
                 Campo="Fax"
            Case Campo="Fax":
                 VSD_Fax = ControlValue("Fax")
                 Campo="Email"
            Case Campo="Email":
                 VSD_Email = ControlValue("Email")
                 Campo="CPF"
            Case Campo="CPF":
                 VSD_CPF = ControlValue("CPF")
                 Campo="CRC"
            Case Campo="CRC":
                 VSD_CRC = ControlValue("CRC")
                 Campo="CNPJ"
            Case Campo="CNPJ":
                 VSD_CNPJ = ControlValue("CNPJ")
                 Campo="Perfil"
            Case Campo="Perfil":
                 VSD_Perfil = ControlValue("Perfil")
                 If Not IsBlank(VSD_Perfil)
                    Then Campo="Atividade"
                 EndIf
            Case Campo="Atividade":   
                 VSD_Atividade = ControlValue("Atividade")
                 If Not IsBlank(VSD_Atividade)
                    Then Campo="Incidencia_Tributaria"
                 EndIf
                 
            Case Campo="Incidencia_Tributaria" :
                 VSD_INC_TRIBUTARIA = ControlValue("Incidencia_Tributaria")
                 If Not IsBlank(VSD_INC_TRIBUTARIA)
                    Then If VSD_INC_TRIBUTARIA="1" Or VSD_INC_TRIBUTARIA="3"
                            Then VSD_REG_CUMULATIVO=""
                                 Campo="Apropriacao_Credito"
                            Else VSD_APROPR_CREDITO=""
                                 Campo="Tipo_Contribuicao" 
                         EndIf    
                 EndIf

            Case Campo="Apropriacao_Credito" :
                 VSD_APROPR_CREDITO = ControlValue("Apropriacao_Credito")
                 If Not IsBlank(VSD_APROPR_CREDITO)
                    Then Campo="Tipo_Contribuicao" 
                 EndIf
                 
            Case Campo="Tipo_Contribuicao" :
                 VSD_TP_CONTRIBUICAO = ControlValue("Tipo_Contribuicao")
                 If Not IsBlank(VSD_TP_CONTRIBUICAO)
                    Then If VSD_INC_TRIBUTARIA="2"
                            Then Campo="Regime_Cumulativo"
                            Else Campo="CP_Indicador_Incidencia"
                         EndIf 
                 EndIf

            Case Campo="Regime_Cumulativo" :
                 VSD_REG_CUMULATIVO = ControlValue("Regime_Cumulativo")
                 If Not IsBlank(VSD_REG_CUMULATIVO)
                    Then Campo="CP_Indicador_Incidencia"
                 EndIf                                  

            Case Campo="CP_Indicador_Incidencia":
                 VSD_CP_INDICADOR_INCIDENCIA = ControlValue("CP_Indicador_Incidencia")
                 If IsBlank(VSD_CP_INDICADOR_INCIDENCIA) Or
                    VSD_CP_INDICADOR_INCIDENCIA="0"                 
                    Then AcceptDialog
                    Else Campo="CP_Codigo_Atividade"
                 EndIf                                  
            
            Case Campo="CP_Codigo_Atividade":
                 VSD_CP_CODIGO_ATIVIDADE = ControlValue("CP_Codigo_Atividade")
                 If Not IsBlank(VSD_CP_CODIGO_ATIVIDADE)
                    Then Campo="CP_Aliquota"
                 EndIf                                  
            Case Campo="CP_Aliquota":
                 VSD_CP_ALIQUOTA = ControlValue("CP_Aliquota")
                 If Not IsBlank(VSD_CP_ALIQUOTA)
                    Then AcceptDialog
                 EndIf                                  
          EndSwitch
          Temp=False
     Case Evento["KeyCode"] = -81:
          AcceptDialog
   EndSwitch
EndIf

SelectControl Campo
TECLA=" Esc=Retornar  "

Switch
  Case Campo="CP_Indicador_Incidencia":
       MSGCAMPO="Indicador de incidˆncia"

  Case Campo="CP_Codigo_Atividade":
       MSGCAMPO="C¢digo indicador correspondente a atividade"

  Case Campo="CP_Aliquota":
       MSGCAMPO="Aliquota de contribui‡Æo"
  
EndSwitch

if Campo="Municipio"             Or
   Campo="uf"                    Or
   Campo="Perfil"                Or
   Campo="Atividade"             Or
   Campo="Escrituracao_PC"       Or
   Campo="Incidencia_Tributaria" Or
   Campo="Apropriacao_Credito"   Or
   Campo="Tipo_Contribuicao"     Or
   Campo="Regime_Cumulativo"     Or   
   Campo="CP_Indicador_Incidencia"   
   then MSGCAMPO=MSGCAMPO+", [F1]Consultar tabela  "
endif

If CHAVEE=0
    Then TECLA=TECLA+"PgDn=Finalizar  "
EndIf

MontaRodapeSD(MSGCAMPO, TECLA)

RefreshDialog
Return Temp
EndProc  ; (Inf_Receita)

;*******************************************************************************
;* Dados p/ receita estadual - Geracao de Disco Icms Convevio 57/95            *
;*******************************************************************************
Proc SPED()
UnLockRecord
FormKey

Moveto "\\Sistemas\\Icms_Ipi\\Dadsped"
Moveto [Codigo da Empresa]
Locate [Destinat->Codigo]
If Not Retval
   Then CHAVEE=1
        End Down
        [Codigo da Empresa ]=[Destinat->Codigo]
   Else CHAVEE=0
EndIf

Ler_Gravar_SPED("Ler")
INICIO_DIALOG=True
ShowDialog "Dados p/ exporta‡„o SPED/EFD" Proc "SD_SPED"
   Trigger "OPEN","ARRIVE"
    Key "TAB","ReverseTab","ENTER","ESC","ClearArea","PGDN","F1"
   @ 01,00 Height 21 Width 79

   Frame Single From 0,0 To 11,76
   @ 00,02 ?? " Dados do contabilista do contribuinte "

   Label  @ 01,01 "Nome" For "Nome"
   Accept @ 02,02 Width 63 "A60" Picture "!*!" Tag "Nome" To VSD_Nome
   
   Label  @ 03,01 "Logradouro" For "Logradouro"
   Accept @ 04,02 Width 36 "A34" Picture "!*!" Tag "Logradouro" To VSD_Logradouro

   Label  @ 03,39 "N§" For "Numero"
   Accept @ 04,39 Width 08 "A05" Picture "#*#" Tag "Numero" To VSD_Numero

   Label  @ 03,48 "Complemento" For "Complemento"
   Accept @ 04,48 Width 27 "A25" Picture "!*!" Tag "Complemento" To VSD_Complemento

   Label  @ 05,01 "Bairro" For "Bairro"
   Accept @ 06,02 Width 19 "A15" Picture "!*!" Tag "Bairro" To VSD_Bairro

   Label  @ 05,22 "Cep" For "Cep"
   Accept @ 06,22 Width 13 "A10" Picture "##.###-###" Tag "Cep" To VSD_Cep
   
   Label  @ 05,36 "Cidade" For "Municipio"
   Accept @ 06,36 Width 33 "A30" Picture "!*!" Tag "Municipio" To VSD_Municipio

   Label  @ 05,70 "UF" For "Uf"
   Accept @ 06,70 Width 05 "A02" Picture "!*!" Tag "Uf" To VSD_Uf

   Label  @ 07,01 "Telefone" For "Telefone"
   Accept @ 08,02 Width 15 "A12" Picture "!*!" Tag "Telefone" To VSD_Telefone

   Label  @ 07,18 "Fax" For "Fax"
   Accept @ 08,18 Width 15 "A12" Picture "!*!" Tag "Fax" To VSD_Fax

   Label  @ 07,34 "E-Mail" For "Email"
   Accept @ 08,34 Width 41 "A60" Tag "Email" To VSD_Email

   Label  @ 09,01 "CPF" for "CPF"
   Accept @ 10,02  Width 17 "A14" picture "###.###.###-##" Tag "CPF" to VSD_CPF

   Label  @ 09,20 "CRC" For "CRC"
   Accept @ 10,20 Width 18 "A15" Picture "!*!" Tag "CRC" To VSD_CRC

   Label  @ 09,39 "CNPJ" for "CNPJ"
   Accept @ 10,39 Width 21 "A18" picture "##.###.###/####-##" Tag "CNPJ" to VSD_CNPJ


   Frame Single From 13,0 To 18,18
   @ 13,02 ?? " SPED Fiscal "
   Label  @ 14,01 "   Perfil: " For "Perfil"
   Accept @ 14,13 Width 04 "A1" Picture "A,B,C" Tag "Perfil" To VSD_Perfil
   Label  @ 15,01 "Atividade: " For "Atividade"
   Accept @ 15,13 Width 04 "A1" Picture "0,1,2,3,4,9" Tag "Atividade" To VSD_Atividade


   Frame Single From 13,19 To 18,76
   @ 13,21 ?? " SPED Contribui‡äes "
   Label  @ 14,20 "    Incidˆncia Tribut ria: " For "Incidencia_Tributaria"
   Accept @ 14,48 Width 04 "A1" Picture "1,2,3" Tag "Incidencia_Tributaria" To VSD_INC_TRIBUTARIA                      
   Label  @ 15,20 "  Apropria‡„o de Cr‚ditos: " For "Apropriacao_Credito"
   Accept @ 15,48 Width 04 "A1" Picture "1,2" Tag "Apropriacao_Credito" To VSD_APROPR_CREDITO
   Label  @ 16,20 "Tipo Contribui‡„o Apurada: " For "Tipo_Contribuicao"
   Accept @ 16,48 Width 04 "A1" Picture "1,2" Tag "Tipo_Contribuicao" To VSD_TP_CONTRIBUICAO  
   Label  @ 17,20 "        Regime Cumulativo: " For "Regime_Cumulativo"
   Accept @ 17,48 Width 04 "A1" Picture "1,2,9" Tag "Regime_Cumulativo" To VSD_REG_CUMULATIVO     
   
   @ 14,53 ?? "Contrib.Previdˆnciaria"
   PaintCanvas Attribute 47  14, 53, 14, 74
   Label  @ 15,52 "Incidencia: " For "CP_Indicador_Incidencia"
   Accept @ 15,65 Width 04 "A1" Picture "0,1" Tag "CP_Indicador_Incidencia" To VSD_CP_INDICADOR_INCIDENCIA                      
   Label  @ 16,52 " Atividade: " For "CP_Codigo_Atividade"
   Accept @ 16,65 Width 11 "A8" Picture "#*#"   Tag "CP_Codigo_Atividade" To VSD_CP_CODIGO_ATIVIDADE                      
   Label  @ 17,52 "  Aliquota: " For "CP_Aliquota"
   Accept @ 17,65 Width 08 "N"                  Tag "CP_Aliquota" To VSD_CP_ALIQUOTA                      
   
EndDialog
If RetVal
   Then Ler_Gravar_SPED("Gravar")
EndIf

Moveto "Destinat"
FormKey
LockRecord
EndProc  ;  (Receita_Dados)

;*******************************************************************************
;* Dados p/ doctos fiscais                                                     *
;*******************************************************************************
Proc Ler_Gravar_SPED(opcao)
private opcao
Switch
  Case opcao="Ler":
       VSD_Perfil          = [Empresa_IND_PERFIL           ]
       VSD_Atividade       = [Empresa_IND_ATIV             ]
       VSD_Nome            = [Contador_NOME                ]
       VSD_CPF             = [Contador_CPF                 ]
       VSD_CRC             = [Contador_CRC                 ]
       VSD_CNPJ            = [Contador_CNPJ                ]
       VSD_Cep             = [Contador_CEP                 ]
       VSD_Logradouro      = [Contador_END                 ]
       VSD_Numero          = [Contador_NUM                 ]
       VSD_Complemento     = [Contador_COMPL               ]
       VSD_Bairro          = [Contador_BAIRRO              ]
       VSD_Telefone        = [Contador_FONE                ]
       VSD_Fax             = [Contador_FAX                 ]
       VSD_Email           = [Contador_EMAIL               ]
       VSD_Municipio       = [Contador_Cidade              ]
       VSD_Uf              = [Contador_UF                  ]

       VSD_INC_TRIBUTARIA  = [COD_INC_TRIB                 ]
       VSD_APROPR_CREDITO  = [IND_APRO_CRED                ]
       VSD_TP_CONTRIBUICAO = [COD_TIPO_CONT                ]
       VSD_REG_CUMULATIVO  = [IND_REG_CUM                  ]

       VSD_CP_INDICADOR_INCIDENCIA =[CPREV_IND_INCIDENCIA  ]
       VSD_CP_CODIGO_ATIVIDADE     =[CPREV_COD_ATIVIDADE   ]
       VSD_CP_ALIQUOTA             =[CPREV_ALIQUOTA        ]
       
  Case opcao="Gravar":
       [Empresa_IND_PERFIL           ]=VSD_Perfil           
       [Empresa_IND_ATIV             ]=VSD_Atividade        
       [Contador_NOME                ]=VSD_Nome             
       [Contador_CPF                 ]=VSD_CPF              
       [Contador_CRC                 ]=VSD_CRC              
       [Contador_CNPJ                ]=VSD_CNPJ             
       [Contador_CEP                 ]=VSD_Cep              
       [Contador_END                 ]=VSD_Logradouro       
       [Contador_NUM                 ]=VSD_Numero           
       [Contador_COMPL               ]=VSD_Complemento      
       [Contador_BAIRRO              ]=VSD_Bairro           
       [Contador_FONE                ]=VSD_Telefone         
       [Contador_FAX                 ]=VSD_Fax              
       [Contador_EMAIL               ]=VSD_Email           
       [Contador_Cidade              ]=VSD_Municipio        
       [Contador_UF                  ]=VSD_Uf   
       [IND_ESCRI_PC                 ]="" 

       [COD_INC_TRIB                 ]=VSD_INC_TRIBUTARIA
       [IND_APRO_CRED                ]=VSD_APROPR_CREDITO
       [COD_TIPO_CONT                ]=VSD_TP_CONTRIBUICAO
       [IND_REG_CUM                  ]=VSD_REG_CUMULATIVO        

       [CPREV_IND_INCIDENCIA         ]=VSD_CP_INDICADOR_INCIDENCIA
       [CPREV_COD_ATIVIDADE          ]=VSD_CP_CODIGO_ATIVIDADE
       [CPREV_ALIQUOTA               ]=VSD_CP_ALIQUOTA

       UnLockRecord
EndSwitch
EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoIE()

DigitaIE()
Moveto "Empriest"
If RecordStatus("Locked") Then UnLockRecord EndIf         

EndProc ;Controla_EdicaoIE()

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()

DIGITA=True

While DIGITA
  Moveto "Destinat"
  DIGITA()
  
  If CHAVE=9 Then QuitLoop EndIf
  
  While Not IsBlank(Tecla_Funcao)   
    Switch
      Case Tecla_Funcao=-116:
           Switch
             Case Table()="Destinat"   : TELA = "TELA_IEST"
						 Case Table()="Empriest"   : TELA = "TELA_EMPRESA"
           EndSwitch
			Case Tecla_Funcao=-115:
           Switch
             Case Table()="Destinat"   : TELA="TELA_IEST" 
						 Case Table()="Empriest"   : TELA="TELA_EMPRESA"
           EndSwitch  
    EndSwitch  
    
    ;*********** Checagem de Pagina *******************************
    ;If Not Checagem_Pagina(TelaAnt)
    ;   Then TELA=TelaAnt
    ;EndIf    
    ;NAO TEM CHECAGEM DE PAGINA

    Switch
      Case TELA="TELA_EMPRESA"   :
           Tecla_Funcao=""
           Loop      
      
      Case TELA="TELA_IEST"      : 
           Moveto "Destinat"
           Moveto [Telex]
      
           Moveto "Empriest"
           While True
             CHAVEE()
             If CHAVEE=9
                Then QuitLoop
             EndIf
             If CHAVEE=1
                Then DIGITA_IEST()
                Else Controla_EdicaoIE()
             EndIf  
           EndWhile                                          
    EndSwitch 
  EndWhile
EndWhile
  
If RecordStatus("Locked") Then UnLockRecord EndIf         
If OPCAO_FORM="F"
   Then PickForm "F"
EndIf

SaveTables

EndProc ;Controla_EdicaoC()            

;*******************************************************************************
;* Rotina Mensagem Teclas Padrao                                               *
;*******************************************************************************
Proc MsgTeclasPadrao()
MSG=    "    Esc= Voltar Menu                      //"
MSG=MSG+"  Alt+F= Fun‡”es                          //"
MSG=MSG+"     Ctrl+"+Chr(26)+"= Avan‡ar p gina "+Chr(16)+">                   //"
MSG=MSG+"     Ctrl+"+Chr(27)+"= Voltar p gina  <"+Chr(17)+"                   //"
MSG=MSG+"  Page Down= Finalizar      ["+Chr(16)+"]   *Confirma/Gravar//"
MSG=MSG+"  Ctrl+F1= Ajuda/Teclas   [?]                 "
MsgHelp("Teclas/Fun‡”es",MSG)
Endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bib_Proc"
If Not IsAssigned(SYS_CHAPA_USUARIO)   Then SYS_CHAPA_USUARIO=""  EndIf
                      
CoEdit "\\Sistemas\\Cadastro\\Emprnfse",
       "\\Sistemas\\Icms_Ipi\\ReceitaE",
       "\\Sistemas\\Icms_Ipi\\Respdoct",
       "\\Sistemas\\Icms_Ipi\\Dadsped",
       "EmpAut","Empriest","CompEmp","Empresas", 
       "Destinat"

PARAM_REUTILIZA="N"

PickForm "F"

OPCAO_FORM="F"
ORDENARPOR="NOME"

While True
  CHAVE()
  If CHAVE=9 Then QuitLoop EndIf
  If CHAVE=5
     Then If OPCAO_FORM="F"
             Then PickForm "F"
             Else PickForm "2"
          EndIf
          Loop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
