unit cadAgendaTelefonica;
                                                                                       
interface

uses
  Windows, system.UItypes, IB_Access,  Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ModeloCadastro, IB_Components, ExtCtrls, Grids, IB_Grid,
  StdCtrls, Buttons, ComCtrls, IB_Controls, Mask, jpeg, AppEvnts, Menus,
  ImgList, UCBase, IB_EditButton, System.ImageList;

type
  TfrmAgenda = class(TFrModeloCadastro)
    edtNome: TIB_Edit;
    edtFone1: TIB_Edit;
    edtFone2: TIB_Edit;
    edtEmail: TIB_Edit;
    edtParticular: TIB_CheckBox;
    edtObs: TIB_Memo;
    edtAniversario: TIB_Date;
    popPesquisaCep: TPopupMenu;
    PesquisarCEP1: TMenuItem;
    Panel4: TPanel;
    edtBAirro: TIB_Edit;
    edtCep: TIB_Edit;
    edtEndereco: TIB_Edit;
    edtCidade: TIB_Edit;
    edtNumero: TIB_Edit;
    edtComplemento: TIB_Edit;
    edtUF: TIB_LookupCombo;
    qrUF: TIB_Query;
    dsrUF: TIB_DataSource;
    procedure FormCreate(Sender: TObject);
    procedure AtualizaTela;
    procedure BtGravarClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
    procedure edtCepExit(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure BtExcluirClick(Sender: TObject);
    procedure edtFone1Exit(Sender: TObject);
    procedure edtFone2Exit(Sender: TObject);
    procedure edtCepKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtProximoClick(Sender: TObject);
    procedure BtCancelarClick(Sender: TObject);
    procedure PesquisarCEP1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmAgenda: TfrmAgenda;

implementation

uses DataModulo, Rotinas;

{$R *.dfm}

procedure TfrmAgenda.FormCreate(Sender: TObject);
begin
   Gera_Codigo  := True;
   Chave_Tabela := 'COD_AGENDA';
   TbPrincipal.ParamByName('VARUSUARIO').Value := Dados.qrUsuario.FieldByName('COD_USUARIO').Value;
   inherited;
   qrUF.Open;
end;

procedure TfrmAgenda.BtGravarClick(Sender: TObject);
begin
   if edtNome.Text = '' then
   begin
      MessageDlg('Informe o nome', mtInformation, [mbOK], 0);
      edtNome.SetFocus;
      Exit;
   end;
   if edtUF.Text <> '' then
      TbPrincipal.FieldByName('COD_UF').Value := qrUF.FieldByName('COD_UF').Value
   else
      TbPrincipal.FieldByName('COD_UF').Value := Null;

   if TbPrincipal.State in [dssInsert] then
      descricao_auditoria := 'CADASTROU O CONTATO DA AGENDA DE TELEFONE ' + TbPrincipal.FieldByName('COD_AGENDA').AsString  +' ' +TbPrincipal.FieldByName('NOME').AsString;

   if TbPrincipal.State in [dssEdit] then
      descricao_auditoria := 'ALTEROU O CONTATO DA AGENDA DE TELEFONE ' + TbPrincipal.FieldByName('COD_AGENDA').OldAsString  +' ' +TbPrincipal.FieldByName('NOME').OldAsString;

   inherited;

end;

procedure TfrmAgenda.BtEditarClick(Sender: TObject);
begin
  inherited;
   if TbPrincipal.FieldByName('COD_USUARIO').Value = Dados.qrUsuario.FieldByName('COD_USUARIO').Value then
   begin
      edtParticular.ReadOnly := False;
   end
   else
     edtParticular.ReadOnly := True;

   AtualizaTela;     
end;

procedure TfrmAgenda.edtCepExit(Sender: TObject);
begin
  inherited;
   if ValidarCep(edtCep.Text) = False then
   begin
      MessageDlg('CEP inválido', mtInformation, [mbOK], 0);
      edtCep.SetFocus;
      Exit;
   end;

end;

procedure TfrmAgenda.BtInserirClick(Sender: TObject);
begin
   inherited;
   TbPrincipal.FieldByName('PARTICULAR').Value := 'F';
   AtualizaTela;
end;

procedure TfrmAgenda.BtExcluirClick(Sender: TObject);
begin
   descricao_auditoria := 'EXCLUIU O CONTATO DA AGENDA DE TELEFONE ' + TbPrincipal.FieldByName('COD_AGENDA').AsString  +' ' +TbPrincipal.FieldByName('NOME').AsString;
   inherited;
   AtualizaTela;
end;

procedure TfrmAgenda.edtFone1Exit(Sender: TObject);
begin
  inherited;
   if ValidarTelefone(edtFone1.Text) = False then
   begin
      MessageDlg('Telefone invalido', mtInformation, [mbOK], 0);
      edtFone1.SetFocus;
      Exit;
   end;
end;

procedure TfrmAgenda.edtFone2Exit(Sender: TObject);
begin
  inherited;
   if ValidarTelefone(edtFone2.Text) = False then
   begin
      MessageDlg('Telefone invalido', mtInformation, [mbOK], 0);
      edtFone2.SetFocus;
      Exit;
   end;
end;

procedure TfrmAgenda.edtCepKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   inherited;
   if (Key =  VerificaAtalho(Dados.tbConfig.FieldByName('ATALHO_PESQUISA').AsString)) and (edtCep.Focused) then
      PesquisarCEP1.Click
end;

procedure TfrmAgenda.AtualizaTela;
begin
   //=============== Atulaliza a visualizacao dos daoados ================
   if not qrUF.Locate('COD_UF', tbprincipal.FieldByName('COD_UF').Value , [] ) then
   begin
      if not qrUF.Bof then
      begin
         qrUF.First;
         qrUF.Prior;
      end;
   end;
end;

procedure TfrmAgenda.BtAnteriorClick(Sender: TObject);
begin
  inherited;
AtualizaTela
end;

procedure TfrmAgenda.BtProximoClick(Sender: TObject);
begin
  inherited;
AtualizaTela
end;

procedure TfrmAgenda.BtCancelarClick(Sender: TObject);
begin
  inherited;
   AtualizaTela
end;

procedure TfrmAgenda.PesquisarCEP1Click(Sender: TObject);
var cidade,endereco,bairro,cep,uf,cod_cidade_IBGE,cod_UF_IBGE : string;
begin
   inherited;
   if TbPrincipal.State in [dssBrowse] then
      Exit;

   BuscaCepPorCidadeRua(cidade,endereco,bairro,cep,uf,cod_cidade_IBGE,cod_UF_IBGE);
   if cidade <> '' then
      TbPrincipal.FieldByName('ENDERECO_CIDADE').value     := cidade;

   if endereco <> '' then
      TbPrincipal.FieldByName('ENDERECO_LOGRADOURO').value := endereco;

   if bairro <> '' then
      TbPrincipal.FieldByName('ENDERECO_BAIRRO').Value := bairro;

   if cep <> '' then
      TbPrincipal.FieldByName('ENDERECO_CEP').Value := cep;

   if uf <> '' then
   begin
      if qrUF.Locate('DESCRICAO' , uf  , [] ) then
         TbPrincipal.FieldByName('COD_UF').Value := qrUF.FieldByName('COD_UF').Value
      else
         TbPrincipal.FieldByName('COD_UF').Value := Null;
   end;

   Screen.OnActiveControlChange := TrocaCor;
end;

end.
