You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1433 lines
44 KiB
1433 lines
44 KiB
unit ucadCredor;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
|
|
System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstCadastro, Data.DB, Vcl.ExtCtrls,
|
|
Vcl.DBCtrls, Vcl.StdCtrls, Vcl.Mask, Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids,
|
|
Vcl.Buttons, StrUtils, Types, System.ImageList, Vcl.ImgList, ACBrBase,
|
|
ACBrSocket, ACBrCEP, rDBComponents, Vcl.Menus, System.UITypes, ClipBrd,
|
|
ZAbstractRODataset,
|
|
ZDataset;
|
|
|
|
// Tentando "Hackear" o TDBNavigator
|
|
type
|
|
THackDBNavigator = class(TDBNavigator);
|
|
|
|
type
|
|
TcadCredor = class(TmstCadastro)
|
|
lbl_cidade: TLabel;
|
|
dblucmbox_cidade: TDBLookupComboBox;
|
|
lbl_bairro: TLabel;
|
|
dbedt_bairro: TDBEdit;
|
|
dbedt_tel: TDBEdit;
|
|
lbl_tel: TLabel;
|
|
dbedt_email: TDBEdit;
|
|
lbl_email: TLabel;
|
|
dbedt_website: TDBEdit;
|
|
lbl_website: TLabel;
|
|
dbedt_fantasia: TDBEdit;
|
|
lbl_fantasia: TLabel;
|
|
lbl_cnpj: TLabel;
|
|
lbl_inscriest: TLabel;
|
|
dbedt_inscriest: TDBEdit;
|
|
lbl_inscrimuni: TLabel;
|
|
dbedt_inscrimuni: TDBEdit;
|
|
dbedt_cep: TDBEdit;
|
|
lbl_cep: TLabel;
|
|
dbedt_end: TDBEdit;
|
|
lbl_end: TLabel;
|
|
dbedt_num: TDBEdit;
|
|
lbl_num: TLabel;
|
|
dbedt_compl: TDBEdit;
|
|
lbl_compl: TLabel;
|
|
dblucmbox_uf: TDBLookupComboBox;
|
|
lbl_uf: TLabel;
|
|
ImageList1: TImageList;
|
|
spdbtn_pesquisa: TSpeedButton;
|
|
tabTabelas: TTabSheet;
|
|
lbl_dtinicio: TLabel;
|
|
lbl_faixa: TLabel;
|
|
lbl_dtfim: TLabel;
|
|
gb_politica: TGroupBox;
|
|
lbl_fdias: TLabel;
|
|
dbedt_diai: TDBEdit;
|
|
dbedt_diaf: TDBEdit;
|
|
lbl_extra1: TLabel;
|
|
gb_encargos: TGroupBox;
|
|
lbl_multa: TLabel;
|
|
dbedt_multa: TDBEdit;
|
|
lbl_juros: TLabel;
|
|
dbedt_juros: TDBEdit;
|
|
gb_desc: TGroupBox;
|
|
gb_faixas: TGroupBox;
|
|
tabObservacoes: TTabSheet;
|
|
dbmemo_obs: TDBMemo;
|
|
btn_clearmemo: TButton;
|
|
navSecundario: TDBNavigator;
|
|
dbl_poli: TDBLookupComboBox;
|
|
dbl_faixa: TDBLookupComboBox;
|
|
dtsPol: TDataSource;
|
|
dtsFaixa: TDataSource;
|
|
spdbtn_verIE: TSpeedButton;
|
|
ACBrCEP1: TACBrCEP;
|
|
dbedt_cnpj: TDBEdit;
|
|
dbdate_politicai: TrDBDateTimePicker;
|
|
dbdate_politicaf: TrDBDateTimePicker;
|
|
gb_listcredores: TGroupBox;
|
|
navFaixas: TDBNavigator;
|
|
lbl_nomepoli: TLabel;
|
|
dbedt_nomepoli: TDBEdit;
|
|
lbl_nomefaixa: TLabel;
|
|
dbedt_nomefaixa: TDBEdit;
|
|
pnl_poli: TPanel;
|
|
pnl_encargos: TPanel;
|
|
pnl_faixa: TPanel;
|
|
mmnuCredor: TMainMenu;
|
|
Novo1: TMenuItem;
|
|
Credor: TMenuItem;
|
|
N1: TMenuItem;
|
|
Poltica1: TMenuItem;
|
|
Faixa1: TMenuItem;
|
|
dtsCidades: TDataSource;
|
|
dtsEstados: TDataSource;
|
|
PopupMenu1: TPopupMenu;
|
|
Copiar1: TMenuItem;
|
|
dblucb_repasse: TDBLookupComboBox;
|
|
lbl_repasse: TLabel;
|
|
dbgrd_credoreslist: TDBGrid;
|
|
pcTarifas: TPageControl;
|
|
tabBasico: TTabSheet;
|
|
tabPolitica: TTabSheet;
|
|
GroupBox1: TGroupBox;
|
|
dbedt_taxabasicaentradamin: TDBEdit;
|
|
lbl_taxabasicaentrada: TLabel;
|
|
dbedt_taxabasicamulta: TDBEdit;
|
|
lbl_taxabasicamulta: TLabel;
|
|
dbedt_taxabasicajuros: TDBEdit;
|
|
lbl_taxabasicajuros: TLabel;
|
|
dbedt_nparcelasbasico: TDBEdit;
|
|
lbl_nparcelasbasico: TLabel;
|
|
GroupBox3: TGroupBox;
|
|
gb_descquitbasico: TGroupBox;
|
|
lbl_descquitencbasico: TLabel;
|
|
dbedt_descquitindfinbasico: TDBEdit;
|
|
lbl_descquitprinbasico: TLabel;
|
|
dbedt_descquitprinbasico: TDBEdit;
|
|
lbl_descquitmultabasico: TLabel;
|
|
lbl_descquitjurosbasico: TLabel;
|
|
dbedt_descquitmultabasico: TDBEdit;
|
|
dbedt_descquitjurosbasico: TDBEdit;
|
|
gb_descfinbasico: TGroupBox;
|
|
lbl_descfintencbasico: TLabel;
|
|
dbedt_descfinindfinbasico: TDBEdit;
|
|
lbl_descfintprinbasico: TLabel;
|
|
dbedt_descfinprinbasico: TDBEdit;
|
|
lbl_descfintmultabasico: TLabel;
|
|
dbedt_descfinmultabasico: TDBEdit;
|
|
lbl_descfintjurosbasico: TLabel;
|
|
dbedt_descfinjurosbasico: TDBEdit;
|
|
tabIndicador: TTabSheet;
|
|
dtsIndicadorFinanceiro: TDataSource;
|
|
navIndicadorFinanceiro: TDBNavigator;
|
|
pnl_indicadorfinanceiro: TPanel;
|
|
dbgrd_indicadorfinanceiro: TDBGrid;
|
|
lbl_indfinpr: TLabel;
|
|
dbedt_indfinpr: TDBEdit;
|
|
dbedt_indfinatrasomin: TDBEdit;
|
|
lbl_indfinatrasomin: TLabel;
|
|
dbedt_indfinvlfix: TDBEdit;
|
|
lbl_indfinvlfix: TLabel;
|
|
dbedt_indfinatrasomax: TDBEdit;
|
|
lbl_indfinatrasomax: TLabel;
|
|
dbrgrp_indfintipo: TDBRadioGroup;
|
|
gb_descquitfaixa: TGroupBox;
|
|
lbl_descquitindfinfaixa: TLabel;
|
|
lbl_descquitprinfaixa: TLabel;
|
|
lbl_descquitmultafaixa: TLabel;
|
|
lbl_descquitjurosfaixa: TLabel;
|
|
dbedt_descquitindfinfaixa: TDBEdit;
|
|
dbedt_descquitprinfaixa: TDBEdit;
|
|
dbedt_descquitmultafaixa: TDBEdit;
|
|
dbedt_descquitjurosfaixa: TDBEdit;
|
|
gb_descfinfaixa: TGroupBox;
|
|
lbl_descfinindfinfaixa: TLabel;
|
|
lbl_descfinprinfaixa: TLabel;
|
|
lbl_descfinmultafaixa: TLabel;
|
|
lbl_descfinjurosfaixa: TLabel;
|
|
dbedt_descfinindfinfaixa: TDBEdit;
|
|
dbedt_descfinprinfaixa: TDBEdit;
|
|
dbedt_descfinmultafaixa: TDBEdit;
|
|
dbedt_descfinjurosfaixa: TDBEdit;
|
|
lbl_taxabasicaindfin: TLabel;
|
|
dbedt_taxabasicaindfin: TDBEdit;
|
|
dbedt_descquitcorbasico: TDBEdit;
|
|
Label1: TLabel;
|
|
dbedt_descfincorbasico: TDBEdit;
|
|
Label2: TLabel;
|
|
dbedt_descquitcorfaixa: TDBEdit;
|
|
Label3: TLabel;
|
|
dbedt_descfincorfaixa: TDBEdit;
|
|
Label4: TLabel;
|
|
Label5: TLabel;
|
|
DBEdit2: TDBEdit;
|
|
Pesquisa: TGroupBox;
|
|
edt_procura: TEdit;
|
|
dbrg_tpentrada: TDBRadioGroup;
|
|
Label6: TLabel;
|
|
dbedt_taxabasicaentradamax: TDBEdit;
|
|
GroupBox4: TGroupBox;
|
|
dbrg_din: TDBRadioGroup;
|
|
dbrg_che: TDBRadioGroup;
|
|
dbrg_cred: TDBRadioGroup;
|
|
rDBDateTimePicker1: TrDBDateTimePicker;
|
|
rDBDateTimePicker2: TrDBDateTimePicker;
|
|
Label7: TLabel;
|
|
dbrg_tpfaixa: TDBRadioGroup;
|
|
DBLookupComboBox1: TDBLookupComboBox;
|
|
Label8: TLabel;
|
|
tabRepasses: TTabSheet;
|
|
dtsRepasse: TDataSource;
|
|
navRepasse: TDBNavigator;
|
|
dbgrdrepasse: TDBGrid;
|
|
pcRepasse: TPageControl;
|
|
tabRepassedados: TTabSheet;
|
|
tabRepasseFase: TTabSheet;
|
|
dbgrrepassedados: TDBGrid;
|
|
Label9: TLabel;
|
|
DBEdit3: TDBEdit;
|
|
Label10: TLabel;
|
|
DBEdit4: TDBEdit;
|
|
DBEdit5: TDBEdit;
|
|
Label11: TLabel;
|
|
DBEdit6: TDBEdit;
|
|
Label12: TLabel;
|
|
DBEdit7: TDBEdit;
|
|
Label13: TLabel;
|
|
DBEdit8: TDBEdit;
|
|
Label14: TLabel;
|
|
DBGrid1: TDBGrid;
|
|
navrepassefase: TDBNavigator;
|
|
dtsRepasseFase: TDataSource;
|
|
DBComboBox1: TDBComboBox;
|
|
DBComboBox2: TDBComboBox;
|
|
Label15: TLabel;
|
|
Label16: TLabel;
|
|
btn_reprepasse: TButton;
|
|
DBRadioGroup1: TDBRadioGroup;
|
|
Label17: TLabel;
|
|
DBEdit9: TDBEdit;
|
|
DBRadioGroup2: TDBRadioGroup;
|
|
DBEdit10: TDBEdit;
|
|
Label18: TLabel;
|
|
zroqryTestaRepasse: TZReadOnlyQuery;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure dtsDBDataChange(Sender: TObject; Field: TField);
|
|
procedure spdbtn_pesquisaClick(Sender: TObject);
|
|
procedure btn_clearmemoClick(Sender: TObject);
|
|
procedure navSecundarioBeforeAction(Sender: TObject; Button: TNavigateBtn);
|
|
procedure dtsFaixaDataChange(Sender: TObject; Field: TField);
|
|
procedure dtsPolDataChange(Sender: TObject; Field: TField);
|
|
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
|
procedure spdbtn_verIEClick(Sender: TObject);
|
|
procedure ACBrCEP1BuscaEfetuada(Sender: TObject);
|
|
procedure dbedt_cepKeyPress(Sender: TObject; var Key: Char);
|
|
procedure navFaixasBeforeAction(Sender: TObject; Button: TNavigateBtn);
|
|
procedure CredorClick(Sender: TObject);
|
|
procedure Poltica1Click(Sender: TObject);
|
|
procedure Faixa1Click(Sender: TObject);
|
|
procedure dtsEstadosDataChange(Sender: TObject; Field: TField);
|
|
procedure dtsCidadesDataChange(Sender: TObject; Field: TField);
|
|
procedure Copiar1Click(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure dtsDBStateChange(Sender: TObject);
|
|
procedure dtsPolStateChange(Sender: TObject);
|
|
procedure dtsFaixaStateChange(Sender: TObject);
|
|
procedure PopupMenu1Popup(Sender: TObject);
|
|
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure navPrincipalBeforeAction(Sender: TObject; Button: TNavigateBtn);
|
|
procedure pcClientesChange(Sender: TObject);
|
|
procedure dtsIndicadorFinanceiroStateChange(Sender: TObject);
|
|
procedure navIndicadorFinanceiroBeforeAction(Sender: TObject;
|
|
Button: TNavigateBtn);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure dbgrd_indicadorfinanceiroTitleClick(Column: TColumn);
|
|
procedure edt_procuraChange(Sender: TObject);
|
|
procedure dbrg_tpentradaClick(Sender: TObject);
|
|
procedure dtsRepasseStateChange(Sender: TObject);
|
|
procedure dtsRepasseFaseStateChange(Sender: TObject);
|
|
procedure btn_reprepasseClick(Sender: TObject);
|
|
procedure navRepasseBeforeAction(Sender: TObject; Button: TNavigateBtn);
|
|
procedure pcRepasseChange(Sender: TObject);
|
|
private
|
|
old_id: integer;
|
|
function FindSubcontrolAtPos(AControl: TControl;
|
|
AScreenPos, AClientPos: TPoint): TControl;
|
|
function FindControlAtPos(AScreenPos: TPoint): TControl;
|
|
procedure SetupHackedNavigator(const Navigator: TDBNavigator;
|
|
const Glyphs: TImageList; S: string);
|
|
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
|
|
procedure ChecaPermissoes;
|
|
{ Private declarations }
|
|
public
|
|
pos: TPoint;
|
|
primeiro_cad: Boolean;
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
cadCredor: TcadCredor;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses udtmSystem, ufrmPesquisa, ufrmVerIE, ufrmCobranca, ufrmLiberaPermissao;
|
|
|
|
procedure TcadCredor.CredorClick(Sender: TObject);
|
|
begin
|
|
// add um novo beneficiário
|
|
pcClientes.TabIndex := 0;
|
|
navPrincipal.DataSource.DataSet.Append;
|
|
end;
|
|
|
|
procedure TcadCredor.btn_clearmemoClick(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
// limpa as linhas do memo box
|
|
dbmemo_obs.Lines.Clear;
|
|
end;
|
|
|
|
procedure TcadCredor.btn_reprepasseClick(Sender: TObject);
|
|
var
|
|
i, ano: integer;
|
|
pr, multa, juros, enc, cor: double;
|
|
begin
|
|
inherited;
|
|
with dtmSystem do
|
|
begin
|
|
if not tblEmpresaRepasse.IsEmpty then
|
|
begin
|
|
if Messagedlg
|
|
('Deseja repetir este repasse ao longo do ano a que ele pertence?',
|
|
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
|
|
begin
|
|
pr := tblEmpresaRepassePR_PRINCIPAL.AsFloat;
|
|
multa := tblEmpresaRepassePR_MULTA.AsFloat;
|
|
juros := tblEmpresaRepassePR_JUROS.AsFloat;
|
|
enc := tblEmpresaRepassePR_ENCARGOS.AsFloat;
|
|
cor := tblEmpresaRepassePR_CORRIGIDO.AsFloat;
|
|
ano := tblEmpresaRepasseID_ANO.AsInteger;
|
|
tblEmpresaRepasse.Filtered := false;
|
|
tblEmpresaRepasse.Filter := 'ID_ANO = ' +
|
|
tblEmpresaRepasseID_ANO.AsString;
|
|
tblEmpresaRepasse.Filtered := True;
|
|
for i := 1 to 12 do
|
|
begin
|
|
if not tblEmpresaRepasse.Locate('ID_MES', i, []) then
|
|
begin
|
|
tblEmpresaRepasse.Append;
|
|
tblEmpresaRepassePR_PRINCIPAL.AsFloat := pr;
|
|
tblEmpresaRepassePR_MULTA.AsFloat := multa;
|
|
tblEmpresaRepassePR_JUROS.AsFloat := juros;
|
|
tblEmpresaRepassePR_ENCARGOS.AsFloat := enc;
|
|
tblEmpresaRepassePR_CORRIGIDO.AsFloat := cor;
|
|
tblEmpresaRepasseID_MES.AsInteger := i;
|
|
tblEmpresaRepasseID_ANO.AsInteger := ano;
|
|
tblEmpresaRepasseTX_NOME.AsString := inttostr(i) + '/' +
|
|
inttostr(ano);
|
|
tblEmpresaRepasse.Post;
|
|
end;
|
|
end;
|
|
tblEmpresaRepasse.Filtered := false;
|
|
tblEmpresaRepasse.Filter := '';
|
|
Showmessage('Processo terminado!');
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.ChecaPermissoes;
|
|
begin
|
|
with dtmSystem do
|
|
begin
|
|
navPrincipal.Enabled := VerificarPermissao('CBR.02.02.01');
|
|
if not VerificarPermissao('CBR.02.02.01.01') then
|
|
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons - [nbInsert];
|
|
if not VerificarPermissao('CBR.02.02.01.02') then
|
|
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons - [nbEdit];
|
|
if not VerificarPermissao('CBR.02.02.01.03') then
|
|
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons - [nbDelete];
|
|
tabTabelas.Enabled := VerificarPermissao('CBR.02.02.01.04');
|
|
navSecundario.Enabled := VerificarPermissao('CBR.02.02.02');
|
|
navFaixas.Enabled := VerificarPermissao('CBR.02.02.03');
|
|
navIndicadorFinanceiro.Enabled := VerificarPermissao('CBR.02.02.04');
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.Copiar1Click(Sender: TObject);
|
|
var
|
|
Control: TControl;
|
|
begin
|
|
// usa duas funções que achei na net pra pegar o controle na pos do mouse pra poder copiar o conteúdo dele mesmo desabilitado
|
|
Control := FindControlAtPos(pos);
|
|
if Control is TDBEdit then
|
|
begin
|
|
Clipboard.AsText := (Control as TDBEdit).Text;
|
|
end;
|
|
if Control is TDBLookupComboBox then
|
|
begin
|
|
Clipboard.AsText := (Control as TDBLookupComboBox).Text;
|
|
end;
|
|
if Control is TrDBDateTimePicker then
|
|
begin
|
|
Clipboard.AsText := formatdatetime('dd/mm/yyyy',
|
|
(Control as TrDBDateTimePicker).Date);
|
|
end;
|
|
if Control is TDBMemo then
|
|
begin
|
|
(Control as TDBMemo).SelectAll;
|
|
(Control as TDBMemo).CopyToClipboard;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.dbedt_cepKeyPress(Sender: TObject; var Key: Char);
|
|
begin
|
|
// busca endereço pelo cep ao apertar enter
|
|
if (Key = #13) then
|
|
begin
|
|
ACBrCEP1.BuscarPorCEP(dbedt_cep.Text);
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.dbgrd_indicadorfinanceiroTitleClick(Column: TColumn);
|
|
begin
|
|
inherited;
|
|
dtmSystem.OrganizaPorColuna
|
|
(dbgrd_indicadorfinanceiro.DataSource.DataSet, Column);
|
|
end;
|
|
|
|
procedure TcadCredor.dbrg_tpentradaClick(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if dbrg_tpentrada.ItemIndex = 0 then
|
|
begin
|
|
dbedt_taxabasicaentradamin.Enabled := True;
|
|
dbedt_taxabasicaentradamax.Enabled := True;
|
|
end
|
|
else
|
|
begin
|
|
dbedt_taxabasicaentradamin.Enabled := false;
|
|
dbedt_taxabasicaentradamax.Enabled := false;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.dtsCidadesDataChange(Sender: TObject; Field: TField);
|
|
begin
|
|
// arruma o combo box com o id da cidade se existir
|
|
if (dtmSystem.tblEnderecosID_CIDADE.AsVariant >= 0) then
|
|
begin
|
|
dblucmbox_cidade.KeyValue := dtmSystem.tblEnderecosID_CIDADE.AsVariant;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.dtsDBDataChange(Sender: TObject; Field: TField);
|
|
var
|
|
new_id: integer;
|
|
mes, ano, name: string;
|
|
begin
|
|
// acontece sempre que muda algum dado no dtsDB desta janela
|
|
if dbrg_tpentrada.ItemIndex = 0 then
|
|
begin
|
|
dbedt_taxabasicaentradamin.Enabled := True;
|
|
dbedt_taxabasicaentradamax.Enabled := True;
|
|
end
|
|
else
|
|
begin
|
|
dbedt_taxabasicaentradamin.Enabled := false;
|
|
dbedt_taxabasicaentradamax.Enabled := false;
|
|
end;
|
|
stbStatus.Panels[0].Text := 'Nº de Credores cadastrados: ' +
|
|
inttostr(dtsDB.DataSet.RecordCount) + '.';
|
|
// new_id := dtmSystem.tblCHGEmpresaID_EMPRESA.AsInteger;
|
|
// if (old_id <> new_id) and (self.Active) then
|
|
// begin
|
|
navSecundario.Enabled := not(dtsDB.DataSet.IsEmpty);
|
|
new_id := dtmSystem.tblCHGEmpresaID_EMPRESA.AsInteger;
|
|
if (old_id <> new_id) and (self.Active) then
|
|
begin
|
|
if old_id <> -1 then
|
|
begin
|
|
mes := copy(formatdatetime('yyyy-mm-dd', Date), 6, 2);
|
|
ano := copy(formatdatetime('yyyy-mm-dd', Date), 1, 4);
|
|
zroqryTestaRepasse.SQL.Text :=
|
|
'select * from chg_empresa_repasse where id_empresa = ' +
|
|
QuotedStr(inttostr(old_id)) + ' and id_mes = ' + QuotedStr(mes) +
|
|
' and id_ano = ' + QuotedStr(ano);
|
|
zroqryTestaRepasse.Open;
|
|
if zroqryTestaRepasse.IsEmpty then
|
|
begin
|
|
Showmessage('A empresa ' + name +
|
|
' não possui repasse para este mês. Isso impedirá a geração de recibos de títulos dessa empresa.');
|
|
end;
|
|
end;
|
|
old_id := new_id;
|
|
name := dtmSystem.tblCHGEmpresaTX_FANTASIA.AsString;
|
|
ChecaPermissoes;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.dtsDBStateChange(Sender: TObject);
|
|
begin
|
|
// grpDescricao.Enabled := dtsDB.State in [dsEdit, dsInsert];
|
|
// tabCadastro.Enabled := grpDescricao.Enabled;
|
|
inherited;
|
|
// dbgrd_credoreslist.Enabled := not(dtsDB.DataSet.IsEmpty);
|
|
|
|
// tabCadastro.Enabled := dtsDB.State in [dsEdit, dsInsert];
|
|
tabBasico.Enabled := dtsDB.State in [dsEdit, dsInsert];
|
|
edt_procura.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
|
|
tabObservacoes.Enabled := grpDescricao.Enabled;
|
|
dbmemo_obs.Enabled := grpDescricao.Enabled;
|
|
tabPolitica.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
|
|
tabIndicador.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
|
|
tabRepasses.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
|
|
// tabTabelas.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
|
|
end;
|
|
|
|
procedure TcadCredor.dtsEstadosDataChange(Sender: TObject; Field: TField);
|
|
begin
|
|
// arruma o combo box da cidade e do estado
|
|
if (dtmSystem.tblEnderecosID_ESTADO.AsVariant >= 0) then
|
|
begin
|
|
dblucmbox_uf.KeyValue := dtmSystem.tblEstadosID_ESTADO.AsVariant;
|
|
end;
|
|
|
|
if (dtmSystem.tblEnderecosID_CIDADE.AsVariant >= 0) then
|
|
begin
|
|
dblucmbox_cidade.KeyValue := dtmSystem.tblCidadesID_CIDADE.AsVariant;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.dtsFaixaDataChange(Sender: TObject; Field: TField);
|
|
begin
|
|
|
|
if (dtmSystem.tblFaixasID_FAIXA.AsVariant >= 0) and
|
|
(dtsFaixa.State in [dsBrowse]) then
|
|
begin
|
|
dbl_faixa.KeyValue := dtmSystem.tblFaixasID_FAIXA.AsVariant;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.dtsFaixaStateChange(Sender: TObject);
|
|
begin
|
|
// acontece sempre que tiver mudança nos dados do db de faixas, mesma coisa de ali em cima
|
|
pnl_faixa.Enabled := dtsFaixa.State in [dsEdit, dsInsert];
|
|
gb_encargos.Enabled := dtsFaixa.State in [dsEdit, dsInsert];
|
|
gb_desc.Enabled := dtsFaixa.State in [dsEdit, dsInsert];
|
|
gb_politica.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
|
|
edt_procura.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
|
|
// tabCadastro.Enabled := not (dtsFaixa.State in [dsEdit, dsInsert]);
|
|
navPrincipal.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
|
|
if pcTarifas.ActivePage <> tabBasico then
|
|
begin
|
|
tabBasico.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
|
|
end;
|
|
if dtsFaixa.State in [dsEdit, dsInsert] then
|
|
begin
|
|
tabObservacoes.Enabled := false;
|
|
end;
|
|
navSecundario.Enabled := not(dtsFaixa.State in [dsEdit, dsInsert]);
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.dtsIndicadorFinanceiroStateChange(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
pnl_indicadorfinanceiro.Enabled := dtsIndicadorFinanceiro.State
|
|
in [dsEdit, dsInsert];
|
|
navPrincipal.Enabled := not(dtsIndicadorFinanceiro.State
|
|
in [dsEdit, dsInsert]);
|
|
edt_procura.Enabled := not(dtsIndicadorFinanceiro.State
|
|
in [dsEdit, dsInsert]);
|
|
navSecundario.Enabled := not(dtsIndicadorFinanceiro.State
|
|
in [dsEdit, dsInsert]);
|
|
navFaixas.Enabled := not(dtsIndicadorFinanceiro.State in [dsEdit, dsInsert]);
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.dtsPolDataChange(Sender: TObject; Field: TField);
|
|
begin
|
|
|
|
navFaixas.Enabled := not(dtsPol.DataSet.IsEmpty);
|
|
|
|
if (dtmSystem.tblPoliticasID_POLITICA.AsVariant >= 0) and
|
|
(dtsPol.State in [dsBrowse]) then
|
|
begin
|
|
dbl_poli.KeyValue := dtmSystem.tblPoliticasID_POLITICA.AsVariant;
|
|
end;
|
|
|
|
if (dtmSystem.tblFaixasID_FAIXA.AsVariant >= 0) and
|
|
(dtsFaixa.State in [dsBrowse]) then
|
|
begin
|
|
dbl_faixa.KeyValue := dtmSystem.tblFaixasID_FAIXA.AsVariant;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.dtsPolStateChange(Sender: TObject);
|
|
begin
|
|
// //mesmo de ali em cima, só que com o dbPoliticas
|
|
pnl_poli.Enabled := dtsPol.State in [dsEdit, dsInsert];
|
|
dbl_poli.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
edt_procura.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
|
|
gb_encargos.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
gb_faixas.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
gb_desc.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
|
|
// tabCadastro.Enabled := not (dtsPol.State in [dsEdit, dsInsert]);
|
|
tabObservacoes.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
tabIndicador.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
navPrincipal.Enabled := not(dtsPol.State in [dsEdit, dsInsert]);
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.dtsRepasseFaseStateChange(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if (dtsRepasseFase.State in [dsEdit, dsInsert]) then
|
|
begin
|
|
DBGrid1.Options := DBGrid1.Options + [dgEditing];
|
|
end
|
|
else
|
|
begin
|
|
DBGrid1.Options := DBGrid1.Options - [dgEditing];
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.dtsRepasseStateChange(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
tabRepasseFase.Enabled := not(dtsRepasse.State in [dsEdit, dsInsert]);
|
|
tabRepassedados.Enabled := (dtsRepasse.State in [dsEdit, dsInsert]);
|
|
end;
|
|
|
|
procedure TcadCredor.edt_procuraChange(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
dtmSystem.tblCHGEmpresa.Locate('TX_NOME', edt_procura.Text,
|
|
[loCaseInsensitive, loPartialKey]);
|
|
end;
|
|
|
|
procedure TcadCredor.Faixa1Click(Sender: TObject);
|
|
begin
|
|
// add faixa
|
|
pcClientes.TabIndex := 1;
|
|
navFaixas.DataSource.DataSet.Append;
|
|
end;
|
|
|
|
function TcadCredor.FindControlAtPos(AScreenPos: TPoint): TControl;
|
|
var
|
|
i: integer;
|
|
f, m: TForm;
|
|
p: TPoint;
|
|
r: TRect;
|
|
begin
|
|
// acha controle na posição do mouse
|
|
Result := nil;
|
|
for i := Screen.FormCount - 1 downto 0 do
|
|
begin
|
|
f := Screen.Forms[i];
|
|
if f.Visible and (f.Parent = nil) and (f.FormStyle <> fsMDIChild) and
|
|
TRect.Create(f.Left, f.Top, f.Left + f.Width, f.Top + f.Height)
|
|
.Contains(AScreenPos) then
|
|
Result := f;
|
|
end;
|
|
Result := FindSubcontrolAtPos(Result, AScreenPos, AScreenPos);
|
|
if (Result is TForm) and (TForm(Result).ClientHandle <> 0) then
|
|
begin
|
|
Winapi.Windows.GetWindowRect(TForm(Result).ClientHandle, r);
|
|
p := TPoint.Create(AScreenPos.X - r.Left, AScreenPos.Y - r.Top);
|
|
m := nil;
|
|
for i := TForm(Result).MDIChildCount - 1 downto 0 do
|
|
begin
|
|
f := TForm(Result).MDIChildren[i];
|
|
if TRect.Create(f.Left, f.Top, f.Left + f.Width, f.Top + f.Height)
|
|
.Contains(p) then
|
|
m := f;
|
|
end;
|
|
if m <> nil then
|
|
Result := FindSubcontrolAtPos(m, AScreenPos, p);
|
|
end;
|
|
end;
|
|
|
|
function TcadCredor.FindSubcontrolAtPos(AControl: TControl;
|
|
AScreenPos, AClientPos: TPoint): TControl;
|
|
var
|
|
i: integer;
|
|
C: TControl;
|
|
begin
|
|
Result := nil;
|
|
C := AControl;
|
|
if (C = nil) or not C.Visible or not TRect.Create(C.Left, C.Top,
|
|
C.Left + C.Width, C.Top + C.Height).Contains(AClientPos) then
|
|
Exit;
|
|
Result := AControl;
|
|
if AControl is TWinControl then
|
|
for i := 0 to TWinControl(AControl).ControlCount - 1 do
|
|
begin
|
|
C := FindSubcontrolAtPos(TWinControl(AControl).Controls[i], AScreenPos,
|
|
AControl.ScreenToClient(AScreenPos));
|
|
if C <> nil then
|
|
Result := C;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
with dtmSystem do
|
|
begin
|
|
tblCHGEmpresa.Close;
|
|
tblCidades.Close;
|
|
tblEstados.Close;
|
|
tblPoliticas.Close;
|
|
tblFaixas.Close;
|
|
tblRepasse.Close;
|
|
tblIndicadorFinanceiro.Close;
|
|
end;
|
|
cadCredor := nil;
|
|
Action := caFree;
|
|
end;
|
|
|
|
procedure TcadCredor.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
|
begin
|
|
|
|
if (navSecundario.DataSource <> nil) or (navFaixas.DataSource <> nil) or
|
|
(navPrincipal.DataSource <> nil) then
|
|
begin
|
|
if (navSecundario.DataSource.State in [dsInsert, dsEdit]) or
|
|
(navFaixas.DataSource.State in [dsInsert, dsEdit]) or
|
|
(navPrincipal.DataSource.State in [dsInsert, dsEdit]) then
|
|
begin
|
|
Messagedlg
|
|
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
|
|
mtConfirmation, [mbOK], 0);
|
|
CanClose := false;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.FormCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
// abre tabelas usadas nesta janela
|
|
with dtmSystem do
|
|
begin
|
|
if not tblCHGEmpresa.Active then
|
|
begin
|
|
tblCHGEmpresa.Open;
|
|
end;
|
|
if not tblEmpresaRepasse.Active then
|
|
begin
|
|
tblEmpresaRepasse.Open;
|
|
end;
|
|
if not tblEstados.Active then
|
|
begin
|
|
tblEstados.Open;
|
|
end;
|
|
if not tblCidades.Active then
|
|
begin
|
|
tblCidades.Open;
|
|
end;
|
|
if not tblPoliticas.Active then
|
|
begin
|
|
tblPoliticas.Open;
|
|
end;
|
|
if not tblFaixas.Active then
|
|
begin
|
|
tblFaixas.Open;
|
|
end;
|
|
if not tblRepasse.Active then
|
|
begin
|
|
tblRepasse.Open;
|
|
end;
|
|
if not tblIndicadorFinanceiro.Active then
|
|
begin
|
|
tblIndicadorFinanceiro.Open;
|
|
end;
|
|
end;
|
|
|
|
if dtsDB.DataSet.IsEmpty then
|
|
begin
|
|
dbgrd_credoreslist.Enabled := false;
|
|
end
|
|
else
|
|
begin
|
|
dbgrd_credoreslist.Enabled := True;
|
|
end;
|
|
|
|
// função usada pra "hackear" o navigator e torná-lo customizável
|
|
SetupHackedNavigator(navPrincipal, ImageList1, 's');
|
|
SetupHackedNavigator(navSecundario, ImageList1, 's');
|
|
SetupHackedNavigator(navFaixas, ImageList1, 's');
|
|
SetupHackedNavigator(navIndicadorFinanceiro, ImageList1, 's');
|
|
SetupHackedNavigator(navRepasse, ImageList1, 's');
|
|
SetupHackedNavigator(navrepassefase, ImageList1, 's');
|
|
|
|
navSecundario.Enabled := not(dtsDB.DataSet.IsEmpty);
|
|
navFaixas.Enabled := not(dtsPol.DataSet.IsEmpty);
|
|
ChecaPermissoes;
|
|
// navPrincipal.Enabled := dtmSystem.VerificarPermissao('BENCBR.01');
|
|
// navSecundario.Enabled := dtmSystem.VerificarPermissao('BENCBR.01');
|
|
// navFaixas.Enabled := dtmSystem.VerificarPermissao('BENCBR.01');
|
|
|
|
pcTarifas.TabIndex := 0;
|
|
pcRepasse.TabIndex := 0;
|
|
primeiro_cad := false;
|
|
old_id := -1;
|
|
if dtmSystem.id_grupo = 1 then
|
|
begin
|
|
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons + [nbDelete];
|
|
btn_reprepasse.Visible := True;
|
|
btn_reprepasse.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.FormKeyDown(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
begin
|
|
// inherited;
|
|
if Key = VK_ESCAPE then
|
|
begin
|
|
Key := 0;
|
|
Close;
|
|
end;
|
|
if (Key = 75) and (Shift = [ssCtrl]) then
|
|
begin
|
|
// ShowMessage('Ctrl+k is pressed!');
|
|
frmLiberaPermissao := TfrmLiberaPermissao.Create(self);
|
|
|
|
with frmLiberaPermissao do
|
|
begin
|
|
level := 3;
|
|
string_permissoes.Add('CBR.02.02.01');
|
|
string_permissoes.Add('CBR.02.02.01.01');
|
|
string_permissoes.Add('CBR.02.02.01.02');
|
|
string_permissoes.Add('CBR.02.02.01.03');
|
|
string_permissoes.Add('CBR.02.02.01.04');
|
|
string_permissoes.Add('CBR.02.02.02');
|
|
string_permissoes.Add('CBR.02.02.03');
|
|
string_permissoes.Add('CBR.02.02.04');
|
|
|
|
ShowModal;
|
|
|
|
if ModalResult = mrOk then
|
|
begin
|
|
case dtmSystem.cod_liberapermissao of
|
|
0:
|
|
navPrincipal.Enabled := True;
|
|
1:
|
|
begin
|
|
navPrincipal.Enabled := True;
|
|
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons +
|
|
[nbInsert];
|
|
end;
|
|
2:
|
|
begin
|
|
navPrincipal.Enabled := True;
|
|
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons
|
|
+ [nbEdit];
|
|
end;
|
|
3:
|
|
begin
|
|
navPrincipal.Enabled := True;
|
|
navPrincipal.VisibleButtons := navPrincipal.VisibleButtons +
|
|
[nbDelete];
|
|
end;
|
|
4:
|
|
tabTabelas.Enabled := True;
|
|
5:
|
|
navSecundario.Enabled := True;
|
|
6:
|
|
navFaixas.Enabled := True;
|
|
7:
|
|
navIndicadorFinanceiro.Enabled := True;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.FormShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if not(dtmSystem.tblCHGEmpresa.Active) then
|
|
begin
|
|
dtmSystem.tblCHGEmpresa.Open;
|
|
end;
|
|
if dtmSystem.tblCHGEmpresa.IsEmpty then
|
|
begin
|
|
// navPrincipal.VisibleButtons := navPrincipal.VisibleButtons + [nbInsert];
|
|
dtsDB.DataSet.Append;
|
|
primeiro_cad := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.navFaixasBeforeAction(Sender: TObject;
|
|
Button: TNavigateBtn);
|
|
begin
|
|
// acontece sempre antes de qualquer ação do navigator
|
|
// primeiro o meu código, depois o obtido pela herança pq o inherited tá lá no final
|
|
case Button of
|
|
nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh:
|
|
if navFaixas.DataSource.State in [dsInsert, dsEdit] then
|
|
begin
|
|
Messagedlg
|
|
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
|
|
mtConfirmation, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
|
|
nbPost:
|
|
begin
|
|
if dbedt_nomefaixa.Text = '' then
|
|
begin
|
|
Messagedlg('Por favor insira um nome para a Faixa.', mtWarning,
|
|
[mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitprinfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre principal ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitmultafaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre multa ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitjurosfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre juros ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitcorfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre corrigido ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitindfinfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre indicador financeiro ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinprinfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre principal ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinmultafaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre multa ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinjurosfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre juros ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfincorfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre corrigido ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinindfinfaixa.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre indicador financeiro ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbrg_tpfaixa.ItemIndex < 0 then
|
|
begin
|
|
Messagedlg('Por favor escolha o tipo de Faixa.', mtWarning,
|
|
[mbOK], 0);
|
|
Abort;
|
|
end;
|
|
SelectNext(ActiveControl as TWinControl, True, True);
|
|
end;
|
|
|
|
nbDelete:
|
|
begin
|
|
if navFaixas.DataSource.State in [dsInsert, dsEdit] then
|
|
begin
|
|
Messagedlg
|
|
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
|
|
mtConfirmation, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
|
|
if Messagedlg('Deseja apagar este registro?', mtConfirmation,
|
|
[mbYes, mbNo], 0) = mrNo then
|
|
Abort;
|
|
|
|
try
|
|
dtsFaixa.DataSet.Delete;
|
|
except
|
|
Showmessage
|
|
('Este registro está sendo utilizado pelo sistema ou contém dependências e não pode ser apagado');
|
|
end;
|
|
|
|
Abort;
|
|
end;
|
|
|
|
nbCancel:
|
|
if Messagedlg('Deseja cancelar as modificações?', mtConfirmation,
|
|
[mbYes, mbNo], 0) = mrNo then
|
|
Abort;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.navIndicadorFinanceiroBeforeAction(Sender: TObject;
|
|
Button: TNavigateBtn);
|
|
begin
|
|
inherited;
|
|
// acontece sempre antes de qualquer ação do navigator
|
|
// primeiro o meu código, depois o obtido pela herança
|
|
case Button of
|
|
nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh:
|
|
if navIndicadorFinanceiro.DataSource.State in [dsInsert, dsEdit] then
|
|
begin
|
|
Messagedlg
|
|
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
|
|
mtConfirmation, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
|
|
nbPost:
|
|
begin
|
|
SelectNext(ActiveControl as TWinControl, True, True);
|
|
end;
|
|
|
|
nbDelete:
|
|
begin
|
|
if navIndicadorFinanceiro.DataSource.State in [dsInsert, dsEdit] then
|
|
begin
|
|
Messagedlg
|
|
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
|
|
mtConfirmation, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
|
|
if Messagedlg('Deseja apagar este registro?', mtConfirmation,
|
|
[mbYes, mbNo], 0) = mrNo then
|
|
Abort;
|
|
|
|
try
|
|
dtsIndicadorFinanceiro.DataSet.Delete;
|
|
except
|
|
Showmessage
|
|
('Este registro está sendo utilizado pelo sistema ou contém dependências e não pode ser apagado');
|
|
end;
|
|
|
|
Abort;
|
|
end;
|
|
|
|
nbCancel:
|
|
if Messagedlg('Deseja cancelar as modificações?', mtConfirmation,
|
|
[mbYes, mbNo], 0) = mrNo then
|
|
Abort;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.navPrincipalBeforeAction(Sender: TObject;
|
|
Button: TNavigateBtn);
|
|
begin
|
|
case Button of
|
|
nbPost:
|
|
begin
|
|
if DBEdit1.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira uma Razão Social antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_fantasia.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um Nome Fantasia antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_taxabasicamulta.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para multa antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_taxabasicajuros.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para juros antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbrg_tpentrada.ItemIndex < 0 then
|
|
begin
|
|
Messagedlg
|
|
('Por favor selecione o tipo de entrada a ser utilizada para parcelamento antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbrg_din.ItemIndex < 0 then
|
|
begin
|
|
Messagedlg
|
|
('Por favor selecione o tipo de juros para parcelameto em Dinheiro antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbrg_che.ItemIndex < 0 then
|
|
begin
|
|
Messagedlg
|
|
('Por favor selecione o tipo de juros para parcelameto em Cheque antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbrg_cred.ItemIndex < 0 then
|
|
begin
|
|
Messagedlg
|
|
('Por favor selecione o tipo de juros para parcelameto em Crédito antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if (dbedt_taxabasicaentradamin.Text = '') and
|
|
(dbrg_tpentrada.ItemIndex = 0) then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para entrada mínima antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if (dbedt_taxabasicaentradamax.Text = '') and
|
|
(dbrg_tpentrada.ItemIndex = 0) then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para entrada máxima antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitprinbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre principal ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitmultabasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre multa ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitjurosbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre juros ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitindfinbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre indicador financeiro ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descquitcorbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre corrigido ao quitar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinprinbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre principal ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinmultabasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre multa ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinjurosbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre juros ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfinindfinbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre indicador financeiro ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
if dbedt_descfincorbasico.Text = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor insira um valor para desconto sobre corrigido ao financiar antes de finalizar o cadastro do Credor.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
primeiro_cad := false;
|
|
end;
|
|
nbCancel:
|
|
begin
|
|
if primeiro_cad = True then
|
|
begin
|
|
Messagedlg('Por favor termine de cadastrar o Credor.', mtWarning,
|
|
[mbOK], 0);
|
|
Abort;
|
|
end;
|
|
end;
|
|
end;
|
|
inherited;
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.navRepasseBeforeAction(Sender: TObject;
|
|
Button: TNavigateBtn);
|
|
begin
|
|
inherited;
|
|
case Button of
|
|
nbPost:
|
|
begin
|
|
if (DBComboBox1.ItemIndex < 0) or (DBComboBox2.ItemIndex < 0) then
|
|
begin
|
|
Messagedlg('Por favor indique o mês e o ano do repasse.', mtWarning,
|
|
[mbOK], 0);
|
|
Abort;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.navSecundarioBeforeAction(Sender: TObject;
|
|
Button: TNavigateBtn);
|
|
begin
|
|
// acontece sempre antes de qualquer ação do navigator
|
|
// primeiro o meu código, depois o obtido pela herança
|
|
case Button of
|
|
nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh:
|
|
if navSecundario.DataSource.State in [dsInsert, dsEdit] then
|
|
begin
|
|
Messagedlg
|
|
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
|
|
mtConfirmation, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
|
|
nbPost:
|
|
begin
|
|
if dbedt_nomepoli.Text = '' then
|
|
begin
|
|
Messagedlg('Por favor insira um nome para a nova política.',
|
|
mtWarning, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
|
|
SelectNext(ActiveControl as TWinControl, True, True);
|
|
end;
|
|
|
|
nbDelete:
|
|
begin
|
|
if navSecundario.DataSource.State in [dsInsert, dsEdit] then
|
|
begin
|
|
Messagedlg
|
|
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
|
|
mtConfirmation, [mbOK], 0);
|
|
Abort;
|
|
end;
|
|
|
|
if Messagedlg('Deseja apagar este registro?', mtConfirmation,
|
|
[mbYes, mbNo], 0) = mrNo then
|
|
Abort;
|
|
|
|
try
|
|
dtsPol.DataSet.Delete;
|
|
except
|
|
Showmessage
|
|
('Este registro está sendo utilizado pelo sistema ou contém dependências e não pode ser apagado');
|
|
end;
|
|
|
|
Abort;
|
|
end;
|
|
|
|
nbCancel:
|
|
if Messagedlg('Deseja cancelar as modificações?', mtConfirmation,
|
|
[mbYes, mbNo], 0) = mrNo then
|
|
Abort;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.pcClientesChange(Sender: TObject);
|
|
begin
|
|
if pcClientes.TabIndex = 1 then
|
|
begin
|
|
pcTarifas.TabIndex := 0;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.pcRepasseChange(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if pcRepasse.TabIndex = 1 then
|
|
begin
|
|
btn_reprepasse.Enabled := false;
|
|
end
|
|
else
|
|
begin
|
|
btn_reprepasse.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.Poltica1Click(Sender: TObject);
|
|
begin
|
|
// add política
|
|
pcClientes.TabIndex := 1;
|
|
navSecundario.DataSource.DataSet.Append;
|
|
end;
|
|
|
|
procedure TcadCredor.PopupMenu1Popup(Sender: TObject);
|
|
begin
|
|
pos := Mouse.CursorPos;
|
|
end;
|
|
|
|
procedure TcadCredor.SetupHackedNavigator(const Navigator: TDBNavigator;
|
|
const Glyphs: TImageList; S: string);
|
|
const
|
|
Captions: array [TNavigateBtn] of string = ('Primeiro', 'Anterior', 'Próximo',
|
|
'Último', 'Adicionar', 'Excluir', 'Alterar', 'Confirmar', 'Cancelar',
|
|
'Atualizar', 'Aplicar Atualizações', 'Cancelar Atualizãções');
|
|
(* Captions : array[TNavigateBtn] of string =
|
|
('First', 'Prior', 'Next', 'Last', 'Insert',
|
|
'Delete', 'Edit', 'Post', 'Cancel', 'Refresh'); *)
|
|
Hints: array [TNavigateBtn] of string = ('Primeiro', 'Anterior', 'Próximo',
|
|
'Último', 'Adicionar', 'Apagar', 'Modificar', 'Confirmar', 'Cancelar',
|
|
'Atualizar', 'Aplicar Atualizações', 'Cancelar Atualizãções');
|
|
var
|
|
btn: TNavigateBtn;
|
|
begin
|
|
// função propriamente dita para "hackear" o navigator
|
|
for btn := Low(TNavigateBtn) to High(TNavigateBtn) do
|
|
with THackDBNavigator(Navigator).Buttons[btn] do
|
|
begin
|
|
// from the Captions const array
|
|
|
|
Hint := Hints[btn];
|
|
|
|
if LowerCase(S) = 's' then
|
|
begin
|
|
Caption := Captions[btn];
|
|
end;
|
|
|
|
// the number of images in the Glyph property
|
|
NumGlyphs := 1;
|
|
// Remove the old glyph.
|
|
Glyph := nil;
|
|
// Assign the custom one
|
|
Glyphs.GetBitmap(integer(btn), Glyph);
|
|
// gylph above text
|
|
Layout := blGlyphTop;
|
|
|
|
Font.Style := Font.Style - [fsbold];
|
|
end;
|
|
end;
|
|
|
|
procedure TcadCredor.spdbtn_pesquisaClick(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
// abre janela pesquisa
|
|
TfrmPesquisa.Create(self).ShowModal;
|
|
end;
|
|
|
|
procedure TcadCredor.spdbtn_verIEClick(Sender: TObject);
|
|
begin
|
|
// verifica o IE do beneficiário
|
|
frmVerIE := TfrmVerIE.Create(self);
|
|
frmVerIE.ShowModal;
|
|
end;
|
|
|
|
procedure TcadCredor.WMMoving(var Msg: TWMMoving);
|
|
var
|
|
workArea: TRect;
|
|
begin
|
|
workArea := Screen.WorkareaRect;
|
|
|
|
with Msg.DragRect^ do
|
|
begin
|
|
if Left < workArea.Left then
|
|
OffsetRect(Msg.DragRect^, workArea.Left - Left, 0);
|
|
|
|
if Top < workArea.Top then
|
|
OffsetRect(Msg.DragRect^, 0, workArea.Top - Top);
|
|
|
|
if Right > workArea.Right then
|
|
OffsetRect(Msg.DragRect^, workArea.Right - Right, 0);
|
|
|
|
if Bottom > workArea.Bottom then
|
|
OffsetRect(Msg.DragRect^, 0, workArea.Bottom - Bottom);
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TcadCredor.ACBrCEP1BuscaEfetuada(Sender: TObject);
|
|
var
|
|
i: integer;
|
|
begin
|
|
// busca por cep
|
|
for i := 0 to ACBrCEP1.Enderecos.Count - 1 do
|
|
begin
|
|
dbedt_end.Text := ACBrCEP1.Enderecos[i].Tipo_Logradouro + ' ' +
|
|
ACBrCEP1.Enderecos[i].Logradouro;
|
|
dbedt_compl.Text := ACBrCEP1.Enderecos[i].Complemento;
|
|
dbedt_bairro.Text := ACBrCEP1.Enderecos[i].Bairro;
|
|
end;
|
|
end;
|
|
|
|
end.
|