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.
216 lines
6.1 KiB
216 lines
6.1 KiB
unit ufrmAgendamento;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
|
|
System.Classes, Vcl.Graphics, System.DateUtils, System.UITypes,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstMaster, Data.DB, Vcl.Grids,
|
|
Vcl.DBGrids, Vcl.StdCtrls, Vcl.DBCtrls, Vcl.ComCtrls, ZAbstractRODataset,
|
|
ZAbstractDataset, ZDataset;
|
|
|
|
type
|
|
TfrmAgendamento = class(TmstMaster)
|
|
queryCobradores: TZQuery;
|
|
queryCobradoresID_USUARIO: TIntegerField;
|
|
queryCobradoresTX_NOME: TWideStringField;
|
|
dtsCobrador: TDataSource;
|
|
GroupBox1: TGroupBox;
|
|
lbl_dtcobranca: TLabel;
|
|
dtp_diaagendamento: TDateTimePicker;
|
|
lbl_horacobranca: TLabel;
|
|
dtp_horaagendamento: TDateTimePicker;
|
|
lbl_cobradoragendado: TLabel;
|
|
dblucb_cobradoragendar: TDBLookupComboBox;
|
|
GroupBox2: TGroupBox;
|
|
edt_nomefiltro: TEdit;
|
|
dtsDevedores: TDataSource;
|
|
DBGrid1: TDBGrid;
|
|
lbl_nomedevedor: TLabel;
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
dtsHist: TDataSource;
|
|
ROqryhist: TZReadOnlyQuery;
|
|
ROqryhistID_DEVEDOR: TIntegerField;
|
|
ROqryhistMAX_HIST: TIntegerField;
|
|
DBLookupComboBox1: TDBLookupComboBox;
|
|
Label1: TLabel;
|
|
mem_hist: TMemo;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure edt_nomefiltroChange(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure DBGrid1TitleClick(Column: TColumn);
|
|
private
|
|
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmAgendamento: TfrmAgendamento;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses udtmSystem;
|
|
|
|
procedure TfrmAgendamento.Button1Click(Sender: TObject);
|
|
var
|
|
str_helper: string;
|
|
begin
|
|
inherited;
|
|
if (dblucb_cobradoragendar.ListFieldIndex = -1) then
|
|
begin
|
|
MessageDlg
|
|
('Por favor selecione um cobrador para qual será agendada a cobrança.',
|
|
mtWarning, [mbOK], 0);
|
|
abort;
|
|
end
|
|
else
|
|
begin
|
|
if (DBLookupComboBox1.ListFieldIndex = -1) then
|
|
begin
|
|
MessageDlg
|
|
('Por favor selecione uma providência para qual será dada a agenda.',
|
|
mtWarning, [mbOK], 0);
|
|
abort;
|
|
end;
|
|
with dtmSystem do
|
|
begin
|
|
if not(tblAgenda.Active) then
|
|
begin
|
|
tblAgenda.Open;
|
|
end;
|
|
tblAgenda.Refresh;
|
|
while tblAgenda.Locate('ID_DEVEDOR;TP_SITUACAO',
|
|
VarArrayOf([dtsDevedores.DataSet.FieldByName('ID_DEVEDOR').AsInteger,
|
|
'A']), []) do
|
|
begin
|
|
tblAgenda.Edit;
|
|
tblAgendaTP_SITUACAO.AsString := 'B';
|
|
tblAgenda.Post;
|
|
end;
|
|
tblAgenda.Append;
|
|
tblAgendaID_COBRADOR.AsInteger := dblucb_cobradoragendar.KeyValue;
|
|
tblAgendaID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger;
|
|
tblAgendaDT_AGENDADA.AsDateTime := Dateof(dtp_diaagendamento.Date);
|
|
tblAgendaHR_AGENDADA.AsDateTime := Timeof(dtp_horaagendamento.Time);
|
|
tblAgendaDT_QUE_AGENDOU.AsDateTime := Now;
|
|
tblAgendaQUEM_AGENDOU.AsInteger := dtmSystem.id_usuario;
|
|
tblAgenda.Post;
|
|
|
|
if not(tblCampanhaDevedores.Active) then
|
|
begin
|
|
tblCampanhaDevedores.Open;
|
|
end;
|
|
tblCampanhaDevedores.Filtered := false;
|
|
while tblCampanhaDevedores.Locate('ID_DEVEDOR',
|
|
dtsDevedores.DataSet.FieldByName('ID_DEVEDOR').AsInteger, []) do
|
|
begin
|
|
dtmSystem.tblCampanhaDevedores.Delete;
|
|
end;
|
|
str_helper := 'Agendado para o dia ' + datetostr(dateof(dtp_diaagendamento.Date))
|
|
+ ' no horário ' + timetostr(timeof(dtp_horaagendamento.Time)) +
|
|
' para o cobrador ' + dblucb_cobradoragendar.Text;
|
|
dtmSystem.tblHistorico.Append;
|
|
dtmSystem.tblHistoricoID_COBRADOR.AsInteger := dtmSystem.id_usuario;
|
|
dtmSystem.tblHistoricoID_DEVEDOR.AsInteger :=
|
|
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
|
|
dtmSystem.tblHistoricoID_PROVIDENCIA.AsInteger :=
|
|
DBLookupComboBox1.KeyValue;
|
|
mem_hist.Lines.Add(str_helper);
|
|
dtmSystem.tblHistoricoTL_MEMO.AsString := mem_hist.Lines.Text;
|
|
dtmSystem.tblHistorico.Post;
|
|
mem_hist.Clear;
|
|
end;
|
|
Close;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmAgendamento.Button2Click(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
queryCobradores.Close;
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmAgendamento.DBGrid1TitleClick(Column: TColumn);
|
|
begin
|
|
inherited;
|
|
dtmSystem.OrganizaPorColuna(DBGrid1.DataSource.DataSet, Column);
|
|
end;
|
|
|
|
procedure TfrmAgendamento.edt_nomefiltroChange(Sender: TObject);
|
|
var
|
|
tx_pesquisa: string;
|
|
begin
|
|
tx_pesquisa := UpperCase(stringreplace(edt_nomefiltro.Text, ' ', '%',
|
|
[rfReplaceAll]));
|
|
dtmSystem.tblDevedores.Filter := 'TX_NOME like ' +
|
|
QuotedStr('*' + tx_pesquisa + '*');
|
|
end;
|
|
|
|
procedure TfrmAgendamento.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
inherited;
|
|
dtmSystem.tblDevedores.Filter := '';
|
|
dtmSystem.tblDevedores.Filtered := false;
|
|
end;
|
|
|
|
procedure TfrmAgendamento.FormCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if not(dtmSystem.tblDevedores.Active) then
|
|
begin
|
|
dtmSystem.tblDevedores.Open;
|
|
dtmSystem.tblDevedores.Filter := '';
|
|
dtmSystem.tblDevedores.Filtered := true;
|
|
end;
|
|
if not(dtmSystem.tblAgenda.Active) then
|
|
begin
|
|
dtmSystem.tblAgenda.Open;
|
|
end;
|
|
if not(dtmSystem.tblHistorico.Active) then
|
|
begin
|
|
dtmSystem.tblHistorico.Open;
|
|
end;
|
|
if not(dtmSystem.tblProvidencias.Active) then
|
|
begin
|
|
dtmSystem.tblProvidencias.Open;
|
|
end;
|
|
queryCobradores.SQL.Text :=
|
|
'select id_usuario, tx_nome from sys_usuarios order by tx_nome';
|
|
queryCobradores.Open;
|
|
|
|
dtp_diaagendamento.Date := Date;
|
|
dtp_horaagendamento.Time := Now;
|
|
end;
|
|
|
|
procedure TfrmAgendamento.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;
|
|
|
|
end.
|