unit CadSeguradora;

interface

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

type
  TfrmCadSeguradora = class(TFrModeloCadastro)
    edtCnpj: TIB_Edit;
    edtRazaoSocial: TIB_Edit;
    edtTele1: TIB_Edit;
    edtTele2: TIB_Edit;
    edtInscricao: TIB_Edit;
    edtEmail: TIB_Edit;
    edtNomeFantasia: TIB_Edit;
    GroupBox1: TGroupBox;
    edtBairro: TIB_Edit;
    edtCep: TIB_Edit;
    edtEndereco: TIB_Edit;
    edtCidade: TIB_Edit;
    edtNumero: TIB_Edit;
    edtComplemento: TIB_Edit;
    edtContatoTransporte: TIB_Edit;
    IB_Edit1: TIB_Edit;
    IB_Memo1: TIB_Memo;
    popInscricao: TPopupMenu;
    ISENTO1: TMenuItem;
    popPesquisaCepTansporte: TPopupMenu;
    PesquisarCEP1: TMenuItem;
    qrUF: TIB_Query;
    dsrUF: TIB_DataSource;
    edtUF: TIB_LookupCombo;
    IB_Edit2: TIB_Edit;
    procedure edtCnpjExit(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure edtCepExit(Sender: TObject);
    procedure ISENTO1Click(Sender: TObject);
    procedure PesquisarCEP1Click(Sender: TObject);
    procedure BtCancelarClick(Sender: TObject);
    procedure BtExcluirClick(Sender: TObject);
    procedure BtProximoClick(Sender: TObject);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    function Verificacnpj: Boolean;
    procedure AtualizaTela;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadSeguradora: TfrmCadSeguradora;

implementation

uses Rotinas, DataModulo;

{$R *.dfm}

procedure TfrmCadSeguradora.edtCnpjExit(Sender: TObject);
var erro,
    tipoPessoa :string;
begin
  inherited;

   if (TbPrincipal.State in [dssInsert]) then
   begin
      if (edtCnpj.Text <> '              ') and
         (edtCnpj.Text <> '           ') and
         (edtCnpj.Text<>'')then
      begin
         if ValidaCNPJCEICPF(edtCnpj.Text,tipoPessoa,erro)= False then
         begin
            MessageDlg(erro, mtWarning, [mbOK], 0);
            edtCnpj.SetFocus;
            Exit;
         end;

          //================= Se for CPF a inscricaoé isenta ==============
         if Length(TbPrincipal.FieldByName('CNPJ').AsString) = 11 then
         begin
            TbPrincipal.FieldByName('INSCRICAO').Value := 'ISENTO';
         end;
      end;

      VerificaCnpj;
   end;
end;

function TfrmCadSeguradora.Verificacnpj : Boolean;
begin
   qryPesquisa.Close;
   qryPesquisa.SQL.Clear;
   qryPesquisa.SQL.Add(' SELECT SEGURADORA.CNPJ ');
   qryPesquisa.SQL.Add(' FROM SEGURADORA ');
   qryPesquisa.SQL.Add(' where  SEGURADORA.CNPJ = :cnpj ');
   qryPesquisa.ParamByName('cnpj').Value := LimpaTexto(edtCnpj.Text);
   qryPesquisa.Open;

   Result := True;
   if  not qryPesquisa.IsEmpty then
   begin
      BtCancelar.Click;
      TbPrincipal.Locate('CNPJ',qryPesquisa.ParamByName('cnpj').AsString ,[]);
   end;
   qryPesquisa.Close;
end;

procedure TfrmCadSeguradora.BtInserirClick(Sender: TObject);
begin
  inherited;
   TbPrincipal.FieldByName('DATACADASTRO').Value := Date;
   AtualizaTela   
end;

procedure TfrmCadSeguradora.edtCepExit(Sender: TObject);
begin
  inherited;
   if ValidarCep (TbPrincipal.FieldByName('ENDERECO_CEP').AsString) = False  then
   begin
      MessageDlg('Cep Inválido', mtWarning, [mbOK], 0);
      edtCep.SetFocus;
      Exit;
   end;

   if TbPrincipal.FieldByName('ENDERECO_CEP').AsString = '' then
   begin
      Exit;
   end;

   if TbPrincipal.FieldByName('ENDERECO_LOGRADOURO').AsString <> '' then
   begin
      Exit;
   end;

   try
      dados.qrCep.Close;
      dados.qrCep.ParamByName('VARCEP').Value := LimpaTexto(edtCep.Text);
      dados.qrCep.Open;
      if dados.qrCep.IsEmpty then
         Exit;

      TbPrincipal.FieldByName('ENDERECO_LOGRADOURO').Value := dados.qrCep.FieldByName('TIPO').AsString + ' '+dados.qrCep.FieldByName('RUA').AsString;
      TbPrincipal.FieldByName('ENDERECO_BAIRRO').Value     := dados.qrCep.FieldByName('BAIRRO').AsString;
      TbPrincipal.FieldByName('ENDERECO_CIDADE').Value     := dados.qrCep.FieldByName('CIDADE').AsString;
      if qrUF.Locate('DESCRICAO', dados.qrCep.FieldByName('UF').AsString, [] ) then
         TbPrincipal.FieldByName('COD_UF').Value  := qrUF.FieldByName('COD_UF').Value;

      except
   end;

end;

procedure TfrmCadSeguradora.ISENTO1Click(Sender: TObject);
begin
  inherited;
   if TbPrincipal.State in [dssBrowse] then
     Exit;

   TbPrincipal.FieldByName('INSCRICAO').Value := 'ISENTO';
end;

procedure TfrmCadSeguradora.PesquisarCEP1Click(Sender: TObject);
var cidade,endereco,bairro,cep,uf,codCidadeIBGE,cod_UF_IBGE : string;
begin
  inherited;
   if TbPrincipal.State in [dssBrowse] then
      Exit;
   BuscaCepPorCidadeRua(cidade,endereco,bairro,cep,uf,codCidadeIBGE,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;

procedure TfrmCadSeguradora.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 TfrmCadSeguradora.BtCancelarClick(Sender: TObject);
begin
  inherited;
AtualizaTela
end;

procedure TfrmCadSeguradora.BtExcluirClick(Sender: TObject);
begin
  inherited;
AtualizaTela
end;

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

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

procedure TfrmCadSeguradora.BtEditarClick(Sender: TObject);
begin
  inherited;
  AtualizaTela;
end;

procedure TfrmCadSeguradora.FormCreate(Sender: TObject);
begin
  inherited;
   qrUF.Open;
end;

end.
