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.
 

6996 lines
225 KiB

unit ufrmEfetuarCobranca;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, Vcl.ExtCtrls,
Vcl.DBCtrls, Vcl.Mask, Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.Buttons,
StrUtils, System.Math,
ZAbstractRODataset, ZAbstractDataset, ZDataset, System.ImageList, Vcl.ImgList,
Datasnap.DBClient, Vcl.CheckLst, rDBComponents, DateUtils, System.UITypes,
System.TypInfo, Vcl.Menus, ClipBrd, DBDateTimePicker, Vcl.AppEvnts, RLReport;
type
THackDBNavigator = class(TDBNavigator);
type
TfrmEfetuarCobranca = class(TForm)
grpb_devedores: TGroupBox;
lbl_nome: TLabel;
dbedt_nome: TDBEdit;
dbedt_documento: TDBEdit;
lbl_documento: TLabel;
dbmemo_devedores: TDBMemo;
pgCobranca: TPageControl;
tabEnderecos: TTabSheet;
dtsDevedores: TDataSource;
dbgrd_enderecos: TDBGrid;
navEnderecos: TDBNavigator;
pnl_enderecos: TPanel;
pnl_endsit: TPanel;
dbrg_endsit: TDBRadioGroup;
lbl_endsit: TLabel;
pnl_endmoradia: TPanel;
dbrg_endmoradia: TDBRadioGroup;
lbl_endmoradia: TLabel;
lbl_endlogradouro: TLabel;
dbedt_endlogradouro: TDBEdit;
GroupBox1: TGroupBox;
lbl_endnum: TLabel;
dbedt_endnum: TDBEdit;
lbl_endcomp: TLabel;
dbedt_endcomp: TDBEdit;
dtsEnderecos: TDataSource;
pnl_endtpend: TPanel;
DBRadioGroup1: TDBRadioGroup;
lbl_endtpend: TLabel;
lbl_endcep: TLabel;
dbedt_endcep: TDBEdit;
lbl_endbairro: TLabel;
dbedt_endbairro: TDBEdit;
lbl_enduf: TLabel;
dblucb_enduf: TDBLookupComboBox;
lbl_endcidade: TLabel;
dblucb_endcidade: TDBLookupComboBox;
dtsListaDevedores: TDataSource;
tabTelefones: TTabSheet;
ImageList1: TImageList;
navPrincipal: TDBNavigator;
dtsTelefones: TDataSource;
navTelefone: TDBNavigator;
dbgrd_telefone: TDBGrid;
pnl_telefone: TPanel;
lbl_telnum: TLabel;
dbedt_telnum: TDBEdit;
lbl_teldesc: TLabel;
dbedt_teldesc: TDBEdit;
pnl_telsit: TPanel;
dbrg_telsit: TDBRadioGroup;
lbl_telsit: TLabel;
dbmem_telobs: TDBMemo;
lbl_telobs: TLabel;
pnl_teltipo: TPanel;
dbrg_teltipo: TDBRadioGroup;
lbl_teltipo: TLabel;
tabCalculos: TTabSheet;
dtsTitulos: TDataSource;
lv_titulos: TListView;
queryListaTitulos: TZQuery;
queryListaTitulosID_TITULO: TIntegerField;
queryListaTitulosID_DEVEDOR: TIntegerField;
queryListaTitulosID_EMPRESA: TIntegerField;
queryListaTitulosTX_PRODUTO: TWideStringField;
queryListaTitulosVL_TITULO: TCurrencyField;
queryListaTitulosDT_ENTRADA: TDateTimeField;
queryListaTitulosDT_VENCIMENTO: TDateTimeField;
queryListaTitulosTP_SITUACAO: TWideStringField;
queryListaTitulosCD_DEVEDOR: TWideStringField;
queryListaTitulosNOME_EMPRESA: TStringField;
lbl_somatitulos: TLabel;
edt_somatitulos: TEdit;
lbl_parcelamento: TLabel;
dbgrd_listtitulos: TDBGrid;
tabTitulos: TTabSheet;
pnl_titulos: TPanel;
dbgrd_titulos: TDBGrid;
navTitulos: TDBNavigator;
lbl_valor: TLabel;
dbedt_valor: TDBEdit;
lbl_dataent: TLabel;
rdbdt_entrada: TrDBDateTimePicker;
lbl_datavenc: TLabel;
dbdt: TrDBDateTimePicker;
dbedit_produto: TDBEdit;
lbl_tit: TLabel;
Panel5: TPanel;
dbrg_tit: TDBRadioGroup;
pnl_cor1: TPanel;
pnl_color2: TPanel;
pnl_color3: TPanel;
pnl_color4: TPanel;
pnl_color5: TPanel;
pnl_color6: TPanel;
pnl_color7: TPanel;
lbl_sittit: TLabel;
dtsListaTitulos: TDataSource;
queryListaTitulosDT_ATRASO: TIntegerField;
queryListaTitulosPR_ENTRADA: TFloatField;
queryListaTitulosVL_JUROS: TCurrencyField;
queryListaTitulosPR_JUROS: TFloatField;
queryListaTitulosVL_ENTRADA: TCurrencyField;
queryListaTitulosPR_MULTA: TFloatField;
queryListaTitulosVL_MULTA: TCurrencyField;
queryListaTitulosVL_CORRIGIDO: TCurrencyField;
queryListaTitulosVL_INDICADOR: TCurrencyField;
edt_nrparcelas: TEdit;
up_nrparcelas: TUpDown;
lbl_somaentrada: TLabel;
edt_somaentrada: TEdit;
lbl_vlaquitar: TLabel;
edt_vlaquitar: TEdit;
lbl_extras: TLabel;
edt_extras: TEdit;
lbl_somajuros: TLabel;
edt_somajuros: TEdit;
lbl_somamulta: TLabel;
edt_somamulta: TEdit;
lbl_somaindicador: TLabel;
edt_somaindicador: TEdit;
cb_nmulta: TCheckBox;
queryListaTitulosPR_INDICADOR: TFloatField;
btn_close: TButton;
edt_desctot: TEdit;
lbl_desctot: TLabel;
queryListaTitulosVL_ENCARGOS: TCurrencyField;
queryListaTitulosNR_PARCELAS: TIntegerField;
queryListaTitulosVL_DESC_QUIT_PRIN: TCurrencyField;
queryListaTitulosVL_DESC_PAR_PRIN: TCurrencyField;
queryListaTitulosVL_DESC_QUIT_MULTA: TCurrencyField;
queryListaTitulosPR_PARCELA_MULTA: TFloatField;
queryListaTitulosPR_QUITACAO_JUROS: TFloatField;
queryListaTitulosPR_PARCELA_JUROS: TFloatField;
queryListaTitulosPR_QUITACAO_PRINCIPAL: TFloatField;
queryListaTitulosPR_QUITACAO_MULTA: TFloatField;
queryListaTitulosPR_PARCELA_PRINCIPAL: TFloatField;
queryListaTitulosVL_DESC_PAR_MULTA: TCurrencyField;
queryListaTitulosVL_DESC_QUIT_JUROS: TCurrencyField;
queryListaTitulosVL_DESC_PAR_JUROS: TCurrencyField;
queryListaTitulosPR_QUITACAO_INDICADOR: TFloatField;
queryListaTitulosPR_PARCELA_INDICADOR: TFloatField;
queryListaTitulosVL_DESC_QUIT_IND: TCurrencyField;
queryListaTitulosVL_DESC_PAR_IND: TCurrencyField;
dtp_atrasorecalc: TDateTimePicker;
lbl_datapgmnto: TLabel;
btn_fechamento: TButton;
Fechamento: TTabSheet;
dtp_diaagendamento: TDateTimePicker;
dtp_horaagendamento: TDateTimePicker;
edt_protocolo: TEdit;
btn_recalc: TButton;
mb_fechamento: TMemo;
ppmnu_copiar: TPopupMenu;
copiar_conteudo: TMenuItem;
lbl_tfonte: TLabel;
edt_fontememo: TEdit;
up_fontememo: TUpDown;
cb_negritomemo: TCheckBox;
lbl_protocolo: TLabel;
lbl_protocolo1: TLabel;
edt_protocolo1: TEdit;
btn_protocolo: TButton;
lbl_dtcobranca: TLabel;
lbl_horacobranca: TLabel;
lbl_cobradoragendado: TLabel;
dtsCobrador: TDataSource;
queryCobradores: TZQuery;
dblucb_cobradoragendar: TDBLookupComboBox;
queryCobradoresID_USUARIO: TIntegerField;
queryCobradoresTX_NOME: TWideStringField;
dbgrd_providencias: TDBGrid;
lbl_providencias: TLabel;
dtsProvidencias: TDataSource;
dtsHistorico: TDataSource;
dbgrd_resumohist: TDBGrid;
edt_prov: TEdit;
btn_concluir: TButton;
dtsHelper: TDataSource;
queryHelper: TZQuery;
lbl_prov: TLabel;
btn_outrostitulos: TButton;
lbl_coddev: TLabel;
dbedt_coddev: TDBEdit;
dbedt_nomepai: TDBEdit;
lbl_nomedopai: TLabel;
dbedt_nomemae: TDBEdit;
lbl_nomedamae: TLabel;
dbedt_rg: TDBEdit;
lbl_rg: TLabel;
clb_beneficiarioscalculo: TCheckListBox;
lbl_beneficiarioscalculo: TLabel;
qryConsulta: TZQuery;
dtsqryConsulta: TDataSource;
pnl_cheque: TPanel;
lbl_banco: TLabel;
lbl_nrcheque: TLabel;
lbl_motivo: TLabel;
dbedt_banco: TDBEdit;
dbedt_nrcheque: TDBEdit;
dbedt_motivo: TDBEdit;
dbcbx_tpcheque: TDBCheckBox;
cb_formapag: TComboBox;
Label4: TLabel;
lv_parcelas: TListView;
tabHistorico: TTabSheet;
pnl_hist: TPanel;
dbgrd_historico: TDBGrid;
dbmemo_box: TDBMemo;
navhistorico: TDBNavigator;
dbedt_codemp: TDBEdit;
lbl_cddevedor: TLabel;
dbgrd_listadevedores: TDBGrid;
queryListaTitulosVL_PARCELA: TCurrencyField;
queryListaTitulosVL_DESPESA: TCurrencyField;
queryListaTitulosTP_DESPESA: TWideStringField;
queryListaTitulosPR_JUROS_CHEQUE: TFloatField;
dtsCidade: TDataSource;
dtsDespesas: TDataSource;
queryListaTitulosVL_EXTRAS: TCurrencyField;
dtsCHGEmpresa: TDataSource;
dtsIndicadorFinanceiro: TDataSource;
dtsEmpresa: TDataSource;
dtsUF: TDataSource;
lbl_maxpar: TLabel;
popmnu_incluir: TPopupMenu;
mnu_incluir: TMenuItem;
mnuretirar: TMenuItem;
dbmem_titobs: TDBMemo;
StatusBar1: TStatusBar;
queryListaTitulosPR_QUITACAO_COR: TFloatField;
queryListaTitulosPR_PARCELA_COR: TFloatField;
cb_agendar: TCheckBox;
pnl_devedores: TPanel;
DBEdit2: TDBEdit;
Label1: TLabel;
Label2: TLabel;
DBEdit3: TDBEdit;
Label5: TLabel;
dbedt_email: TDBEdit;
Label6: TLabel;
dbedt_ddd: TDBEdit;
lbl_ddd: TLabel;
Label7: TLabel;
edt_prentrada: TEdit;
ud_entrada: TUpDown;
lbl_maxentrada: TLabel;
lbl_minentrada: TLabel;
queryListaTitulosPR_ENTRADA_MIN: TFloatField;
queryListaTitulosPR_ENTRADA_MAX: TFloatField;
edt_excentrada: TEdit;
cbx_excentrada: TCheckBox;
lbl_datacad: TLabel;
dbdtp_dtcad: TDBDateTimePicker;
lbl_dtnasc: TLabel;
dbdtp_dtnasc: TDBDateTimePicker;
lbl_idade: TLabel;
cb_agendahist: TCheckBox;
Label8: TLabel;
dtp_agendadatahist: TDateTimePicker;
dtp_agendahorahist: TDateTimePicker;
Label9: TLabel;
dblucb_agendacobhist: TDBLookupComboBox;
Label10: TLabel;
dblucb_providencia: TDBLookupComboBox;
Label11: TLabel;
pnl_cobrado: TPanel;
lbl_cobrado: TLabel;
Panel1: TPanel;
Label12: TLabel;
Label13: TLabel;
Panel2: TPanel;
queryListaTitulosVL_PRINCIPAL: TCurrencyField;
pcDescontos: TPageControl;
tabQuitar: TTabSheet;
gb_descontosquit: TGroupBox;
lbl_indquitar: TLabel;
lbl_principalquitar: TLabel;
lbl_multasquitar: TLabel;
lbl_jurosquitar: TLabel;
lbl_maxindquit: TLabel;
lbl_maxprinquit: TLabel;
lbl_maxmultaquit: TLabel;
lbl_maxjurosquit: TLabel;
lbl_maxquitcor: TLabel;
edt_indquitar: TEdit;
edt_principalquitar: TEdit;
edt_multasquitar: TEdit;
up_encquitar: TUpDown;
up_principalquitar: TUpDown;
up_multasquitar: TUpDown;
edt_jurosquitar: TEdit;
up_jurosquitar: TUpDown;
cb_desc_quit_cor: TCheckBox;
edt_corquitar: TEdit;
ud_corquitar: TUpDown;
cb_descquit: TCheckBox;
tabParcelar: TTabSheet;
gb_descontospar: TGroupBox;
lbl_indparcelas: TLabel;
lbl_jurosparcelas: TLabel;
lbl_multasparcelas: TLabel;
lbl_principalparcelas: TLabel;
lbl_maxindpar: TLabel;
lbl_maxprinpar: TLabel;
lbl_maxmultapar: TLabel;
lbl_maxjurospar: TLabel;
lbl_maxparcor: TLabel;
edt_indparcelas: TEdit;
edt_jurosparcelas: TEdit;
edt_multasparcelas: TEdit;
edt_principalparcelas: TEdit;
up_encparcelas: TUpDown;
up_jurosparcelas: TUpDown;
up_multasparcelas: TUpDown;
up_principalparcelas: TUpDown;
cb_desc_par_cor: TCheckBox;
edt_corpar: TEdit;
ud_corpar: TUpDown;
cb_descpar: TCheckBox;
cbx_txextra: TCheckBox;
edt_txextra: TEdit;
Button1: TButton;
btn_pesquisa: TButton;
navEmail: TDBNavigator;
dtsEmail: TDataSource;
dbgrd_email: TDBGrid;
qryCampanha: TZReadOnlyQuery;
btn_passardevedor: TButton;
cbx_exjurosparcelar: TCheckBox;
edt_excjurosparcela: TEdit;
btn_passadevfec: TButton;
Label3: TLabel;
Label14: TLabel;
DBGrid1: TDBGrid;
ApplicationEvents1: TApplicationEvents;
btn_relacaodivida: TButton;
queryListaTitulosVL_DESC_IND: TCurrencyField;
queryListaTitulosVL_DESC_PRIN: TCurrencyField;
queryListaTitulosVL_DESC_MULTA: TCurrencyField;
queryListaTitulosVL_DESC_JUROS: TCurrencyField;
pnl_contatos: TPanel;
Label15: TLabel;
dblbl_contatos: TDBText;
zroqryProvAgend: TZReadOnlyQuery;
Panel3: TPanel;
DBRadioGroup2: TDBRadioGroup;
Label16: TLabel;
queryListaTitulosNR_JUROS: TCurrencyField;
queryListaTitulosTP_JUROS: TStringField;
dbedt_protocolo: TDBEdit;
Label17: TLabel;
PopupMenu1: TPopupMenu;
cp_telddd: TMenuItem;
cp_tel: TMenuItem;
DBLookupComboBox1: TDBLookupComboBox;
Label18: TLabel;
procedure btn_clearmemoClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure dtsDevedoresDataChange(Sender: TObject; Field: TField);
procedure FormShow(Sender: TObject);
procedure dtsEnderecosDataChange(Sender: TObject; Field: TField);
procedure dtsTelefonesDataChange(Sender: TObject; Field: TField);
procedure dbgrd_titulosCellClick(Column: TColumn);
procedure clb_empresasClickCheck(Sender: TObject);
procedure dtsTitulosDataChange(Sender: TObject; Field: TField);
procedure navTitulosBeforeAction(Sender: TObject; Button: TNavigateBtn);
procedure queryListaTitulosCalcFields(DataSet: TDataSet);
procedure edt_nrparcelasChange(Sender: TObject);
procedure cb_nmultaClick(Sender: TObject);
procedure cb_descquitClick(Sender: TObject);
procedure btn_closeClick(Sender: TObject);
procedure edt_indquitarChange(Sender: TObject);
procedure edt_principalquitarChange(Sender: TObject);
procedure edt_multasquitarChange(Sender: TObject);
procedure edt_jurosquitarChange(Sender: TObject);
procedure edt_indparcelasChange(Sender: TObject);
procedure edt_principalparcelasChange(Sender: TObject);
procedure edt_multasparcelasChange(Sender: TObject);
procedure edt_jurosparcelasChange(Sender: TObject);
procedure cb_descparClick(Sender: TObject);
procedure edt_indquitarKeyPress(Sender: TObject; var Key: Char);
procedure edt_principalquitarKeyPress(Sender: TObject; var Key: Char);
procedure edt_multasquitarKeyPress(Sender: TObject; var Key: Char);
procedure edt_jurosquitarKeyPress(Sender: TObject; var Key: Char);
procedure edt_indparcelasKeyPress(Sender: TObject; var Key: Char);
procedure edt_principalparcelasKeyPress(Sender: TObject; var Key: Char);
procedure edt_multasparcelasKeyPress(Sender: TObject; var Key: Char);
procedure edt_jurosparcelasKeyPress(Sender: TObject; var Key: Char);
procedure dtsListaDevedoresDataChange(Sender: TObject; Field: TField);
procedure dtp_atrasorecalcChange(Sender: TObject);
procedure pgCobrancaChanging(Sender: TObject; var AllowChange: Boolean);
procedure pgCobrancaChange(Sender: TObject);
procedure btn_fechamentoClick(Sender: TObject);
procedure btn_recalcClick(Sender: TObject);
procedure copiar_conteudoClick(Sender: TObject);
procedure up_fontememoClick(Sender: TObject; Button: TUDBtnType);
procedure cb_negritomemoClick(Sender: TObject);
procedure btn_protocoloClick(Sender: TObject);
procedure dbgrd_providenciasDblClick(Sender: TObject);
procedure dtsCobradorDataChange(Sender: TObject; Field: TField);
procedure btn_concluirClick(Sender: TObject);
procedure dtsEnderecosStateChange(Sender: TObject);
procedure dtsTelefonesStateChange(Sender: TObject);
procedure dtsTitulosStateChange(Sender: TObject);
procedure dtp_diaagendamentoChange(Sender: TObject);
procedure edt_fontememoExit(Sender: TObject);
procedure edt_fontememoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dtp_horaagendamentoChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure clb_beneficiarioscalculoClickCheck(Sender: TObject);
procedure btn_outrostitulosClick(Sender: TObject);
procedure cb_formapagChange(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer;
var Resize: Boolean);
procedure dtsHistoricoStateChange(Sender: TObject);
procedure tabCalculosShow(Sender: TObject);
procedure dbgrd_listadevedoresDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
procedure dtsCidadeDataChange(Sender: TObject; Field: TField);
procedure dtsDespesasStateChange(Sender: TObject);
procedure dtsUFDataChange(Sender: TObject; Field: TField);
procedure mnu_incluirClick(Sender: TObject);
procedure mnuretirarClick(Sender: TObject);
procedure edt_nrparcelasExit(Sender: TObject);
procedure lv_titulosItemChecked(Sender: TObject; Item: TListItem);
procedure dbgrd_enderecosTitleClick(Column: TColumn);
procedure dbgrd_telefoneTitleClick(Column: TColumn);
procedure dbgrd_titulosTitleClick(Column: TColumn);
procedure dbgrd_despesasTitleClick(Column: TColumn);
procedure dbgrd_historicoTitleClick(Column: TColumn);
procedure dbgrd_listtitulosTitleClick(Column: TColumn);
procedure dbgrd_resumohistTitleClick(Column: TColumn);
procedure dtsEnderecosUpdateData(Sender: TObject);
procedure dtsDevedoresUpdateData(Sender: TObject);
procedure dtsTelefonesUpdateData(Sender: TObject);
procedure dtsTitulosUpdateData(Sender: TObject);
procedure cb_desc_quit_corClick(Sender: TObject);
procedure cb_desc_par_corClick(Sender: TObject);
procedure edt_corquitarChange(Sender: TObject);
procedure edt_corparChange(Sender: TObject);
procedure cb_agendarClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
procedure dbgrd_enderecosDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure dbgrd_telefoneDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure dbgrd_titulosDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure dtsDevedoresStateChange(Sender: TObject);
procedure edt_prentradaChange(Sender: TObject);
procedure cbx_excentradaClick(Sender: TObject);
procedure edt_excentradaChange(Sender: TObject);
procedure edt_excentradaKeyPress(Sender: TObject; var Key: Char);
procedure cb_agendahistClick(Sender: TObject);
procedure navhistoricoBeforeAction(Sender: TObject; Button: TNavigateBtn);
procedure navTelefoneBeforeAction(Sender: TObject; Button: TNavigateBtn);
procedure edt_corquitarKeyPress(Sender: TObject; var Key: Char);
procedure edt_corparKeyPress(Sender: TObject; var Key: Char);
procedure cbx_txextraClick(Sender: TObject);
procedure edt_txextraChange(Sender: TObject);
procedure edt_txextraKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure btn_pesquisaClick(Sender: TObject);
procedure appEventsHandlerException(Sender: TObject; E: Exception);
procedure btn_passardevedorClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure cbx_exjurosparcelarClick(Sender: TObject);
procedure edt_excjurosparcelaChange(Sender: TObject);
procedure edt_excjurosparcelaKeyPress(Sender: TObject; var Key: Char);
procedure dtsEmailStateChange(Sender: TObject);
procedure btn_passadevfecClick(Sender: TObject);
procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);
procedure btn_relacaodividaClick(Sender: TObject);
procedure dbedt_documentoKeyPress(Sender: TObject; var Key: Char);
procedure dbrg_teltipoClick(Sender: TObject);
procedure cp_teldddClick(Sender: TObject);
procedure cp_telClick(Sender: TObject);
private
old_id: Integer;
old_id_tit: Integer;
ficha_dev: Boolean;
// function StrtoMoeda(moeda: string): string;
procedure SetupHackedNavigator(const Navigator: TDBNavigator;
const Glyphs: TImageList; S: string; size: Integer);
procedure CriarLista;
procedure CalcValorParcelas;
procedure Att_campos;
procedure ClearList(List: TListView);
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
procedure AdjustCheckListBox;
procedure CalcPrice;
procedure ChecaPermissoes;
function CalculaIdade(Birthday, CurrentDate: TDate): Integer;
{ Private declarations }
public
dados: array of Integer;
atendimento: string;
nome_cobrador: string;
dia_agendado: string;
hora_agendado: string;
clpbrd: string;
pagina: Integer;
data_parcelas: array of TDate;
id_campanha: Integer;
tx_campanha: string;
parcelamento: array of currency;
FmtStngs: TFormatSettings;
after_show: Boolean;
recno_devedor: Integer;
entrou_agenda: Boolean;
qtde_titulos: Integer;
old_id_d: Integer;
pesquisa: Boolean;
str_titulos: string;
id_emp: Integer;
selected_id_chg_empresa: Integer;
id_emp_calc: Integer;
ids_tits_calc: array of Boolean;
achou: Boolean;
pass_state: Boolean;
pass_fec_state: Boolean;
str_tit: array of Integer;
function gerar_protocolo(id_devedor: string): string;
{ Public declarations }
end;
var
frmEfetuarCobranca: TfrmEfetuarCobranca;
implementation
{$R *.dfm}
uses udtmSystem, CommCtrl, ufrmFechamento, ufrmCobranca, ufrmLiberaPermissao,
ufrmPesquisa, urelFichaDivida;
procedure TfrmEfetuarCobranca.btn_clearmemoClick(Sender: TObject);
begin
Close;
end;
procedure TfrmEfetuarCobranca.dbgrd_telefoneDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
case AnsiIndexStr(dtmSystem.tblTelefones.FieldByName('TP_ATIVO').AsString,
['S', 'N']) of
0:
dbgrd_telefone.Canvas.Brush.Color := clGreen;
1:
dbgrd_telefone.Canvas.Brush.Color := $0000FF;
end;
// end;
dbgrd_telefone.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TfrmEfetuarCobranca.dbgrd_telefoneTitleClick(Column: TColumn);
begin
dtmSystem.OrganizaPorColuna(dtmSystem.tblTelefones, Column);
end;
procedure TfrmEfetuarCobranca.dbgrd_titulosCellClick(Column: TColumn);
var
i: Integer;
begin
// for i := 0 to clb_empresas.Items.Count - 1 do
// begin
// dtmSystem.tblCHGEmpresa.Locate('TX_NOME', clb_empresas.Items[i], []);
// if dtmSystem.tblTitulosID_EMPRESA.AsString = dtmSystem.
// tblCHGEmpresaID_EMPRESA.AsString then
// begin
// clb_empresas.Checked[i] := true;
// end
// else
// begin
// clb_empresas.Checked[i] := false;
// end;
// end;
end;
procedure TfrmEfetuarCobranca.dbgrd_titulosDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
case AnsiIndexStr(dtmSystem.tblTitulos.FieldByName('TP_SITUACAO').AsString,
['A', 'AC', 'AB', 'AJ', 'B', 'QC', 'QB']) of
0:
dbgrd_titulos.Canvas.Brush.Color := clWhite;
1:
dbgrd_titulos.Canvas.Brush.Color := $0000D7FF;
2:
dbgrd_titulos.Canvas.Brush.Color := $002FFFAD;
3:
dbgrd_titulos.Canvas.Brush.Color := clMoneyGreen;
4:
dbgrd_titulos.Canvas.Brush.Color := clRed;
5:
dbgrd_titulos.Canvas.Brush.Color := $00EBCE87;
6:
dbgrd_titulos.Canvas.Brush.Color := $00E16941;
end;
// end;
dbgrd_titulos.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TfrmEfetuarCobranca.dbgrd_titulosTitleClick(Column: TColumn);
begin
dtmSystem.OrganizaPorColuna(dtmSystem.tblTitulos, Column);
end;
procedure TfrmEfetuarCobranca.dbrg_teltipoClick(Sender: TObject);
begin
if dbrg_teltipo.ItemIndex = 1 then
begin
DBRadioGroup2.Enabled := true;
end
else
begin
DBRadioGroup2.Enabled := false;
DBRadioGroup2.ItemIndex := -1;
end;
end;
procedure TfrmEfetuarCobranca.dbedt_documentoKeyPress(Sender: TObject;
var Key: Char);
begin
if dtmSystem.tblDevedoresTP_CLIENTE.AsString = '' then
begin
MessageDlg('Por favor escolha o tipo de devedor.', mtWarning, [mbOK], 0);
Key := #0;
end;
if (dtmSystem.tblDevedoresTP_CLIENTE.AsString = 'F') then
begin
if not(Key in [#8, '0' .. '9', '.', '-']) then
begin
Key := #0;
end;
end;
if (dtmSystem.tblDevedoresTP_CLIENTE.AsString = 'J') then
begin
if not(Key in [#8, '0' .. '9', '.', '-', '/']) then
begin
Key := #0;
end;
end;
end;
procedure TfrmEfetuarCobranca.dbgrd_despesasTitleClick(Column: TColumn);
begin
dtmSystem.OrganizaPorColuna(dtmSystem.tblDespesasTitulos, Column);
end;
procedure TfrmEfetuarCobranca.dbgrd_enderecosDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
case AnsiIndexStr(dtmSystem.tblEnderecos.FieldByName('TP_ATIVO').AsString,
['S', 'N']) of
0:
dbgrd_enderecos.Canvas.Brush.Color := clGreen;
1:
dbgrd_enderecos.Canvas.Brush.Color := $0000FF;
end;
// end;
dbgrd_enderecos.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TfrmEfetuarCobranca.dbgrd_enderecosTitleClick(Column: TColumn);
begin
dtmSystem.OrganizaPorColuna(dtmSystem.tblEnderecos, Column);
end;
procedure TfrmEfetuarCobranca.dbgrd_historicoTitleClick(Column: TColumn);
begin
dtmSystem.OrganizaPorColuna(dtmSystem.tblHistorico, Column);
end;
procedure TfrmEfetuarCobranca.dbgrd_listadevedoresDrawColumnCell
(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
case AnsiIndexStr(dtmSystem.tblCampanhaDevedores.FieldByName('TP_ESTADO')
.AsString, ['A', 'B', 'C']) of
0:
begin
if (dtmSystem.tblCampanhaDevedores.FieldByName('TP_COBRANDO')
.AsInteger = dtmSystem.id_usuario) or
(dtmSystem.tblCampanhaDevedores.FieldByName('TP_COBRANDO')
.AsInteger = -1) then
begin
dbgrd_listadevedores.Canvas.Brush.Color := clWhite;
end
else
begin
dbgrd_listadevedores.Canvas.Brush.Color := clSilver;
end;
end;
1, 2:
dbgrd_listadevedores.Canvas.Brush.Color := clWebLightBlue;
end;
dbgrd_listadevedores.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TfrmEfetuarCobranca.dbgrd_listtitulosTitleClick(Column: TColumn);
begin
dtmSystem.OrganizaPorColuna(queryListaTitulos, Column);
end;
procedure TfrmEfetuarCobranca.navhistoricoBeforeAction(Sender: TObject;
Button: TNavigateBtn);
var
string_helper { , erro } : string;
// saveme: TextFile;
begin
if Button = nbPost then
begin
if dblucb_providencia.KeyValue < 0 then
begin
MessageDlg('Por favor escolha uma providência a ser lançada.', mtWarning,
[mbOK], 0);
abort;
end
else
begin
if dtsHistorico.State in [dsInsert] then
begin
// try
if MessageDlg
('Esta inclusão de histórico irá retirar este devedor de qualquer agendamento previamente realizado.'
+ ' Deseja continuar?', mtWarning, mbYesNo, 0) = mrNo then
begin
abort;
end;
with zroqryProvAgend do
begin
SQL.Clear;
SQL.Add('select * from chg_providencias where tp_forcaagenda = ' +
QuotedStr('Sim') + ' and id_providencia = ' +
dtmSystem.tblProvidenciasID_PROVIDENCIA.AsString);
Open;
end;
if (zroqryProvAgend.RecordCount = 1) and (cb_agendahist.Checked = false)
then
begin
MessageDlg
('Esta providência exige que você agende o devedor. Por favor agende-o.',
mtWarning, [mbOK], 0);
abort;
end;
if cb_agendahist.Checked then
begin
if dblucb_agendacobhist.KeyValue < 0 then
begin
MessageDlg('Por favor escolha o cobrador ao qual será agendado.',
mtWarning, [mbOK], 0);
abort;
end
else
begin
if MessageDlg
('Você está prestes a agendar um devedor. Deseja continuar?',
mtWarning, mbYesNo, 0) = mrNo then
begin
abort;
end;
if (dtp_agendahorahist.Time < Timeof(Now)) and
(dtp_agendadatahist.Date <= Dateof(Now)) then
begin
MessageDlg
('Você está selecionando um horário para agendamento menor que a hora atual. Por favor verifique o horário do agendamento.',
mtWarning, [mbOK], 0);
abort;
end;
end;
end;
Screen.Cursor := crHourGlass;
{ dtmSystem.tblCampanhaDevedores.DisableControls;
// Marca a o cobrador como feito
dtmSystem.tblCampanhaDevedores.Refresh;
if not(entrou_agenda) then
begin
dtmSystem.tblCampanhaDevedores.Locate('ID_CAMPANHA;ID_DEVEDOR',
VarArrayOf([id_campanha,
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger]), []);
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_ESTADO.AsString := 'B';
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger := -1;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger := dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'passou';
dtmSystem.tblLogCampanhas.Post;
end; }
with dtmSystem do
begin
if not(tblAgenda.Active) then
begin
tblAgenda.Open;
end;
// Marca toda a agenda como cobrada
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;
end;
if cb_agendahist.Checked then // Agenda o devedor
begin
with dtmSystem do
begin
if not(tblAgenda.Active) then
begin
tblAgenda.Open;
end;
tblAgenda.Append;
tblAgendaID_COBRADOR.AsInteger := dblucb_agendacobhist.KeyValue;
tblAgendaID_DEVEDOR.AsInteger := dtsDevedores.DataSet.FieldByName
('ID_DEVEDOR').AsInteger;
tblAgendaDT_AGENDADA.AsDateTime := dtp_agendadatahist.Date;
tblAgendaHR_AGENDADA.AsDateTime := dtp_agendahorahist.Time;
tblAGENDADT_QUE_AGENDOU.AsDateTime := Now;
tblAgendaQUEM_AGENDOU.AsInteger := dtmSystem.id_usuario;
tblAgenda.Post;
qryCampanha.SQL.Clear;
qryCampanha.SQL.Text :=
'select cd.*, c.tx_nome from chg_campanhas_devedores cd left join chg_campanhas c on cd.id_campanha = c.id_campanha where id_devedor = '
+ dtmSystem.tblDevedoresID_DEVEDOR.AsString;
qryCampanha.Open;
qryCampanha.First;
while not qryCampanha.Eof do
begin
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger :=
qryCampanha.FieldByName('id_campanha').AsInteger;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString :=
qryCampanha.FieldByName('tx_nome').AsString;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
qryCampanha.FieldByName('id_devedor').AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'apagou p/ agenda';
dtmSystem.tblLogCampanhas.Post;
qryCampanha.Next;
end;
qryCampanha.Close;
dtmSystem.ZSQLProcessor1.Script.Text :=
'delete from chg_campanhas_devedores where id_devedor = ' +
QuotedStr(dtsDevedores.DataSet.FieldByName('ID_DEVEDOR')
.AsString);
dtmSystem.ZSQLProcessor1.Execute;
end;
string_helper := 'Agendado para o dia ' +
datetostr(dtp_agendadatahist.Date) + ' no horário ' +
timetostr(dtp_agendahorahist.Time) + ' para o cobrador ' +
dblucb_agendacobhist.Text;
end;
dtmSystem.tblHistoricoID_DEVEDOR.AsInteger :=
dtsDevedores.DataSet.FieldByName('ID_DEVEDOR').AsInteger;
dtmSystem.tblHistoricoDT_CONTATO.AsDateTime := Now;
if cb_agendahist.Checked then
begin
dbmemo_box.lines.Add(string_helper);
cb_agendahist.Checked := false;
end;
if not(dtmSystem.tblHistorico.Active) then
begin
dtmSystem.tblHistorico.Open;
end;
// dtmSystem.tblHistorico.Post;
dtp_agendadatahist.Date := Date;
dtp_agendahorahist.Time := Timeof(Now);
dtp_diaagendamento.Date := Date;
dtp_horaagendamento.Date := Timeof(Now);
Screen.Cursor := crDefault;
end;
if dtsHistorico.State in [dsEdit] then
begin
MessageDlg
('Alterar este acionamento não irá agendar o devedor (caso tenha sido selecionado para agendar) '
+ ' ou passará para o próximo devedor.', mtInformation, [mbOK], 0);
end
else
begin
btn_passardevedor.Enabled := true;
end;
end;
end;
if Button = nbCancel then
begin
if MessageDlg('Deseja realmente cancelar este histórico?', mtWarning,
[mbYes, mbNo], 0) = mrNo then
begin
abort;
end;
end;
end;
procedure TfrmEfetuarCobranca.navTelefoneBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
case Button of
nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh:
if navTelefone.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_telnum.Text = '' then
begin
MessageDlg('Por favor preencha um número para o telefone.', mtWarning,
[mbOK], 0);
abort;
end;
try
dbedt_telnum.Text := dtmSystem.FormatTelefone(dbedt_telnum.Text);
except
on E: Exception do
begin
MessageDlg(E.Message, mtWarning, [mbOK], 0);
abort;
end;
end;
if dbrg_teltipo.ItemIndex = -1 then
begin
MessageDlg('Por favor escolha o tipo de telefone.', mtWarning,
[mbOK], 0);
abort;
end;
if (Length(dbedt_telnum.Text) = 10) then
begin
dbrg_teltipo.ItemIndex := 1;
end;
if (Length(dbedt_telnum.Text) = 9) then
begin
dbrg_teltipo.ItemIndex := 0;
end;
// SelectNext(ActiveControl as TWinControl, true, true);
end;
nbDelete:
begin
if navTelefone.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
dtsTelefones.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 TfrmEfetuarCobranca.navTitulosBeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
case Button of
nbPost:
begin
// for i := 0 to clb_empresas.Items.Count - 1 do
// begin
// if clb_empresas.Checked[i] then
// begin
// dtmSystem.tblCHGEmpresa.Locate('TX_NOME',
// clb_empresas.Items[i], []);
// dtmSystem.tblTitulosID_EMPRESA.AsString :=
// dtmSystem.tblCHGEmpresaID_EMPRESA.AsString;
// end;
// end;
//dtmSystem.tblTitulosID_EMPRESA.AsInteger := selected_id_chg_empresa;
// clb_beneficiarioscalculo.Clear;
//
// qryConsulta.SQL.Text :=
// 'select * from chg_empresas where id_empresa in ' +
// '(select id_empresa from chg_titulos' +
// ' where (tp_situacao = ''A'' or tp_situacao = ''AC'') and (id_devedor = '
// + dtmSystem.tblDevedoresID_DEVEDOR.AsString + '))';
// qryConsulta.Open;
// qryConsulta.First;
// while not qryConsulta.Eof do
// begin
// clb_beneficiarioscalculo.Items.Add(qryConsulta.FieldByName('TX_NOME')
// .AsString);
// qryConsulta.Next;
// end;
// CriarLista;
end;
nbCancel:
begin
if MessageDlg('Deseja cancelar as modificações?', mtConfirmation,
[mbYes, mbNo], 0) = mrNo then
begin
abort;
end;
// if clb_empresas.Items.IndexOf
// (dtmSystem.tblCHGEmpresaTX_NOME.AsString) > -1 then
// begin
// clb_empresas.Checked
// [clb_empresas.Items.IndexOf(dtmSystem.tblCHGEmpresaTX_NOME.AsString)
// ] := false;
// end;
// dtmSystem.tblCHGEmpresa.Locate('ID_EMPRESA',
// dtmSystem.tblTitulosID_EMPRESA.AsInteger, []);
// if clb_empresas.Items.IndexOf
// (dtmSystem.tblCHGEmpresaTX_NOME.AsString) > -1 then
// begin
// clb_empresas.Checked
// [clb_empresas.Items.IndexOf
// (dtmSystem.tblCHGEmpresaTX_NOME.AsString)] := true;
// end;
end;
nbDelete:
begin
if navTitulos.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
dtsTitulos.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;
end;
end;
procedure TfrmEfetuarCobranca.dbgrd_providenciasDblClick(Sender: TObject);
var
pt: TPoint;
coord: TGridCoord;
clickheader: Integer;
begin
pt := dbgrd_providencias.ScreenToClient(Mouse.CursorPos);
coord := dbgrd_providencias.MouseCoord(pt.X, pt.Y);
clickheader := coord.Y;
if clickheader > 0 then
begin
if LeftStr(mb_fechamento.lines[mb_fechamento.lines.Count - 1], 3) = 'Pro'
then
begin
mb_fechamento.lines[mb_fechamento.lines.Count - 1] :=
'Providência tomada: ' + dtmSystem.tblProvidenciasTX_NOME.
AsString + '.';
end
else
begin
mb_fechamento.lines.Add('Providência tomada: ' +
dtmSystem.tblProvidenciasTX_NOME.AsString + '.');
end;
edt_prov.Text := dtmSystem.tblProvidenciasTX_NOME.AsString;
end;
end;
procedure TfrmEfetuarCobranca.dbgrd_resumohistTitleClick(Column: TColumn);
begin
dtmSystem.OrganizaPorColuna(dtmSystem.tblHistorico, Column);
end;
procedure TfrmEfetuarCobranca.dtp_atrasorecalcChange(Sender: TObject);
begin
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.dtp_diaagendamentoChange(Sender: TObject);
var
i: Integer;
begin
if pgCobranca.ActivePageIndex = 5 then
begin
for i := 0 to mb_fechamento.lines.Count - 1 do
if AnsiContainsStr(mb_fechamento.lines[i], 'Foi agendado para o dia') then
begin
mb_fechamento.lines[i] := StringReplace(mb_fechamento.lines[i],
dia_agendado, FormatDateTime('dd/mm/yyyy', dtp_diaagendamento.Date),
[rfReplaceAll, rfIgnoreCase]);
end;
dia_agendado := FormatDateTime('dd/mm/yyyy', dtp_diaagendamento.Date);
end;
end;
procedure TfrmEfetuarCobranca.dtp_horaagendamentoChange(Sender: TObject);
var
i: Integer;
begin
if pgCobranca.ActivePageIndex = 5 then
begin
for i := 0 to mb_fechamento.lines.Count - 1 do
if AnsiContainsStr(mb_fechamento.lines[i], hora_agendado) then
begin
mb_fechamento.lines[i] := StringReplace(mb_fechamento.lines[i],
hora_agendado, FormatDateTime('t', dtp_horaagendamento.Date),
[rfReplaceAll, rfIgnoreCase]);
end;
hora_agendado := FormatDateTime('t', dtp_horaagendamento.Date);
end;
end;
procedure TfrmEfetuarCobranca.dtsCidadeDataChange(Sender: TObject;
Field: TField);
begin
if (dtmSystem.tblEnderecosID_CIDADE.AsVariant >= 0) then
begin
dblucb_endcidade.KeyValue := dtmSystem.tblEnderecosID_CIDADE.AsVariant;
end;
end;
procedure TfrmEfetuarCobranca.dtsCobradorDataChange(Sender: TObject;
Field: TField);
var
i: Integer;
begin
if pgCobranca.ActivePageIndex = 5 then
begin
for i := 0 to mb_fechamento.lines.Count - 1 do
if AnsiContainsStr(mb_fechamento.lines[i], 'para o cobrador') then
begin
mb_fechamento.lines[i] := StringReplace(mb_fechamento.lines[i],
nome_cobrador, queryCobradoresTX_NOME.AsString,
[rfReplaceAll, rfIgnoreCase]);
nome_cobrador := queryCobradoresTX_NOME.AsString;
end;
end;
end;
procedure TfrmEfetuarCobranca.dtsDespesasStateChange(Sender: TObject);
begin
// navDespesas.Enabled := dtsDespesas.State in [dsInsert,dsEdit];
// dbgrd_despesas.ReadOnly := not(dtsDespesas.State in [dsInsert, dsEdit]);
navTitulos.Enabled := not(dtsDespesas.State in [dsInsert, dsEdit]);
end;
procedure TfrmEfetuarCobranca.dtsDevedoresDataChange(Sender: TObject;
Field: TField);
var
new_id, i: Integer;
begin
if qryConsulta.Connection = nil then
begin
exit;
end;
case AnsiIndexStr(dtmSystem.tblDevedoresTP_CLIENTE.AsString, ['F', 'J']) of
0:
begin
dbedt_documento.DataField := 'CD_CPF';
end;
1:
begin
dbedt_documento.DataField := 'CD_CNPJ';
end;
end;
if dtmSystem.tblDevedoresDT_NASC.AsString <> '' then
begin
lbl_idade.Caption := 'Idade: ' +
inttostr(CalculaIdade(dtmSystem.tblDevedoresDT_NASC.AsDateTime, Date));
end
else
begin
lbl_idade.Caption := 'Idade: ';
end;
// grpb_devedores.Enabled := dtsDevedores.State in [dsEdit, dsInsert];
pnl_devedores.Enabled := dtsDevedores.State in [dsEdit, dsInsert, dsBrowse];
new_id := dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
if old_id <> new_id then
begin
setlength(ids_tits_calc, 0);
old_id := new_id;
id_emp_calc := -1;
ficha_dev := false;
for i := 0 to Length(ids_tits_calc) - 1 do
begin
ids_tits_calc[i] := false;
end;
btn_protocolo.Enabled := true;
edt_protocolo.Text := '';
edt_protocolo1.Text := '';
clb_beneficiarioscalculo.Clear;
qryConsulta.SQL.Text := 'select * from chg_empresas where id_empresa in ' +
'(select id_empresa from chg_titulos' +
' where (tp_situacao = ''A'' or tp_situacao = ''AC'') and (id_devedor = '
+ dtmSystem.tblDevedoresID_DEVEDOR.AsString + '))';
qryConsulta.Open;
qryConsulta.First;
while not qryConsulta.Eof do
begin
clb_beneficiarioscalculo.Items.Add(qryConsulta.FieldByName('TX_NOME')
.AsString);
qryConsulta.Next;
end;
// clb_beneficiarioscalculo.Checked[0] := true;
CriarLista;
end;
end;
procedure TfrmEfetuarCobranca.dtsDevedoresStateChange(Sender: TObject);
begin
dtmSystem.AlterReadOnly(pnl_devedores, dtsDevedores.DataSet);
// btn_passardevedor.Enabled := not(dtsDevedores.State in [dsInsert, dsEdit]);
navhistorico.Enabled := not(dtsDevedores.State in [dsInsert, dsEdit]);
end;
procedure TfrmEfetuarCobranca.dtsDevedoresUpdateData(Sender: TObject);
begin
// navPrincipal.Enabled := dtmSystem.VerificarPermissao('ECBR.02.01');
end;
procedure TfrmEfetuarCobranca.dtsEmailStateChange(Sender: TObject);
begin
dbedt_email.ReadOnly := dtsEmail.State in [dsBrowse];
end;
procedure TfrmEfetuarCobranca.dtsEnderecosDataChange(Sender: TObject;
Field: TField);
begin
if (dtmSystem.tblEnderecosID_ESTADO.AsVariant >= 0) then
begin
dblucb_enduf.KeyValue := dtmSystem.tblEstadosID_ESTADO.AsVariant;
end;
if (dtmSystem.tblEnderecosID_CIDADE.AsVariant >= 0) then
begin
dblucb_endcidade.KeyValue := dtmSystem.tblCidadesID_CIDADE.AsVariant;
end;
pnl_enderecos.Enabled := dtsEnderecos.State in [dsEdit, dsInsert, dsBrowse];
end;
procedure TfrmEfetuarCobranca.dtsEnderecosStateChange(Sender: TObject);
begin
dtmSystem.AlterReadOnly(pnl_enderecos, dtsEnderecos.DataSet);
// btn_passardevedor.Enabled := not(dtsEnderecos.State in [dsInsert, dsEdit]);
end;
procedure TfrmEfetuarCobranca.dtsEnderecosUpdateData(Sender: TObject);
begin
// navEnderecos.Enabled := dtmSystem.VerificarPermissao('ECBR.02.02');
end;
procedure TfrmEfetuarCobranca.dtsHistoricoStateChange(Sender: TObject);
begin
pnl_hist.Enabled := dtsHistorico.State in [dsInsert, dsEdit];
dbmemo_box.ReadOnly := not(dtsHistorico.State in [dsInsert, dsEdit]);
dbgrd_historico.Enabled := not(dtsHistorico.State in [dsInsert, dsEdit]);
// btn_passardevedor.Enabled := not(dtsHistorico.State in [dsInsert, dsEdit]);
// dbmemo_box.Enabled := dtsHistorico.State in [dsInsert, dsEdit];
if dtsHistorico.State in [dsInsert] then
begin
dtsHistorico.DataSet.FieldByName('CD_PROTOCOLO').AsString :=
dtmSystem.gerarProtocolo(dtsDevedores.DataSet.FieldByName('ID_DEVEDOR')
.AsString);
edt_protocolo.Text := dtmSystem.gerarProtocolo
(dtsDevedores.DataSet.FieldByName('ID_DEVEDOR').AsString);
edt_protocolo1.Text := edt_protocolo.Text;
btn_protocolo.Enabled := false;
end;
end;
procedure TfrmEfetuarCobranca.dtsListaDevedoresDataChange(Sender: TObject;
Field: TField);
var
new_id_d: Integer;
begin
new_id_d := dtmSystem.tblCampanhaDevedoresID_ITEM.AsInteger;
if new_id_d <> old_id_d then
begin
old_id_d := new_id_d;
dtp_atrasorecalc.Date := Date;
atendimento := 'cobrando';
// cb_agendar.Checked := false;
nome_cobrador := '__________';
dia_agendado := '__/__/____';
hora_agendado := '__:__';
// cb_descquit.Enabled := dtmSystem.VerificarPermissao('ECBR.01.01');
// cb_descpar.Enabled := dtmSystem.VerificarPermissao('ECBR.01.02');
// cb_nmulta.Enabled := dtmSystem.VerificarPermissao('ECBR.01.03');
// cb_agendahist.Checked := false;
dtp_agendadatahist.Enabled := false;
// dtp_agendadatahist.Date := Date;
dtp_agendahorahist.Enabled := false;
// dtp_agendahorahist.Time := Timeof(Now);
dblucb_agendacobhist.Enabled := false;
if pass_state then
begin
btn_passardevedor.Enabled := true;
end
else
begin
btn_passardevedor.Enabled := false;
end;
if pass_fec_state then
begin
btn_passadevfec.Enabled := true;
end
else
begin
btn_passadevfec.Enabled := false;
end;
// dbgrd_listtitulos.Repaint;
end;
end;
procedure TfrmEfetuarCobranca.dtsTelefonesDataChange(Sender: TObject;
Field: TField);
begin
pnl_telefone.Enabled := dtsTelefones.State in [dsEdit, dsInsert, dsBrowse];
if dbrg_teltipo.ItemIndex = 1 then
begin
DBRadioGroup2.Enabled := true;
end
else
begin
DBRadioGroup2.Enabled := false;
DBRadioGroup2.ItemIndex := -1;
end;
end;
procedure TfrmEfetuarCobranca.dtsTelefonesStateChange(Sender: TObject);
begin
dtmSystem.AlterReadOnly(pnl_telefone, dtsTelefones.DataSet);
// btn_passardevedor.Enabled := not(dtsTelefones.State in [dsInsert, dsEdit]);
navhistorico.Enabled := not(dtsDevedores.State in [dsInsert, dsEdit]);
end;
procedure TfrmEfetuarCobranca.dtsTelefonesUpdateData(Sender: TObject);
begin
// navTelefone.Enabled := dtmSystem.VerificarPermissao('ECBR.02.03');
end;
procedure TfrmEfetuarCobranca.dtsTitulosDataChange(Sender: TObject;
Field: TField);
var
i, new_id_tit: Integer;
begin
pnl_titulos.Enabled := dtsTitulos.State in [dsEdit, dsInsert { , dsBrowse } ];
// navDespesas.Enabled :=
// not(dtsTitulos.State in [dsEdit, dsInsert { , dsBrowse } ]);
// dbgrd_despesas.Enabled := navDespesas.Enabled;
new_id_tit := dtmSystem.tblTitulosID_TITULO.AsInteger;
if old_id_tit <> new_id_tit then
begin
old_id_tit := new_id_tit;
// clb_empresas.Items.beginupdate;
// for i := 0 to clb_empresas.Items.Count - 1 do
// begin
// clb_empresas.Checked[i] := false;
// end;
// clb_empresas.Items.EndUpdate;
// dtmSystem.tblCHGEmpresa.Locate('ID_EMPRESA',
// dtmSystem.tblTitulosID_EMPRESA.AsInteger, []);
// selected_id_chg_empresa := dtmSystem.tblCHGEmpresaID_EMPRESA.AsInteger;
// if clb_empresas.Items.IndexOf(dtmSystem.tblCHGEmpresaTX_NOME.AsString) > -1
// then
// begin
// clb_empresas.Checked
// [clb_empresas.Items.IndexOf(dtmSystem.tblCHGEmpresaTX_NOME.
// AsString)] := true;
// end;
end;
// for i := 0 to clb_empresas.Items.Count - 1 do
// begin
// dtmSystem.tblCHGEmpresa.Locate('TX_NOME', clb_empresas.Items[i], []);
// if dtmSystem.tblTitulosID_EMPRESA.AsString = dtmSystem.
// tblCHGEmpresaID_EMPRESA.AsString then
// begin
// clb_empresas.Checked[i] := true;
// end
// else
// begin
// clb_empresas.Checked[i] := false;
// end;
// end;
// if not(dtsTitulos.DataSet.State in [dsEdit, dsInsert]) then
// begin
// for i := 0 to clb_empresas.Items.Count - 1 do
// begin
// clb_empresas.ItemEnabled[i] := false;
// end;
// end
// else
// begin
// for i := 0 to clb_empresas.Items.Count - 1 do
// begin
// clb_empresas.ItemEnabled[i] := true;
// end;
// end;
end;
procedure TfrmEfetuarCobranca.dtsTitulosStateChange(Sender: TObject);
begin
// dtmSystem.AlterReadOnly(pnl_titulos, dtsTitulos.DataSet);
// dtmSystem.AlterReadOnly(pnl_cheque, dtsTitulos.DataSet);
// btn_passardevedor.Enabled := not(dtsTitulos.State in [dsInsert, dsEdit]);
end;
procedure TfrmEfetuarCobranca.dtsTitulosUpdateData(Sender: TObject);
begin
// navTitulos.Enabled := dtmSystem.VerificarPermissao('ECBR.02.04');
end;
procedure TfrmEfetuarCobranca.dtsUFDataChange(Sender: TObject; Field: TField);
begin
if (dtmSystem.tblEnderecosID_ESTADO.AsVariant >= 0) then
begin
dblucb_enduf.KeyValue := dtmSystem.tblEstadosID_ESTADO.AsVariant;
end;
if (dtmSystem.tblEnderecosID_CIDADE.AsVariant >= 0) then
begin
dblucb_endcidade.KeyValue := dtmSystem.tblCidadesID_CIDADE.AsVariant;
end;
end;
procedure TfrmEfetuarCobranca.edt_corparChange(Sender: TObject);
begin
try
if (strtofloat(edt_corpar.Text) > -1) and (queryListaTitulos.Active) and
(edt_corpar.Text <> '') then
begin
if strtofloat(edt_corpar.Text) >
strtoint(copy(lbl_maxparcor.Caption, 6, Length(lbl_maxparcor.Caption) -
1 - 5)) then
begin
edt_corpar.Text := copy(lbl_maxparcor.Caption, 6,
Length(lbl_maxparcor.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
if ud_corpar.Max = 0 then
begin
edt_corpar.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_corparKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_corpar.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_corquitarChange(Sender: TObject);
begin
try
if (strtofloat(edt_corquitar.Text) > -1) and (queryListaTitulos.Active) and
(edt_corquitar.Text <> '') then
begin
if strtofloat(edt_corquitar.Text) >
strtoint(copy(lbl_maxquitcor.Caption, 6, Length(lbl_maxquitcor.Caption)
- 1 - 5)) then
begin
edt_corquitar.Text := copy(lbl_maxquitcor.Caption, 6,
Length(lbl_maxquitcor.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
end;
if ud_corquitar.Max = 0 then
begin
edt_corquitar.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_corquitarKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_corquitar.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_excentradaChange(Sender: TObject);
begin
if Length(edt_excentrada.Text) < 1 then
begin
edt_excentrada.Text := '0';
end;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.edt_excentradaKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_excentrada.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_excjurosparcelaChange(Sender: TObject);
begin
if Length(edt_excjurosparcela.Text) < 1 then
begin
edt_excjurosparcela.Text := '0';
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.edt_excjurosparcelaKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_excjurosparcela.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_fontememoExit(Sender: TObject);
begin
if strtoint(edt_fontememo.Text) < 8 then
begin
edt_fontememo.Text := '8';
mb_fechamento.Font.size := 8;
end;
if strtoint(edt_fontememo.Text) > 72 then
begin
edt_fontememo.Text := '72';
mb_fechamento.Font.size := 72;
end;
mb_fechamento.Font.size := strtoint(edt_fontememo.Text);
end;
procedure TfrmEfetuarCobranca.edt_fontememoKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = vkReturn then
begin
mb_fechamento.SetFocus;
end;
end;
procedure TfrmEfetuarCobranca.edt_indparcelasChange(Sender: TObject);
begin
try
if (strtofloat(edt_indparcelas.Text) > -1) and (queryListaTitulos.Active)
and (edt_indparcelas.Text <> '') then
begin
if strtofloat(edt_indparcelas.Text) >
strtoint(copy(lbl_maxindpar.Caption, 6, Length(lbl_maxindpar.Caption) -
1 - 5)) then
begin
edt_indparcelas.Text := copy(lbl_maxindpar.Caption, 6,
Length(lbl_maxindpar.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
if up_encparcelas.Max = 0 then
begin
edt_indparcelas.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_indparcelasKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_indparcelas.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_indquitarChange(Sender: TObject);
begin
try
if (strtofloat(edt_indquitar.Text) > -1) and (queryListaTitulos.Active) and
(edt_indquitar.Text <> '') then
begin
if strtofloat(edt_indquitar.Text) >
strtoint(copy(lbl_maxindquit.Caption, 6, Length(lbl_maxindquit.Caption)
- 1 - 5)) then
begin
edt_indquitar.Text := copy(lbl_maxindquit.Caption, 6,
Length(lbl_maxindquit.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
end;
if up_encquitar.Max = 0 then
begin
edt_indquitar.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_indquitarKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_indquitar.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_jurosparcelasChange(Sender: TObject);
begin
try
if (strtofloat(edt_jurosparcelas.Text) > -1) and (queryListaTitulos.Active)
and (edt_jurosparcelas.Text <> '') then
begin
if strtofloat(edt_jurosparcelas.Text) >
strtoint(copy(lbl_maxjurospar.Caption, 6,
Length(lbl_maxjurospar.Caption) - 1 - 5)) then
begin
edt_jurosparcelas.Text := copy(lbl_maxjurospar.Caption, 6,
Length(lbl_maxjurospar.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
if up_jurosparcelas.Max = 0 then
begin
edt_jurosparcelas.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_jurosparcelasKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_jurosparcelas.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_jurosquitarChange(Sender: TObject);
begin
try
if (strtofloat(edt_jurosquitar.Text) > -1) and (queryListaTitulos.Active)
and (edt_jurosquitar.Text <> '') then
begin
if strtofloat(edt_jurosquitar.Text) >
strtoint(copy(lbl_maxjurosquit.Caption, 6,
Length(lbl_maxjurosquit.Caption) - 1 - 5)) then
begin
edt_jurosquitar.Text := copy(lbl_maxjurosquit.Caption, 6,
Length(lbl_maxjurosquit.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
end;
if up_jurosquitar.Max = 0 then
begin
edt_jurosquitar.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_jurosquitarKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_jurosquitar.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_multasparcelasChange(Sender: TObject);
begin
try
if (strtofloat(edt_multasparcelas.Text) > -1) and (queryListaTitulos.Active)
and (edt_multasparcelas.Text <> '') then
begin
if strtofloat(edt_multasparcelas.Text) >
strtoint(copy(lbl_maxmultapar.Caption, 6,
Length(lbl_maxmultapar.Caption) - 1 - 5)) then
begin
edt_multasparcelas.Text := copy(lbl_maxmultapar.Caption, 6,
Length(lbl_maxmultapar.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
if up_multasparcelas.Max = 0 then
begin
edt_multasparcelas.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_multasparcelasKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_multasparcelas.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_multasquitarChange(Sender: TObject);
begin
try
if (strtofloat(edt_multasquitar.Text) > -1) and (queryListaTitulos.Active)
and (edt_multasquitar.Text <> '') then
begin
if strtofloat(edt_multasquitar.Text) >
strtoint(copy(lbl_maxmultaquit.Caption, 6,
Length(lbl_maxmultaquit.Caption) - 1 - 5)) then
begin
edt_multasquitar.Text := copy(lbl_maxmultaquit.Caption, 6,
Length(lbl_maxmultaquit.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
end;
if up_multasquitar.Max = 0 then
begin
edt_multasquitar.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_multasquitarKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_multasquitar.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_nrparcelasChange(Sender: TObject);
begin
try
if (strtoint(edt_nrparcelas.Text) > -1) and (queryListaTitulos.Active) and
(edt_nrparcelas.Text <> '') then
begin
if strtoint(edt_nrparcelas.Text) > up_nrparcelas.Max then
begin
edt_nrparcelas.Text := inttostr(up_nrparcelas.Max);
end;
if strtoint(edt_nrparcelas.Text) < 0 then
begin
edt_nrparcelas.Text := '0';
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
if (cb_descquit.Checked) and (not ficha_dev) then
begin
edt_nrparcelas.Text := '0';
end;
{ if cb_formapag.ItemIndex = 1 then
begin
edt_nrparcelas.Text := '0';
end; }
// Att_campos;
// CalcValorParcelas;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_nrparcelasExit(Sender: TObject);
begin
if edt_nrparcelas.Text = '' then
begin
edt_nrparcelas.Text := '0';
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
end;
procedure TfrmEfetuarCobranca.edt_prentradaChange(Sender: TObject);
begin
try
if (strtoint(edt_prentrada.Text) > -1) and (queryListaTitulos.Active) and
(edt_prentrada.Text <> '') then
begin
if strtoint(edt_prentrada.Text) >
strtoint(copy(lbl_maxentrada.Caption, 6, Length(lbl_maxentrada.Caption)
- 1 - 5)) then
begin
edt_prentrada.Text := copy(lbl_maxentrada.Caption, 6,
Length(lbl_maxentrada.Caption) - 1 - 5);
end;
if strtoint(edt_prentrada.Text) <
strtoint(copy(lbl_minentrada.Caption, 6, Length(lbl_minentrada.Caption)
- 1 - 5)) then
begin
edt_prentrada.Text := copy(lbl_minentrada.Caption, 6,
Length(lbl_minentrada.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
if ud_entrada.Max = 0 then
begin
edt_prentrada.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_principalparcelasChange(Sender: TObject);
begin
try
if (strtofloat(edt_principalparcelas.Text) > -1) and
(queryListaTitulos.Active) and (edt_principalparcelas.Text <> '') then
begin
if strtofloat(edt_principalparcelas.Text) >
strtoint(copy(lbl_maxprinpar.Caption, 6, Length(lbl_maxprinpar.Caption)
- 1 - 5)) then
begin
edt_principalparcelas.Text := copy(lbl_maxprinpar.Caption, 6,
Length(lbl_maxprinpar.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
if up_principalparcelas.Max = 0 then
begin
edt_principalparcelas.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_principalparcelasKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_principalparcelas.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_principalquitarChange(Sender: TObject);
begin
try
if (strtofloat(edt_principalquitar.Text) > -1) and
(queryListaTitulos.Active) and (edt_principalquitar.Text <> '') then
begin
if strtofloat(edt_principalquitar.Text) >
strtoint(copy(lbl_maxprinquit.Caption, 6,
Length(lbl_maxprinquit.Caption) - 1 - 5)) then
begin
edt_principalquitar.Text := copy(lbl_maxprinquit.Caption, 6,
Length(lbl_maxprinquit.Caption) - 1 - 5);
end;
queryListaTitulos.Refresh;
Att_campos;
end;
if up_principalquitar.Max = 0 then
begin
edt_principalquitar.Text := '0';
exit;
end;
except
end;
end;
procedure TfrmEfetuarCobranca.edt_principalquitarKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_principalquitar.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.edt_txextraChange(Sender: TObject);
begin
if Length(edt_txextra.Text) < 1 then
begin
edt_txextra.Text := '0';
end;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.edt_txextraKeyPress(Sender: TObject;
var Key: Char);
begin
if not(Key in [#8, '0' .. '9',
System.SysUtils.FormatSettings.DecimalSeparator]) then
begin
Key := #0;
end
else if (Key = System.SysUtils.FormatSettings.DecimalSeparator) and
(Pos(Key, edt_txextra.Text) > 0) then
begin
Key := #0;
end;
end;
procedure TfrmEfetuarCobranca.FormActivate(Sender: TObject);
begin
// showmessage('oi');
if Length(dados) > 0 then
begin
dtsDevedores.DataSet.RecNo := dados[0];
dtsEnderecos.DataSet.RecNo := dados[1];
dtsTelefones.DataSet.RecNo := dados[2];
dtsTitulos.DataSet.RecNo := dados[3];
dtsDespesas.DataSet.RecNo := dados[4];
dtsProvidencias.DataSet.RecNo := dados[5];
dtsHistorico.DataSet.RecNo := dados[6];
dtmSystem.tblCobCampanha.RecNo := dados[7];
dtmSystem.tblCampanhaDevedores.RecNo := dados[8];
dtsEmpresa.DataSet.RecNo := dados[9];
dtsCHGEmpresa.DataSet.RecNo := dados[10];
dtsIndicadorFinanceiro.DataSet.RecNo := dados[11];
end;
end;
procedure TfrmEfetuarCobranca.FormCanResize(Sender: TObject;
var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
if after_show then
begin
Resize := false;
end
else
begin
Resize := true;
end;
end;
procedure TfrmEfetuarCobranca.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// if MessageDlg
// ('Você está prestes a fechar um acionamento em andamento. Alterações neste devedor podem não ser salvas. Deseja continuar?',
// mtWarning, mbYesNo, 0) = mrNo then
// begin
// abort;
// end
// else
// begin
//
// end;
with dtmSystem do
begin
// tblDevedores.Close;
// tblEnderecos.Close;
// tblTelefones.Close;
// tblTitulos.Close;
// tblProvidencias.Close;
// tblHistorico.Close;
// tblCampanhaDevedores.Close;
// tblCobCampanha.Close;
/// / tblAgenda.Close;
// tblCHGEmpresa.Close;
//
// tblFaixas.Close;
// tblPoliticas.Close;
//
// ROQueryFaixa.Close;
end;
// queryCobradores.Close;
// queryHelper.Close;
// queryListaTitulos.Close;
Action := caFree;
pesquisa := false;
frmEfetuarCobranca := nil;
end;
procedure TfrmEfetuarCobranca.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if navPrincipal.DataSource <> nil then
if navPrincipal.DataSource.State in [dsInsert, dsEdit] then
begin
MessageDlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
CanClose := false;
end;
if navEmail.DataSource <> nil then
if navEmail.DataSource.State in [dsInsert, dsEdit] then
begin
MessageDlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
CanClose := false;
end;
if navTelefone.DataSource <> nil then
if navTelefone.DataSource.State in [dsInsert, dsEdit] then
begin
MessageDlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
CanClose := false;
end;
if navTitulos.DataSource <> nil then
if navEmail.DataSource.State in [dsInsert, dsEdit] then
begin
MessageDlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
CanClose := false;
end;
if navEmail.DataSource <> nil then
if navEmail.DataSource.State in [dsInsert, dsEdit] then
begin
MessageDlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
CanClose := false;
end;
if navhistorico.DataSource <> nil then
if navhistorico.DataSource.State in [dsInsert, dsEdit] then
begin
MessageDlg
('Existem alterações pendentes, clique em CONFIRMAR ou CANCELAR.',
mtConfirmation, [mbOK], 0);
CanClose := false;
end;
end;
procedure TfrmEfetuarCobranca.FormCreate(Sender: TObject);
var
Pos: Integer;
begin
// processo começa mesmo é no form show
old_id_d := -1;
id_emp_calc := -1;
setlength(ids_tits_calc, 0);
pnl_cobrado.Color := clWebLightBlue;
after_show := false;
pgCobranca.ActivePageIndex := 0;
dtp_agendadatahist.Date := Dateof(Now);
dtp_agendahorahist.Time := Timeof(Now);
dtp_diaagendamento.Date := Dateof(Now);
dtp_horaagendamento.Time := Timeof(Now);
dtp_agendadatahist.MinDate := Date;
dtp_diaagendamento.MinDate := Date;
rdbdt_entrada.Date := Date;
old_id := -1;
atendimento := 'cobrando';
cb_agendar.Checked := false;
cb_agendahist.Checked := false;
nome_cobrador := '__________';
dia_agendado := '__/__/____';
hora_agendado := '__:__';
mb_fechamento.Clear;
pesquisa := false;
ficha_dev := false;
StatusBar1.Panels[0].Text := 'Ctrl+K para conceder permissões.';
// dbgrd_listadevedores.OnCellClick := nil;
dtp_atrasorecalc.Date := Date;
with dtmSystem do
begin
if not tblDevedores.Active then
begin
tblDevedores.Open;
end
else
begin
tblDevedores.Refresh;
end;
if not tblEmail.Active then
begin
tblEmail.Open;
end
else
begin
tblEmail.Refresh;
end;
if not tblEstados.Active then
begin
tblEstados.Open;
end
else
begin
tblEstados.Refresh;
end;
if not tblCidades.Active then
begin
tblCidades.Open;
end
else
begin
tblCidades.Refresh;
end;
if not tblEnderecos.Active then
begin
tblEnderecos.Open;
end
else
begin
tblEnderecos.Refresh;
end;
if not tblTelefones.Active then
begin
tblTelefones.Open;
end
else
begin
tblTelefones.Refresh;
end;
if not tblTitulos.Active then
begin
tblTitulos.Open;
end
else
begin
tblTitulos.Refresh;
end;
// if not tblDespesasTitulos.Active then
// begin
// tblDespesasTitulos.Open;
// end;
if not tblProvidencias.Active then
begin
tblProvidencias.Open;
end
else
begin
tblProvidencias.Refresh;
end;
if not tblHistorico.Active then
begin
tblHistorico.Open;
end
else
begin
tblHistorico.Refresh;
end;
if not tblCobCampanha.Active then
begin
tblCobCampanha.Open;
end
else
begin
tblCobCampanha.Refresh;
end;
if not tblCampanhaDevedores.Active then
begin
tblCampanhaDevedores.Open;
end
else
begin
tblCampanhaDevedores.Refresh;
end;
if not tblLogCampanhas.Active then
begin
tblLogCampanhas.Open;
end
else
begin
tblLogCampanhas.Refresh;
end;
if not tblAgenda.Active then
begin
tblAgenda.Open;
end
else
begin
tblAgenda.Refresh;
end;
if not tblEmpresa.Active then
begin
tblEmpresa.Open;
end
else
begin
tblEmpresa.Refresh;
end;
if not tblCHGEmpresa.Active then
begin
tblCHGEmpresa.Open;
end
else
begin
tblCHGEmpresa.Refresh;
end;
if not tblPoliticas.Active then
begin
tblPoliticas.Open;
end
else
begin
tblPoliticas.Refresh;
end;
if not tblFaixas.Active then
begin
tblFaixas.Open;
end
else
begin
tblFaixas.Refresh;
end;
if not tblIndicadorFinanceiro.Active then
begin
tblIndicadorFinanceiro.Open;
end
else
begin
tblIndicadorFinanceiro.Refresh;
end;
if not tblPrCartao.Active then
begin
tblPrCartao.Open;
end
else
begin
tblPrCartao.Refresh;
end;
tblEmpresa.First;
tblCHGEmpresa.First;
Pos := 0;
// while not tblCHGEmpresa.Eof do
// begin
// clb_empresas.Items.Add(tblCHGEmpresaTX_NOME.AsString);
// if tblTitulosID_EMPRESA.AsString = tblCHGEmpresaID_EMPRESA.AsString then
// begin
// clb_empresas.Checked[Pos] := true;
// end;
// tblCHGEmpresa.Next;
// Pos := Pos + 1;
// end;
end;
// with dbgrd_listtitulos do
// begin
// Columns[2].Width := 100;
// Columns[3].Width := 80;
// Columns[4].Width := 80;
// end;
if dtmSystem.id_grupo <> 1 then
begin
dbgrd_titulos.Columns[9].Visible := false;
dbgrd_titulos.Columns[10].Visible := false;
end;
{ FListViewOldWndProc := lv_titulos.WindowProc;
lv_titulos.WindowProc := ListViewNewWndProc;
FlistViewOldWndProc2 := lv_parcelas.WindowProc;
lv_parcelas.WindowProc := ListViewNewWndProc2; }
gb_descontosquit.Enabled := cb_descquit.Checked;
gb_descontospar.Enabled := cb_descpar.Checked;
FormatSettings := TFormatSettings.Create;
FormatSettings.ThousandSeparator := '.';
FormatSettings.DecimalSeparator := ',';
dtsDevedores.DataSet.Refresh;
queryCobradores.SQL.Text :=
'select id_usuario, tx_nome from sys_usuarios where tp_ativo = ' +
QuotedStr('S') + ' order by tx_nome';
queryCobradores.Open;
AdjustCheckListBox;
SetupHackedNavigator(navPrincipal, ImageList1, 's', 8);
SetupHackedNavigator(navEmail, ImageList1, 'n', 2);
SetupHackedNavigator(navEnderecos, ImageList1, 's', 8);
SetupHackedNavigator(navTelefone, ImageList1, 's', 8);
SetupHackedNavigator(navTitulos, ImageList1, 's', 8);
SetupHackedNavigator(navhistorico, ImageList1, 's', 8);
// SetupHackedNavigator(navDespesas, ImageList1, 's', 8);
// cb_descquit.Enabled := dtmSystem.VerificarPermissao('ECBR.01.01');
// cb_descpar.Enabled := dtmSystem.VerificarPermissao('ECBR.01.02');
// cb_nmulta.Enabled := dtmSystem.VerificarPermissao('ECBR.01.03');
// ECBR.02.01
// navPrincipal.Enabled := dtmSystem.VerificarPermissao('ECBR.02.01');
// navEnderecos.Enabled := dtmSystem.VerificarPermissao('ECBR.02.02');
// navTelefone.Enabled := dtmSystem.VerificarPermissao('ECBR.02.03');
// navTitulos.Enabled := dtmSystem.VerificarPermissao('ECBR.02.04');
{ if not(dtmSystem.VerificarPermissao('ECBR.02.05.03')) then
begin
navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbDelete];
end;
if not(dtmSystem.VerificarPermissao('ECBR.02.05.02')) then
begin
navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbEdit];
end; }
ChecaPermissoes;
end;
procedure TfrmEfetuarCobranca.FormDeactivate(Sender: TObject);
begin
setlength(dados, 12);
if dtsDevedores.DataSet.Active then
begin
dados[0] := dtsDevedores.DataSet.RecNo;
end;
if dtsEnderecos.DataSet.Active then
begin
dados[1] := dtsEnderecos.DataSet.RecNo;
end;
if dtsTelefones.DataSet.Active then
begin
dados[2] := dtsTelefones.DataSet.RecNo;
end;
if dtsTitulos.DataSet.Active then
begin
dados[3] := dtsTitulos.DataSet.RecNo;
end;
if dtsDespesas.DataSet.Active then
begin
dados[4] := dtsDespesas.DataSet.RecNo;
end;
if dtsProvidencias.DataSet.Active then
begin
dados[5] := dtsProvidencias.DataSet.RecNo;
end;
if dtsHistorico.DataSet.Active then
begin
dados[6] := dtsHistorico.DataSet.RecNo;
end;
if dtmSystem.tblCobCampanha.Active then
begin
dados[7] := dtmSystem.tblCobCampanha.RecNo;
end;
if dtmSystem.tblCampanhaDevedores.Active then
begin
dados[8] := dtmSystem.tblCampanhaDevedores.RecNo;
end;
if dtsEmpresa.DataSet.Active then
begin
dados[9] := dtsEmpresa.DataSet.RecNo;
end;
if dtsCHGEmpresa.DataSet.Active then
begin
dados[10] := dtsCHGEmpresa.DataSet.RecNo;
end;
if dtsIndicadorFinanceiro.DataSet.Active then
begin
dados[11] := dtsIndicadorFinanceiro.DataSet.RecNo;
end;
end;
procedure TfrmEfetuarCobranca.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
resultado: Integer;
begin
if Key = VK_ESCAPE then
begin
if MessageDlg
('Você está prestes a fechar um acionamento em andamento. Alterações neste devedor podem não ser salvas. Deseja continuar?',
mtWarning, mbYesNo, 0) = mrNo then
begin
abort;
end;
if pgCobranca.TabIndex = 5 then
begin
resultado := MessageDlg
('Deseja realmente fechar a janela antes de efetuar a cobrança?',
mtConfirmation, [mbYes, mbNo], 0);
if resultado = mrYes then
begin
Key := 0;
Close;
end
else
begin
Key := 0;
end;
end
else
begin
Key := 0;
Close;
end;
end;
if (Key = 75) and (Shift = [ssCtrl]) then
begin
// ShowMessage('Ctrl+k is pressed!');
frmLiberaPermissao := TfrmLiberaPermissao.Create(self);
with frmLiberaPermissao do
begin
level := 2;
string_permissoes.Add('CBR.01.01.01.01');
string_permissoes.Add('CBR.01.01.01.06');
string_permissoes.Add('CBR.01.01.01.06.01');
string_permissoes.Add('CBR.01.01.01.06.02');
string_permissoes.Add('CBR.01.01.01.06.03');
string_permissoes.Add('CBR.01.01.01.02');
string_permissoes.Add('CBR.01.01.01.02.01');
string_permissoes.Add('CBR.01.01.01.02.02');
string_permissoes.Add('CBR.01.01.01.02.03');
string_permissoes.Add('CBR.01.01.01.03');
string_permissoes.Add('CBR.01.01.01.03.01');
string_permissoes.Add('CBR.01.01.01.03.02');
string_permissoes.Add('CBR.01.01.01.03.03');
string_permissoes.Add('CBR.01.01.01.04');
string_permissoes.Add('CBR.01.01.01.04.01');
string_permissoes.Add('CBR.01.01.01.04.02');
string_permissoes.Add('CBR.01.01.01.04.03');
string_permissoes.Add('CBR.01.01.01.05');
string_permissoes.Add('CBR.01.01.01.05.01');
string_permissoes.Add('CBR.01.01.01.05.02');
string_permissoes.Add('CBR.01.01.01.05.03');
string_permissoes.Add('CBR.01.01.02.01.01');
string_permissoes.Add('CBR.01.01.02.01.02');
string_permissoes.Add('CBR.01.01.02.02');
string_permissoes.Add('CBR.01.01.02.03');
string_permissoes.Add('CBR.01.01.02.04');
ShowModal;
if ModalResult = mrOk then
begin
case dtmSystem.cod_liberapermissao of
0:
navPrincipal.Enabled := true;
1:
navEmail.Enabled := true;
2:
begin
navEmail.Enabled := true;
navEmail.VisibleButtons := navEmail.VisibleButtons + [nbInsert];
end;
3:
begin
navEmail.Enabled := true;
navEmail.VisibleButtons := navEmail.VisibleButtons + [nbEdit];
end;
4:
begin
navEmail.Enabled := true;
navEmail.VisibleButtons := navEmail.VisibleButtons + [nbDelete];
end;
5:
navEnderecos.Enabled := true;
6:
begin
navEnderecos.Enabled := true;
navEnderecos.VisibleButtons := navEnderecos.VisibleButtons +
[nbInsert];
end;
7:
begin
navEnderecos.Enabled := true;
navEnderecos.VisibleButtons := navEnderecos.VisibleButtons
+ [nbEdit];
end;
8:
begin
navEnderecos.Enabled := true;
navEnderecos.VisibleButtons := navEnderecos.VisibleButtons +
[nbDelete];
end;
9:
navTelefone.Enabled := true;
10:
begin
navTelefone.Enabled := true;
navTelefone.VisibleButtons := navTelefone.VisibleButtons +
[nbInsert];
end;
11:
begin
navTelefone.Enabled := true;
navTelefone.VisibleButtons := navTelefone.VisibleButtons
+ [nbEdit];
end;
12:
begin
navTelefone.Enabled := true;
navTelefone.VisibleButtons := navTelefone.VisibleButtons +
[nbDelete];
end;
13:
navTitulos.Enabled := true;
14:
begin
navTitulos.Enabled := true;
navTitulos.VisibleButtons := navTitulos.VisibleButtons +
[nbInsert];
end;
15:
begin
navTitulos.Enabled := true;
navTitulos.VisibleButtons := navTitulos.VisibleButtons + [nbEdit];
end;
16:
begin
navTitulos.Enabled := true;
navTitulos.VisibleButtons := navTitulos.VisibleButtons +
[nbDelete];
end;
17:
navhistorico.Enabled := true;
18:
begin
navhistorico.Enabled := true;
navhistorico.VisibleButtons := navhistorico.VisibleButtons +
[nbInsert];
end;
19:
begin
navhistorico.Enabled := true;
navhistorico.VisibleButtons := navhistorico.VisibleButtons
+ [nbEdit];
end;
20:
begin
navhistorico.Enabled := true;
navhistorico.VisibleButtons := navhistorico.VisibleButtons +
[nbDelete];
end;
21:
tabQuitar.Enabled := true;
22:
tabParcelar.Enabled := true;
23:
cb_nmulta.Enabled := true;
24:
cbx_txextra.Enabled := true;
25:
cbx_excentrada.Enabled := true;
end;
end;
end;
end;
end;
procedure TfrmEfetuarCobranca.FormShow(Sender: TObject);
begin
setlength(dados, 0);
after_show := true;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
end;
procedure TfrmEfetuarCobranca.SetupHackedNavigator(const Navigator
: TDBNavigator; const Glyphs: TImageList; S: string; size: Integer);
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];
Font.size := size;
end;
end;
procedure TfrmEfetuarCobranca.tabCalculosShow(Sender: TObject);
begin
queryListaTitulos.Refresh;
CriarLista;
end;
procedure TfrmEfetuarCobranca.up_fontememoClick(Sender: TObject;
Button: TUDBtnType);
begin
mb_fechamento.Font.size := strtoint(edt_fontememo.Text);
end;
procedure TfrmEfetuarCobranca.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 TfrmEfetuarCobranca.cb_descparClick(Sender: TObject);
begin
if cb_descpar.Checked then
begin
cb_descquit.Checked := false;
gb_descontospar.Enabled := true;
gb_descontosquit.Enabled := false;
cb_desc_quit_cor.Checked := false;
end
else
begin
gb_descontospar.Enabled := false;
end;
if not gb_descontospar.Enabled then
begin
edt_indparcelas.Text := '0';
edt_principalparcelas.Text := '0';
edt_multasparcelas.Text := '0';
edt_jurosparcelas.Text := '0';
edt_corquitar.Text := '0';
end;
end;
procedure TfrmEfetuarCobranca.cb_descquitClick(Sender: TObject);
begin
if cb_descquit.Checked then
begin
cb_descpar.Checked := false;
gb_descontosquit.Enabled := true;
gb_descontospar.Enabled := false;
edt_nrparcelas.Text := '0';
cb_desc_par_cor.Checked := false;
end
else
begin
gb_descontosquit.Enabled := false;
end;
if not gb_descontosquit.Enabled then
begin
edt_indquitar.Text := '0';
edt_principalquitar.Text := '0';
edt_multasquitar.Text := '0';
edt_jurosquitar.Text := '0';
edt_corpar.Text := '0';
end;
end;
procedure TfrmEfetuarCobranca.cb_desc_par_corClick(Sender: TObject);
begin
if cb_desc_par_cor.Checked then
begin
edt_indparcelas.Text := '0';
edt_principalparcelas.Text := '0';
edt_multasparcelas.Text := '0';
edt_jurosparcelas.Text := '0';
edt_corquitar.Text := '0';
end;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.cb_desc_quit_corClick(Sender: TObject);
begin
if cb_descquit.Checked then
begin
edt_indquitar.Text := '0';
edt_principalquitar.Text := '0';
edt_multasquitar.Text := '0';
edt_jurosquitar.Text := '0';
end;
queryListaTitulos.Refresh;
Att_campos;
end;
procedure TfrmEfetuarCobranca.cb_formapagChange(Sender: TObject);
begin
{ if { (cb_formapag.ItemIndex = 0) or (cb_formapag.ItemIndex = 1) then
begin
edt_nrparcelas.Text := '0';
// edt_nrparcelas.OnChange;
end; }
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.cb_negritomemoClick(Sender: TObject);
begin
if cb_negritomemo.Checked then
begin
mb_fechamento.Font.Style := mb_fechamento.Font.Style + [fsbold];
end
else
begin
mb_fechamento.Font.Style := mb_fechamento.Font.Style - [fsbold];
end;
end;
procedure TfrmEfetuarCobranca.cb_nmultaClick(Sender: TObject);
begin
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.ChecaPermissoes;
begin
with dtmSystem do
begin
// if perm_cobtel then
// begin
navPrincipal.Enabled := VerificarPermissao('CBR.01.01.01.01');
navEmail.Enabled := VerificarPermissao('CBR.01.01.01.06');
if not VerificarPermissao('CBR.01.01.01.06.01') then
navEmail.VisibleButtons := navEmail.VisibleButtons - [nbInsert];
if not VerificarPermissao('CBR.01.01.01.06.02') then
navEmail.VisibleButtons := navEmail.VisibleButtons - [nbEdit];
if not VerificarPermissao('CBR.01.01.01.06.03') then
navEmail.VisibleButtons := navEmail.VisibleButtons - [nbDelete];
navEnderecos.Enabled := VerificarPermissao('CBR.01.01.01.02');
if not VerificarPermissao('CBR.01.01.01.02.01') then
navEnderecos.VisibleButtons := navEnderecos.VisibleButtons - [nbInsert];
if not VerificarPermissao('CBR.01.01.01.02.02') then
navEnderecos.VisibleButtons := navEnderecos.VisibleButtons - [nbEdit];
if not VerificarPermissao('CBR.01.01.01.02.03') then
navEnderecos.VisibleButtons := navEnderecos.VisibleButtons - [nbDelete];
navTelefone.Enabled := VerificarPermissao('CBR.01.01.01.03');
if not VerificarPermissao('CBR.01.01.01.03.01') then
navTelefone.VisibleButtons := navTelefone.VisibleButtons - [nbInsert];
if not VerificarPermissao('CBR.01.01.01.03.02') then
navTelefone.VisibleButtons := navTelefone.VisibleButtons - [nbEdit];
if not VerificarPermissao('CBR.01.01.01.03.03') then
navTelefone.VisibleButtons := navTelefone.VisibleButtons - [nbDelete];
navTitulos.Enabled := VerificarPermissao('CBR.01.01.01.04');
if not VerificarPermissao('CBR.01.01.01.04.01') then
navTitulos.VisibleButtons := navTitulos.VisibleButtons - [nbInsert];
if not VerificarPermissao('CBR.01.01.01.04.02') then
navTitulos.VisibleButtons := navTitulos.VisibleButtons - [nbEdit];
if not VerificarPermissao('CBR.01.01.01.04.03') then
navTitulos.VisibleButtons := navTitulos.VisibleButtons - [nbDelete];
navhistorico.Enabled := VerificarPermissao('CBR.01.01.01.05');
if not VerificarPermissao('CBR.01.01.01.05.01') then
navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbInsert];
if not VerificarPermissao('CBR.01.01.01.05.02') then
navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbEdit];
if not VerificarPermissao('CBR.01.01.01.05.03') then
navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbDelete];
tabQuitar.Enabled := VerificarPermissao('CBR.01.01.02.01.01');
tabParcelar.Enabled := VerificarPermissao('CBR.01.01.02.01.02');
cb_nmulta.Enabled := VerificarPermissao('CBR.01.01.02.02');
cbx_txextra.Enabled := VerificarPermissao('CBR.01.01.02.03');
cbx_excentrada.Enabled := VerificarPermissao('CBR.01.01.02.04');
perm_cobtel := false;
// end;
end;
end;
procedure TfrmEfetuarCobranca.cbx_excentradaClick(Sender: TObject);
begin
edt_excentrada.Enabled := cbx_excentrada.Enabled;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.cbx_exjurosparcelarClick(Sender: TObject);
begin
edt_excjurosparcela.Enabled := cbx_exjurosparcelar.Enabled;
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.cbx_txextraClick(Sender: TObject);
begin
edt_txextra.Enabled := cbx_txextra.Checked;
if not cbx_txextra.Checked then
begin
edt_txextra.Text := '0,00';
end;
end;
procedure TfrmEfetuarCobranca.cb_agendahistClick(Sender: TObject);
begin
dtp_agendadatahist.Enabled := cb_agendahist.Checked;
dtp_agendahorahist.Enabled := cb_agendahist.Checked;
dblucb_agendacobhist.Enabled := cb_agendahist.Checked;
end;
procedure TfrmEfetuarCobranca.cb_agendarClick(Sender: TObject);
var
i: Integer;
begin
dtp_diaagendamento.Enabled := cb_agendar.Checked;
dtp_horaagendamento.Enabled := cb_agendar.Checked;
dblucb_cobradoragendar.Enabled := cb_agendar.Checked;
if cb_agendar.Checked then
begin
mb_fechamento.lines.Add
('Foi agendado para o dia __/__/____ para o cobrador __________ no horário de atendimento __:__.');
for i := 0 to mb_fechamento.lines.Count - 1 do
if AnsiContainsStr(mb_fechamento.lines[i], 'Foi agendado para o dia') then
begin
mb_fechamento.lines[i] := StringReplace(mb_fechamento.lines[i],
dia_agendado, FormatDateTime('dd/mm/yyyy', dtp_diaagendamento.Date),
[rfReplaceAll, rfIgnoreCase]);
end;
dia_agendado := FormatDateTime('dd/mm/yyyy', dtp_diaagendamento.Date);
for i := 0 to mb_fechamento.lines.Count - 1 do
if AnsiContainsStr(mb_fechamento.lines[i], hora_agendado) then
begin
mb_fechamento.lines[i] := StringReplace(mb_fechamento.lines[i],
hora_agendado, FormatDateTime('t', dtp_horaagendamento.Date),
[rfReplaceAll, rfIgnoreCase]);
end;
hora_agendado := FormatDateTime('t', dtp_horaagendamento.Date);
if dblucb_cobradoragendar.KeyValue > -1 then
begin
for i := 0 to mb_fechamento.lines.Count - 1 do
if AnsiContainsStr(mb_fechamento.lines[i], 'para o cobrador') then
begin
mb_fechamento.lines[i] := StringReplace(mb_fechamento.lines[i],
nome_cobrador, queryCobradoresTX_NOME.AsString,
[rfReplaceAll, rfIgnoreCase]);
nome_cobrador := queryCobradoresTX_NOME.AsString;
end;
end;
end
else
begin
for i := 0 to mb_fechamento.lines.Count - 1 do
if AnsiContainsStr(mb_fechamento.lines[i], 'Foi agendado para o dia') then
begin
dia_agendado := '__/__/____';
hora_agendado := '__:__';
nome_cobrador := '__________';
mb_fechamento.lines.Delete(i);
end;
end;
end;
procedure TfrmEfetuarCobranca.clb_beneficiarioscalculoClickCheck
(Sender: TObject);
var
i: Integer;
n_marcou: Boolean;
begin
n_marcou := true;
with TCheckListBox(Sender) do
begin
if Checked[ItemIndex] then
begin
n_marcou := false;
Items.beginupdate;
id_emp_calc := ItemIndex;
for i := 0 to Items.Count - 1 do
if i = ItemIndex then
begin
continue;
end
else
begin
Checked[i] := false;
end;
Items.EndUpdate;
lv_titulos.PopupMenu := popmnu_incluir;
end
else
begin
for i := 0 to Items.Count - 1 do
if Checked[i] = true then
begin
n_marcou := false;
id_emp_calc := i;
end;
lv_titulos.PopupMenu := nil;
end;
end;
if n_marcou then
begin
lv_titulos.Clear;
id_emp_calc := -1;
setlength(ids_tits_calc, 0);
end
else
begin
CriarLista;
end;
end;
procedure TfrmEfetuarCobranca.clb_empresasClickCheck(Sender: TObject);
var
i: Integer;
begin
// with TCheckListBox(Sender) do
// begin
// if Checked[ItemIndex] then
// begin
// Items.beginupdate;
// for i := 0 to Items.Count - 1 do
// if i = ItemIndex then
// begin
// dtmSystem.tblCHGEmpresa.Locate('TX_NOME', clb_empresas.Items[i], []);
// selected_id_chg_empresa :=
// dtmSystem.tblCHGEmpresaID_EMPRESA.AsInteger;
// continue;
// end
// else
// begin
// Checked[i] := false;
// end;
// Items.EndUpdate;
// end;
// end;
end;
procedure TfrmEfetuarCobranca.ClearList(List: TListView);
var
i, ListCnt: Integer;
begin
ListCnt := List.Items.Count;
List.Items.beginupdate;
for i := ListCnt - 1 downto 0 do
begin
List.Items.Delete(i);
end;
List.Items.EndUpdate;
end;
procedure TfrmEfetuarCobranca.CriarLista;
var
h: Integer;
nMaxWidth: Integer;
i: Integer;
nItemWidth: Integer;
achou: Boolean;
begin
Screen.Cursor := crHourGlass;
achou := false;
if queryListaTitulos.Connection = nil then
// BACALHAU, NÃO TEM EXPLICAÇÃO. SÓ FUNCIONA.
begin
exit;
end;
// qtde_titulos := 0;
dtmSystem.tblCHGEmpresa.Open;
for h := 0 to clb_beneficiarioscalculo.Items.Count - 1 do
begin
if clb_beneficiarioscalculo.Checked[h] then
begin
dtmSystem.tblCHGEmpresa.Locate('TX_NOME',
clb_beneficiarioscalculo.Items[h], []);
achou := true;
end;
end;
nMaxWidth := clb_beneficiarioscalculo.ClientWidth;
for i := 0 to clb_beneficiarioscalculo.Items.Count - 1 do
begin
nItemWidth := clb_beneficiarioscalculo.Canvas.TextWidth
(clb_beneficiarioscalculo.Items[i]) + 20;
if (nItemWidth > nMaxWidth) then
nMaxWidth := nItemWidth;
end;
if (nMaxWidth > clb_beneficiarioscalculo.ClientWidth) then
begin
clb_beneficiarioscalculo.ScrollWidth := nMaxWidth;
end;
if achou then
begin
queryListaTitulos.SQL.Clear;
queryListaTitulos.SQL.Text :=
'select * from (select * from chg_titulos where id_devedor = ' +
dtmSystem.tblDevedoresID_DEVEDOR.AsString +
') where ((tp_situacao = ''A'' or tp_situacao = ''AC'')) and' +
'(id_empresa = ' + dtmSystem.tblCHGEmpresaID_EMPRESA.AsString + ')' +
' order by DT_VENCIMENTO, VL_TITULO';
queryListaTitulos.Open;
queryListaTitulos.DisableControls;
queryListaTitulos.First;
lv_titulos.Clear;
while not queryListaTitulos.Eof do
begin
dtmSystem.tblFaixas.Filter := '(DT_INICIO < ' +
queryListaTitulosDT_ATRASO.AsString + ')and(DT_FINAL > ' +
queryListaTitulosDT_ATRASO.AsString + ')';
dtmSystem.tblFaixas.Filtered := true;
dtmSystem.tblFaixas.Open;
dtmSystem.tblPoliticas.Open;
dtmSystem.tblPoliticas.Locate('ID_POLITICA',
dtmSystem.tblFaixasID_POLITICA.AsString, []);
with lv_titulos.Items.Add do
begin
SubItems.Add(queryListaTitulos.FieldByName('NOME_EMPRESA').AsString);
SubItems.Add(queryListaTitulos.FieldByName('TX_PRODUTO').AsString);
SubItems.Add(queryListaTitulos.FieldByName('DT_VENCIMENTO').AsString);
SubItems.Add(CurrToStrF(queryListaTitulos.FieldByName('VL_TITULO')
.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt));
SubItems.Add(queryListaTitulos.FieldByName('CD_DEVEDOR').AsString);
SubItems.Add(queryListaTitulos.FieldByName('NR_PARCELAS').AsString);
SubItems.Add(queryListaTitulos.FieldByName('DT_ENTRADA').AsString);
end;
lv_titulos.Column[0].Alignment := TAlignment.taCenter;
dtmSystem.tblFaixas.Filtered := false;
queryListaTitulos.Next;
end;
end
else
begin
queryListaTitulos.SQL.Clear;
queryListaTitulos.SQL.Text :=
'select * from (select * from chg_titulos where id_devedor = ' +
dtmSystem.tblDevedoresID_DEVEDOR.AsString +
') where ((tp_situacao = ''A'' or tp_situacao = ''AC'')) and' +
'(id_empresa = 0)' + ' order by DT_VENCIMENTO, VL_TITULO';
queryListaTitulos.Open;
queryListaTitulos.DisableControls;
queryListaTitulos.First;
lv_titulos.Clear;
end;
queryListaTitulos.EnableControls;
Screen.Cursor := crDefault;
end;
procedure TfrmEfetuarCobranca.lv_titulosItemChecked(Sender: TObject;
Item: TListItem);
var
i, k: Integer;
Checked: Boolean;
begin
qtde_titulos := 0;
Checked := false;
k := 0;
if lv_titulos.Items.Count > 0 then
begin
for i := 0 to lv_titulos.Items.Count - 1 do
begin
if lv_titulos.Items.Item[i].Checked then
begin
queryListaTitulos.RecNo := i + 1;
qtde_titulos := qtde_titulos + 1;
str_titulos := str_titulos + queryListaTitulosID_TITULO.AsString + ';';
id_emp := queryListaTitulosID_EMPRESA.AsInteger;
Checked := true;
setlength(str_tit, k + 1);
str_tit[k] := queryListaTitulosID_TITULO.AsInteger;
Inc(k, 1);
end;
end;
end;
if not Checked then
begin
str_titulos := 'S/T';
end;
edt_indparcelas.Text := '0';
edt_principalparcelas.Text := '0';
edt_multasparcelas.Text := '0';
edt_jurosparcelas.Text := '0';
edt_corquitar.Text := '0';
edt_indquitar.Text := '0';
edt_principalquitar.Text := '0';
edt_multasquitar.Text := '0';
edt_jurosquitar.Text := '0';
edt_corpar.Text := '0';
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.mnu_incluirClick(Sender: TObject);
var
i: Integer;
begin
for i := 0 to lv_titulos.Items.Count - 1 do
begin
lv_titulos.Items[i].Checked := true;
end;
qtde_titulos := lv_titulos.Items.Count;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.pgCobrancaChange(Sender: TObject);
var
i: Integer;
begin
try
if pgCobranca.TabIndex = 5 then
begin
if (atendimento = 'cobrando') then
begin
pgCobranca.TabIndex := pagina;
end;
if id_emp_calc <> -1 then
begin
clb_beneficiarioscalculo.Checked[id_emp_calc] := true;
end;
end;
if pagina = 4 then
begin
setlength(ids_tits_calc, queryListaTitulos.RecordCount);
for i := 0 to lv_titulos.Items.Count - 1 do
begin
if lv_titulos.Items[i].Checked then
begin
ids_tits_calc[i] := true;
end
else
begin
ids_tits_calc[i] := false;
end;
end;
end;
if atendimento = 'fechamento' then
begin
// clb_beneficiarioscalculo.Enabled := false;
// lv_titulos.Enabled := false;
edt_nrparcelas.Enabled := false;
up_nrparcelas.Enabled := false;
cb_nmulta.Enabled := false;
dtp_atrasorecalc.Enabled := false;
cb_descquit.Enabled := false;
cb_descpar.Enabled := false;
cbx_txextra.Enabled := false;
cbx_excentrada.Enabled := false;
end;
if atendimento = 'cobrando' then
begin
// clb_beneficiarioscalculo.Enabled := true;
// lv_titulos.Enabled := true;
edt_nrparcelas.Enabled := true;
up_nrparcelas.Enabled := true;
cb_nmulta.Enabled := true;
dtp_atrasorecalc.Enabled := true;
cb_descquit.Enabled := true;
cb_descpar.Enabled := true;
cbx_txextra.Enabled := true;
cbx_excentrada.Enabled := true;
end;
if pagina <> 4 then
begin
if Length(ids_tits_calc) > 0 then
begin
for i := 0 to Length(ids_tits_calc) - 1 do
begin
lv_titulos.Items[i].Checked := ids_tits_calc[i];
end;
end;
end;
if pgCobranca.TabIndex = 4 then
begin
clb_beneficiarioscalculo.Clear;
qryConsulta.SQL.Text := 'select * from chg_empresas where id_empresa in '
+ '(select id_empresa from chg_titulos' +
' where (tp_situacao = ''A'' or tp_situacao = ''AC'') and (id_devedor = '
+ dtmSystem.tblDevedoresID_DEVEDOR.AsString + '))';
qryConsulta.Open;
qryConsulta.First;
while not qryConsulta.Eof do
begin
clb_beneficiarioscalculo.Items.Add(qryConsulta.FieldByName('TX_NOME')
.AsString);
qryConsulta.Next;
end;
CriarLista;
end;
// if pgCobranca.TabIndex = 4 then
// begin
// clb_beneficiarioscalculo.Clear;
//
// qryConsulta.SQL.Text := 'select * from chg_empresas where id_empresa in ' +
// '(select id_empresa from chg_titulos' +
// ' where (tp_situacao = ''A'') and (id_devedor = ' +
// dtmSystem.tblDevedoresID_DEVEDOR.AsString + '))';
// qryConsulta.Open;
// qryConsulta.First;
// while not qryConsulta.Eof do
// begin
// clb_beneficiarioscalculo.Items.Add(qryConsulta.FieldByName('TX_NOME')
// .AsString);
// qryConsulta.Next;
// end;
// CriarLista;
// end;
except
end;
end;
procedure TfrmEfetuarCobranca.pgCobrancaChanging(Sender: TObject;
var AllowChange: Boolean);
begin
pagina := pgCobranca.TabIndex;
end;
procedure TfrmEfetuarCobranca.queryListaTitulosCalcFields(DataSet: TDataSet);
var
vl_corrigido, vl_cor_antes_desc, vl_nominal, vl_indices, pl_juros, pl_multa,
pl_indicador, pl_entrada, pl_encargos, regra_3, valor, juros, parcela,
par_extra, vl_despesa, helper_indice, cred_fin, vl_cor_depois_desc
: currency;
dividendo: double;
g: Integer;
tx_despesa: string;
begin
// inicialização de variáveis
juros := 0.00;
dividendo := 0.00;
// quantidade de dias de atraso
dtsCHGEmpresa.DataSet.Locate('ID_EMPRESA',
queryListaTitulosID_EMPRESA.AsString, []);
if not(dtsEmpresa.DataSet.Active) then
begin
dtsEmpresa.DataSet.Open;
end;
dtsEmpresa.DataSet.First;
if dtp_atrasorecalc.Date > queryListaTitulosDT_VENCIMENTO.AsDateTime then
begin
queryListaTitulosDT_ATRASO.AsInteger := DaysBetween(dtp_atrasorecalc.Date,
queryListaTitulosDT_VENCIMENTO.AsDateTime);
end
else
begin
queryListaTitulosDT_ATRASO.AsInteger := 0;
end;
vl_nominal := queryListaTitulosVL_TITULO.AsCurrency;
queryListaTitulosVL_PRINCIPAL.AsCurrency := vl_nominal;
with dtmSystem do
begin
dtsIndicadorFinanceiro.DataSet.Refresh;
dtsIndicadorFinanceiro.DataSet.Filter := 'ATRASO_MIN <=' +
inttostr(queryListaTitulosDT_ATRASO.AsInteger) + ' and ATRASO_MAX >= ' +
inttostr(queryListaTitulosDT_ATRASO.AsInteger) + ' and ID_CHG_EMPRESA = '
+ dtsCHGEmpresa.DataSet.FieldByName('ID_EMPRESA').AsString;
dtsIndicadorFinanceiro.DataSet.Filtered := true;
if dtsIndicadorFinanceiro.DataSet.IsEmpty then
begin
queryListaTitulosPR_INDICADOR.AsFloat := dtsCHGEmpresa.DataSet.FieldByName
('PR_INDICADOR_FINANCEIRO').AsFloat;
// queryListaTitulosPR_INDICADOR.AsFloat := 0;
end
else
begin
queryListaTitulosPR_INDICADOR.AsFloat :=
dtsIndicadorFinanceiro.DataSet.FieldByName('PR_INDICADOR').AsFloat;
end;
dtsPoliticas.DataSet.Refresh;
dtsPoliticas.DataSet.Filter := 'DT_INICIO <= ' +
QuotedStr(FormatDateTime('YYYY-mm-dd', Date)) + ' and DT_FIM >= ' +
QuotedStr(FormatDateTime('YYYY-mm-dd', Date)) + ' and ID_EMPRESA = ' +
dtsCHGEmpresa.DataSet.FieldByName('ID_EMPRESA').AsString;
dtsPoliticas.DataSet.Filtered := true;;
// número máx de parcelamento
queryListaTitulosNR_PARCELAS.AsInteger := dtsCHGEmpresa.DataSet.FieldByName
('NR_PARCELAS').AsInteger;
dtsFaixas.DataSet.Filtered := false;
dtsFaixas.DataSet.Refresh;
if tblPoliticasID_POLITICA.AsString <> '' then
begin
dtsFaixas.DataSet.Filter := 'ATRASO_MIN <=' +
inttostr(queryListaTitulosDT_ATRASO.AsInteger) + ' and ATRASO_MAX >= ' +
inttostr(queryListaTitulosDT_ATRASO.AsInteger) + ' and ID_POLITICA = ' +
tblPoliticasID_POLITICA.AsString;
dtsFaixas.DataSet.Filtered := true;
if dtsFaixas.DataSet.IsEmpty then
begin
dtsFaixas.DataSet.Filtered := false;
dtsFaixas.DataSet.Filter := 'DT_MIN <=' +
QuotedStr(FormatDateTime('YYYY-mm-dd',
queryListaTitulosDT_VENCIMENTO.AsDateTime)) + ' and DT_MAX >= ' +
QuotedStr(FormatDateTime('YYYY-mm-dd',
queryListaTitulosDT_VENCIMENTO.AsDateTime)) + ' and ID_POLITICA = ' +
tblPoliticasID_POLITICA.AsString;
end;
// dtsFaixas.DataSet.Filter := 'ATRASO_MIN <=' +
// inttostr(queryListaTitulosDT_ATRASO.AsInteger) + ' and ATRASO_MAX >= ' +
// inttostr(queryListaTitulosDT_ATRASO.AsInteger) + ' and ID_POLITICA = ' +
// tblPoliticasID_POLITICA.AsString;
{ dtsFaixas.DataSet.Filter := 'DT_MIN <=' +
QuotedStr(FormatDateTime('YYYY-mm-dd',
queryListaTitulosDT_VENCIMENTO.AsDateTime)) + ' and DT_MAX >= ' +
QuotedStr(FormatDateTime('YYYY-mm-dd',
queryListaTitulosDT_VENCIMENTO.AsDateTime)) + ' and ID_POLITICA = ' +
tblPoliticasID_POLITICA.AsString; }
end
else
begin
dtsFaixas.DataSet.Filter := 'DT_MIN <= ' +
QuotedStr(FormatDateTime('YYYY-mm-dd',
queryListaTitulosDT_VENCIMENTO.AsDateTime)) + ' and DT_MAX >= ' +
QuotedStr(FormatDateTime('YYYY-mm-dd',
queryListaTitulosDT_VENCIMENTO.AsDateTime)) +
' and ID_POLITICA = 999999999';
end;
dtsFaixas.DataSet.Filtered := true;
// porcentagens de cobrança e descontos
if dtsFaixas.DataSet.IsEmpty then
begin
queryListaTitulosPR_MULTA.AsFloat := dtsCHGEmpresa.DataSet.FieldByName
('PR_MULTA').AsFloat;
queryListaTitulosPR_JUROS.AsFloat := dtsCHGEmpresa.DataSet.FieldByName
('PR_JUROS').AsFloat;
queryListaTitulosNR_JUROS.AsFloat := dtsCHGEmpresa.DataSet.FieldByName
('NR_JUROS').AsFloat;
queryListaTitulosTP_JUROS.AsString := dtsCHGEmpresa.DataSet.FieldByName
('TP_JUROS').AsString;
queryListaTitulosPR_QUITACAO_INDICADOR.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_QUIT_IND_FIN').AsFloat;
queryListaTitulosPR_QUITACAO_PRINCIPAL.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_QUIT_PRIN').AsFloat;
queryListaTitulosPR_QUITACAO_MULTA.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_QUIT_MULTA').AsFloat;
queryListaTitulosPR_QUITACAO_JUROS.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_QUIT_JUROS').AsFloat;
queryListaTitulosPR_QUITACAO_COR.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_QUIT_COR').AsFloat;
queryListaTitulosPR_PARCELA_INDICADOR.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_FINAN_IND_FIN').AsFloat;
queryListaTitulosPR_PARCELA_PRINCIPAL.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_FINAN_PRIN').AsFloat;
queryListaTitulosPR_PARCELA_MULTA.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_FINAN_MULTA').AsFloat;
queryListaTitulosPR_PARCELA_JUROS.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_FINAN_JUROS').AsFloat;
queryListaTitulosPR_PARCELA_COR.AsFloat :=
dtsCHGEmpresa.DataSet.FieldByName('PR_DESC_FINAN_COR').AsFloat;
end
else
begin
queryListaTitulosPR_MULTA.AsFloat := dtsFaixas.DataSet.FieldByName
('PR_MULTA').AsFloat;
queryListaTitulosPR_JUROS.AsFloat := dtsFaixas.DataSet.FieldByName
('PR_JUROS').AsFloat;
queryListaTitulosNR_JUROS.AsFloat := dtsFaixas.DataSet.FieldByName
('NR_JUROS').AsFloat;
queryListaTitulosTP_JUROS.AsString := dtsFaixas.DataSet.FieldByName
('TP_JUROS').AsString;
queryListaTitulosPR_QUITACAO_INDICADOR.AsFloat :=
dtsFaixas.DataSet.FieldByName('PR_DESC_QUIT_IND_FIN').AsFloat;
queryListaTitulosPR_QUITACAO_PRINCIPAL.AsFloat :=
dtsFaixas.DataSet.FieldByName('PR_DESC_QUIT_PRIN').AsFloat;
queryListaTitulosPR_QUITACAO_MULTA.AsFloat :=
dtsFaixas.DataSet.FieldByName('PR_DESC_QUIT_MULTA').AsFloat;
queryListaTitulosPR_QUITACAO_JUROS.AsFloat :=
dtsFaixas.DataSet.FieldByName('PR_DESC_QUIT_JUROS').AsFloat;
queryListaTitulosPR_QUITACAO_COR.AsFloat := dtsFaixas.DataSet.FieldByName
('PR_DESC_QUIT_COR').AsFloat;
queryListaTitulosPR_PARCELA_INDICADOR.AsFloat :=
dtsFaixas.DataSet.FieldByName('PR_DESC_FINAN_IND_FIN').AsFloat;
queryListaTitulosPR_PARCELA_PRINCIPAL.AsFloat :=
dtsFaixas.DataSet.FieldByName('PR_DESC_FINAN_PRIN').AsFloat;
queryListaTitulosPR_PARCELA_MULTA.AsFloat := dtsFaixas.DataSet.FieldByName
('PR_DESC_FINAN_MULTA').AsFloat;
queryListaTitulosPR_PARCELA_JUROS.AsFloat := dtsFaixas.DataSet.FieldByName
('PR_DESC_FINAN_JUROS').AsFloat;
queryListaTitulosPR_PARCELA_COR.AsFloat := dtsFaixas.DataSet.FieldByName
('PR_DESC_FINAN_COR').AsFloat;
end;
// valor das parcelas dos encargos
if Dateof(dtp_atrasorecalc.Date) >
Dateof(queryListaTitulosDT_VENCIMENTO.AsDateTime) then
begin
pl_indicador := vl_nominal *
(queryListaTitulosPR_INDICADOR.AsFloat / 100);
end
else
begin
pl_indicador := 0;
end;
queryListaTitulosVL_INDICADOR.AsCurrency := pl_indicador;
if queryListaTitulosTP_JUROS.AsString = 'P' then
begin
pl_juros := vl_nominal * ((queryListaTitulosPR_JUROS.AsFloat / 30) / 100)
* queryListaTitulosDT_ATRASO.AsInteger;
end
else
begin
pl_juros := queryListaTitulosNR_JUROS.AsFloat *
queryListaTitulosDT_ATRASO.AsInteger;
end;
queryListaTitulosVL_JUROS.AsCurrency := pl_juros;
if Dateof(dtp_atrasorecalc.Date) >
Dateof(queryListaTitulosDT_VENCIMENTO.AsDateTime) then
begin
pl_multa := vl_nominal * (queryListaTitulosPR_MULTA.AsFloat / 100);
end {
else
begin
pl_multa := 0;
end };
if ((dtp_atrasorecalc.Date) <= (queryListaTitulosDT_VENCIMENTO.AsDateTime))
or (cb_nmulta.Checked) then
begin
pl_multa := 0;
end;
queryListaTitulosVL_MULTA.AsCurrency := pl_multa;
pl_encargos := pl_multa + pl_juros + pl_indicador + vl_indices;
vl_corrigido := vl_nominal + pl_encargos;
// valor encargos
queryListaTitulosVL_ENCARGOS.AsCurrency := pl_encargos;
queryListaTitulosVL_CORRIGIDO.AsCurrency := vl_corrigido;
vl_cor_antes_desc := vl_corrigido;
queryListaTitulosPR_ENTRADA_MIN.AsFloat := dtsCHGEmpresa.DataSet.FieldByName
('PR_ENTRADA_MIN').AsFloat;
queryListaTitulosPR_ENTRADA_MAX.AsFloat := dtsCHGEmpresa.DataSet.FieldByName
('PR_ENTRADA_MAX').AsFloat;
// porcentagem da entrada
if cbx_excentrada.Checked then
begin
pl_entrada := StrToCurr(edt_excentrada.Text);
if qtde_titulos <> 0 then
begin
queryListaTitulosVL_ENTRADA.AsCurrency := pl_entrada / qtde_titulos;
end;
end
else
begin
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PO' then
// entrada em porcentagem
begin
// queryListaTitulosPR_ENTRADA.AsFloat := dtsCHGEmpresa.DataSet.FieldByName
// ('PR_ENTRADA').AsFloat;
queryListaTitulosPR_ENTRADA.AsFloat := strtofloat(edt_prentrada.Text);
pl_entrada := vl_corrigido *
(queryListaTitulosPR_ENTRADA.AsFloat / 100);
queryListaTitulosVL_ENTRADA.AsCurrency := pl_entrada;
end;
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PA' then
// entrada = parcela
begin
pl_entrada := 0;
queryListaTitulosVL_ENTRADA.AsCurrency := pl_entrada;
end;
end;
dtsIndicadorFinanceiro.DataSet.Filtered := false;
dtsPoliticas.DataSet.Filtered := false;
dtsFaixas.DataSet.Filtered := false;
end;
// Descontos sobre Quitar
if strtofloat(edt_indquitar.Text) > queryListaTitulosPR_QUITACAO_INDICADOR.AsFloat
then
begin
queryListaTitulosVL_DESC_QUIT_IND.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency *
(queryListaTitulosPR_QUITACAO_INDICADOR.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_QUIT_IND.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency *
(strtofloat(edt_indquitar.Text) / 100);
end;
if strtofloat(edt_principalquitar.Text) >
queryListaTitulosPR_QUITACAO_PRINCIPAL.AsFloat then
begin
queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency :=
queryListaTitulosVL_TITULO.AsCurrency *
(queryListaTitulosPR_QUITACAO_PRINCIPAL.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency :=
queryListaTitulosVL_TITULO.AsCurrency *
(strtofloat(edt_principalquitar.Text) / 100);
end;
if strtofloat(edt_multasquitar.Text) > queryListaTitulosPR_QUITACAO_MULTA.AsFloat
then
begin
queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency :=
queryListaTitulosVL_MULTA.AsCurrency *
(queryListaTitulosPR_QUITACAO_MULTA.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency :=
queryListaTitulosVL_MULTA.AsCurrency *
(strtofloat(edt_multasquitar.Text) / 100);
end;
if strtofloat(edt_jurosquitar.Text) > queryListaTitulosPR_QUITACAO_JUROS.AsFloat
then
begin
queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency :=
queryListaTitulosVL_JUROS.AsCurrency *
(queryListaTitulosPR_QUITACAO_JUROS.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency :=
queryListaTitulosVL_JUROS.AsCurrency *
(strtofloat(edt_jurosquitar.Text) / 100);
end;
// Descontos sobre Parcelar
if strtofloat(edt_indparcelas.Text) > queryListaTitulosPR_PARCELA_INDICADOR.AsFloat
then
begin
queryListaTitulosVL_DESC_PAR_IND.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency *
(queryListaTitulosPR_PARCELA_INDICADOR.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_PAR_IND.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency *
(strtofloat(edt_indparcelas.Text) / 100);
end;
if strtofloat(edt_principalparcelas.Text) >
queryListaTitulosPR_PARCELA_PRINCIPAL.AsFloat then
begin
queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency :=
queryListaTitulosVL_TITULO.AsCurrency *
(queryListaTitulosPR_PARCELA_PRINCIPAL.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency :=
queryListaTitulosVL_TITULO.AsCurrency *
(strtofloat(edt_principalparcelas.Text) / 100);
end;
if strtofloat(edt_multasparcelas.Text) > queryListaTitulosPR_PARCELA_MULTA.AsFloat
then
begin
queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency :=
queryListaTitulosVL_MULTA.AsCurrency *
(queryListaTitulosPR_PARCELA_MULTA.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency :=
queryListaTitulosVL_MULTA.AsCurrency *
(strtofloat(edt_multasparcelas.Text) / 100);
end;
if strtofloat(edt_jurosparcelas.Text) > queryListaTitulosPR_PARCELA_JUROS.AsFloat
then
begin
queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency :=
queryListaTitulosVL_JUROS.AsCurrency *
(queryListaTitulosPR_PARCELA_JUROS.AsFloat / 100);
end
else
begin
queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency :=
queryListaTitulosVL_JUROS.AsCurrency *
(strtofloat(edt_jurosparcelas.Text) / 100);
end;
queryListaTitulosVL_DESC_IND.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency;
queryListaTitulosVL_DESC_PRIN.AsCurrency :=
queryListaTitulosVL_PRINCIPAL.AsCurrency;
queryListaTitulosVL_DESC_MULTA.AsCurrency :=
queryListaTitulosVL_MULTA.AsCurrency;
queryListaTitulosVL_DESC_JUROS.AsCurrency :=
queryListaTitulosVL_JUROS.AsCurrency;
if (cb_descquit.Checked) then
begin
queryListaTitulosVL_DESC_IND.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency -
queryListaTitulosVL_DESC_QUIT_IND.AsCurrency;
queryListaTitulosVL_DESC_PRIN.AsCurrency :=
queryListaTitulosVL_PRINCIPAL.AsCurrency -
queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency;
queryListaTitulosVL_DESC_MULTA.AsCurrency :=
queryListaTitulosVL_MULTA.AsCurrency -
queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency;
queryListaTitulosVL_DESC_JUROS.AsCurrency :=
queryListaTitulosVL_JUROS.AsCurrency -
queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency;
queryListaTitulosVL_CORRIGIDO.AsCurrency :=
queryListaTitulosVL_PRINCIPAL.AsCurrency +
queryListaTitulosVL_ENCARGOS.AsCurrency -
(queryListaTitulosVL_DESC_QUIT_IND.AsCurrency +
queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency +
queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency +
queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency);
if cbx_excentrada.Checked then
begin
if qtde_titulos <> 0 then
begin
queryListaTitulosVL_ENTRADA.AsCurrency := StrToCurr(edt_excentrada.Text)
/ qtde_titulos;
end;
end
else
begin
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PO' then
begin
queryListaTitulosVL_ENTRADA.AsCurrency :=
queryListaTitulosVL_CORRIGIDO.AsCurrency *
(queryListaTitulosPR_ENTRADA.AsFloat / 100);
end;
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PA' then
begin
queryListaTitulosVL_ENTRADA.AsCurrency := 0;
end;
end;
// end;
end;
if (cb_descpar.Checked) and (strtoint(edt_nrparcelas.Text) >= 1) then
begin
queryListaTitulosVL_DESC_IND.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency -
queryListaTitulosVL_DESC_PAR_IND.AsCurrency;
queryListaTitulosVL_DESC_PRIN.AsCurrency :=
queryListaTitulosVL_PRINCIPAL.AsCurrency -
queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency;
queryListaTitulosVL_DESC_MULTA.AsCurrency :=
queryListaTitulosVL_MULTA.AsCurrency - queryListaTitulosVL_DESC_PAR_MULTA.
AsCurrency;
queryListaTitulosVL_DESC_JUROS.AsCurrency :=
queryListaTitulosVL_JUROS.AsCurrency - queryListaTitulosVL_DESC_PAR_JUROS.
AsCurrency;
queryListaTitulosVL_CORRIGIDO.AsCurrency :=
queryListaTitulosVL_PRINCIPAL.AsCurrency +
queryListaTitulosVL_ENCARGOS.AsCurrency -
(queryListaTitulosVL_DESC_PAR_IND.AsCurrency +
queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency +
queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency +
queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency);
if cbx_excentrada.Checked then
begin
if qtde_titulos <> 0 then
begin
queryListaTitulosVL_ENTRADA.AsCurrency := StrToCurr(edt_excentrada.Text)
/ qtde_titulos;
end;
end
else
begin
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PO' then
begin
queryListaTitulosVL_ENTRADA.AsCurrency :=
queryListaTitulosVL_CORRIGIDO.AsCurrency *
(queryListaTitulosPR_ENTRADA.AsFloat / 100);
end;
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PA' then
begin
queryListaTitulosVL_ENTRADA.AsCurrency := 0;
end;
// end;
end;
end;
if vl_cor_antes_desc <> queryListaTitulosVL_CORRIGIDO.AsCurrency then
begin
regra_3 := vl_cor_antes_desc - queryListaTitulosVL_CORRIGIDO.AsCurrency;
edt_desctot.Text := formatfloat('0.##',
((regra_3 * 100) / vl_cor_antes_desc));
end
else
begin
edt_desctot.Text := '0';
end;
if cb_desc_quit_cor.Checked and (strtofloat(edt_corquitar.Text) > 0) then
begin
vl_cor_depois_desc := queryListaTitulosVL_CORRIGIDO.AsCurrency -
(queryListaTitulosVL_CORRIGIDO.AsCurrency *
(strtofloat(edt_corquitar.Text) / 100));
queryListaTitulosVL_CORRIGIDO.AsCurrency := vl_cor_depois_desc;
end;
if cb_desc_par_cor.Checked and (strtofloat(edt_corpar.Text) > 0) then
begin
vl_cor_depois_desc := queryListaTitulosVL_CORRIGIDO.AsCurrency -
(queryListaTitulosVL_CORRIGIDO.AsCurrency *
(strtofloat(edt_corpar.Text) / 100));
queryListaTitulosVL_CORRIGIDO.AsCurrency := vl_cor_depois_desc;
end;
if cbx_excentrada.Checked then
begin
if qtde_titulos <> 0 then
begin
queryListaTitulosVL_ENTRADA.AsCurrency := StrToCurr(edt_excentrada.Text) /
qtde_titulos;
end;
end
else
begin
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PO' then
begin
queryListaTitulosVL_ENTRADA.AsCurrency :=
queryListaTitulosVL_CORRIGIDO.AsCurrency *
(queryListaTitulosPR_ENTRADA.AsFloat / 100);
end;
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PA' then
begin
queryListaTitulosVL_ENTRADA.AsCurrency := 0;
end;
end;
if (strtoint(edt_nrparcelas.Text) = 0) and (cb_formapag.ItemIndex = 1) then
begin
queryListaTitulosVL_EXTRAS.AsCurrency :=
(queryListaTitulosVL_CORRIGIDO.AsCurrency *
(dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100));
queryListaTitulosVL_ENCARGOS.AsCurrency :=
queryListaTitulosVL_ENCARGOS.AsCurrency +
(queryListaTitulosVL_CORRIGIDO.AsCurrency *
(dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100));
queryListaTitulosVL_CORRIGIDO.AsCurrency :=
queryListaTitulosVL_CORRIGIDO.AsCurrency +
(queryListaTitulosVL_CORRIGIDO.AsCurrency *
(dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100));
end;
if (cbx_txextra.Checked) and (strtoint(edt_nrparcelas.Text) = 0) and
(StrToCurr(edt_txextra.Text) > 0) then
begin
queryListaTitulosVL_CORRIGIDO.AsCurrency :=
queryListaTitulosVL_CORRIGIDO.AsCurrency + StrToCurr(edt_txextra.Text);
queryListaTitulosVL_ENCARGOS.AsCurrency :=
queryListaTitulosVL_ENCARGOS.AsCurrency + StrToCurr(edt_txextra.Text);
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + StrToCurr(edt_txextra.Text);
end;
if (strtoint(edt_nrparcelas.Text) > 0) then
begin
if cbx_excentrada.Checked then
begin
case cb_formapag.ItemIndex of
0:
begin
if dtmSystem.tblCHGEmpresaTP_DIN.AsString = 'P' then
begin
CalcPrice;
end
else
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
// parcela := valor / (strtoint(edt_nrparcelas.Text));
parcela := valor / (strtoint(edt_nrparcelas.Text));
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
end;
2:
begin
if dtmSystem.tblCHGEmpresaTP_CRED.AsString = 'P' then
begin
CalcPrice;
end
else
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text));
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
end;
3:
begin
if dtmSystem.tblCHGEmpresaTP_CHEQUE.AsString = 'P' then
begin
CalcPrice;
end
else
begin
// valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
// RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
// parcela := valor / (strtoint(edt_nrparcelas.Text));
// juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.AsFloat / 100);
// parcela := parcela + (parcela * juros);
// queryListaTitulosVL_PARCELA.AsCurrency := parcela;
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text));
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat /
100), strtoint(edt_nrparcelas.Text)))));
// parcela := ((valor * juros) / dividendo);
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
end;
end;
// if dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.AsFloat > 0 then
// begin
// valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
// RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
//
// juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.AsFloat / 100);
//
// dividendo :=
// (1 - (1 / (power(1 + (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.AsFloat
// / 100), strtoint(edt_nrparcelas.Text)))));
//
// parcela := ((valor * juros) / dividendo);
// queryListaTitulosVL_PARCELA.AsCurrency := parcela;
// end
// else
// begin
// valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
// RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
// parcela := valor / (strtoint(edt_nrparcelas.Text));
// queryListaTitulosVL_PARCELA.AsCurrency := parcela;
// end;
// if cb_formapag.ItemIndex = 2 then
// begin
// parcela := queryListaTitulosVL_PARCELA.AsCurrency;
// case strtoint(edt_nrparcelas.Text) of
// 1:
// begin
// juros := (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100);
// parcela := parcela + (parcela * juros);
// end;
// 2, 3:
// begin
// juros := (dtmSystem.tblEmpresaPR_CRED3.AsFloat / 100);
// parcela := parcela + (parcela * juros);
// end;
// 4, 5, 6:
// begin
// juros := (dtmSystem.tblEmpresaPR_CRED6.AsFloat / 100);
// parcela := parcela + (parcela * juros);
// end;
// 7, 8, 9, 10, 11, 12:
// begin
// juros := (dtmSystem.tblEmpresaPR_CRED12.AsFloat / 100);
// parcela := parcela + (parcela * juros);
// end;
// end;
// queryListaTitulosVL_PARCELA.AsCurrency := parcela;
// end;
queryListaTitulosVL_EXTRAS.AsCurrency :=
((RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2) +
(strtoint(edt_nrparcelas.Text) * queryListaTitulosVL_PARCELA.AsCurrency)
) - queryListaTitulosVL_CORRIGIDO.AsCurrency);
queryListaTitulosVL_ENCARGOS.AsCurrency :=
queryListaTitulosVL_ENCARGOS.AsCurrency +
queryListaTitulosVL_EXTRAS.AsCurrency;
queryListaTitulosVL_CORRIGIDO.AsCurrency :=
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2) +
(strtoint(edt_nrparcelas.Text) *
queryListaTitulosVL_PARCELA.AsCurrency);
end
else
begin
case cb_formapag.ItemIndex of
0:
begin
if dtmSystem.tblCHGEmpresaTP_DIN.AsString = 'P' then
begin
CalcPrice;
end
else
begin
if dtmSystem.tblCHGEmpresaTP_ENTRADA.AsString = 'PO' then
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text));
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text));
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
end;
if dtmSystem.tblCHGEmpresaTP_ENTRADA.AsString = 'PA' then
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text) + 1);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text) + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
end;
2:
begin
if dtmSystem.tblCHGEmpresaTP_CRED.AsString = 'P' then
begin
CalcPrice;
end
else
begin
if dtmSystem.tblCHGEmpresaTP_ENTRADA.AsString = 'PO' then
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text));
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text));
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
end;
if dtmSystem.tblCHGEmpresaTP_ENTRADA.AsString = 'PA' then
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text) + 1);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text) + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
end;
3:
begin
if dtmSystem.tblCHGEmpresaTP_CHEQUE.AsString = 'P' then
begin
CalcPrice;
end
else
begin
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PO'
then
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text));
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat
/ 100), strtoint(edt_nrparcelas.Text)))));
// parcela := ((valor * juros) / dividendo);
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text));
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end
else
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
parcela := valor / (strtoint(edt_nrparcelas.Text) + 1);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblCHGEmpresaPR_JUROS_PARCELAR.
AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat
/ 100), strtoint(edt_nrparcelas.Text) + 1))));
// parcela := ((valor * juros) / dividendo);
parcela := parcela + (parcela * juros);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0)
then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text) + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
end;
end;
end;
queryListaTitulosVL_EXTRAS.AsCurrency :=
((RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2) +
(strtoint(edt_nrparcelas.Text) * queryListaTitulosVL_PARCELA.AsCurrency)
) - queryListaTitulosVL_CORRIGIDO.AsCurrency);
queryListaTitulosVL_ENCARGOS.AsCurrency :=
queryListaTitulosVL_ENCARGOS.AsCurrency +
queryListaTitulosVL_EXTRAS.AsCurrency;
queryListaTitulosVL_CORRIGIDO.AsCurrency :=
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2) +
(strtoint(edt_nrparcelas.Text) *
queryListaTitulosVL_PARCELA.AsCurrency);
end;
end;
end;
procedure TfrmEfetuarCobranca.mnuretirarClick(Sender: TObject);
var
i: Integer;
begin
for i := 0 to lv_titulos.Items.Count - 1 do
begin
lv_titulos.Items[i].Checked := false;
end;
qtde_titulos := 0;
Att_campos;
CalcValorParcelas;
end;
procedure TfrmEfetuarCobranca.btn_closeClick(Sender: TObject);
var
resultado: Integer;
begin
if pgCobranca.TabIndex = 5 then
begin
resultado := MessageDlg
('Deseja realmente fechar a janela antes de efetuar a cobrança?',
mtConfirmation, [mbYes, mbNo], 0);
if resultado = mrYes then
begin
frmEfetuarCobranca := nil;
Close;
end;
end
else
begin
frmEfetuarCobranca := nil;
Close;
end;
end;
procedure TfrmEfetuarCobranca.btn_outrostitulosClick(Sender: TObject);
var
nao_marcou: Boolean;
i: Integer;
// count_titulos: Integer;
str_titulos: string;
begin
if edt_prov.Text = '' then
begin
MessageDlg('Por favor selecione uma providência.', mtWarning, [mbOK], 0);
abort;
end
else 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
// queryListaDevedores.RecNo := recno_devedor;
// if dtmSystem.tblProvidencias.ControlsDisabled then
// begin
// dtmSystem.tblProvidencias.EnableControls;
// end;
// dtmSystem.tblProtocolo.Open;
// count_titulos := 0;
str_titulos := '';
if queryHelper.Locate('ID_COBRADOR', dtmSystem.id_usuario, []) then
begin
dtmSystem.tblHistorico.Locate('id_historico',
queryHelper.FieldByName('id_historico').AsString, []);
end;
nao_marcou := true;
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_ESTADO.AsString := 'B';
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblProvidencias.Locate('TX_NOME', edt_prov.Text, []);
for i := 0 to lv_titulos.Items.Count - 1 do
begin
if lv_titulos.Items[i].Checked then
begin
queryListaTitulos.RecNo := i + 1;
if dtmSystem.tblHistoricoID_PROVIDENCIA.AsString = '' then
begin
dtmSystem.tblHistorico.Edit;
dtmSystem.tblHistoricoID_TITULO.AsString :=
queryListaTitulosID_TITULO.AsString;
dtmSystem.tblHistoricoID_PROVIDENCIA.AsString :=
dtmSystem.tblProvidenciasID_PROVIDENCIA.AsString;
dtmSystem.tblHistoricoDT_CONTATO.AsDateTime := Now;
// dtmSystem.tblHistoricoCD_PROTOCOLO.AsString := edt_protocolo.Text;
dtmSystem.tblHistoricoTL_MEMO.AsString := mb_fechamento.Text;
dtmSystem.tblHistorico.Post;
// if dtmSystem.tblProvidenciasID_PROVIDENCIA.AsInteger = 1 then
if cb_agendar.Checked then
begin
// dtp_diaagendamentoChange(self.dtp_diaagendamento);
// dtp_horaagendamentoChange(self.dtp_horaagendamento);
// dtsCobradorDataChange(self,queryCobradores.FieldByName('TX_NOME'));
with dtmSystem do
begin
tblAgenda.Append;
tblAgendaID_COBRADOR.AsInteger := dblucb_cobradoragendar.KeyValue;
// tblAgendaID_DEVEDOR.AsInteger := queryListaDevedores.FieldByName
// ('ID_DEVEDOR').AsInteger;
tblAgendaDT_AGENDADA.AsDateTime := dtp_diaagendamento.Date;
tblAgendaHR_AGENDADA.AsDateTime := dtp_horaagendamento.Time;
tblAGENDADT_QUE_AGENDOU.AsDateTime := Now;
tblAgenda.Post;
end;
// dtmSystem.tblHistorico.Edit;
// dtmSystem.tblHistoricoDT_AGENDAMENTO.AsDateTime :=
// dtp_diaagendamento.Date;
// dtmSystem.tblHistoricoDT_HORAMARCADA.AsDateTime :=
// dtp_horaagendamento.Time;
// dtmSystem.tblHistorico.Post;
end;
nao_marcou := false;
end
else
begin
dtmSystem.tblHistorico.Append;
dtmSystem.tblHistoricoID_DEVEDOR.AsString :=
dtmSystem.tblDevedoresID_DEVEDOR.AsString;
dtmSystem.tblHistoricoID_TITULO.AsString :=
queryListaTitulosID_TITULO.AsString;
dtmSystem.tblHistoricoID_PROVIDENCIA.AsString :=
dtmSystem.tblProvidenciasID_PROVIDENCIA.AsString;
dtmSystem.tblHistoricoDT_CONTATO.AsDateTime := Now;
// dtmSystem.tblHistoricoCD_PROTOCOLO.AsString := edt_protocolo.Text;
dtmSystem.tblHistoricoTL_MEMO.AsString := mb_fechamento.Text;
dtmSystem.tblHistorico.Post;
// if dtmSystem.tblProvidenciasID_PROVIDENCIA.AsInteger = 1 then
if cb_agendar.Checked then
begin
dtp_diaagendamentoChange(self.dtp_diaagendamento);
dtp_horaagendamentoChange(self.dtp_horaagendamento);
// dtsCobradorDataChange(self,queryCobradores.FieldByName('TX_NOME'));
with dtmSystem do
begin
tblAgenda.Append;
tblAgendaID_COBRADOR.AsInteger := dblucb_cobradoragendar.KeyValue;
tblAgendaID_DEVEDOR.AsInteger :=
dtmSystem.tblCampanhaDevedores.FieldByName('ID_DEVEDOR')
.AsInteger;
tblAgendaDT_AGENDADA.AsDateTime := dtp_diaagendamento.Date;
tblAgendaHR_AGENDADA.AsDateTime := dtp_horaagendamento.Time;
tblAGENDADT_QUE_AGENDOU.AsDateTime := Now;
tblAgenda.Post;
end;
// dtmSystem.tblHistorico.Edit;
// dtmSystem.tblHistoricoDT_AGENDAMENTO.AsDateTime :=
// dtp_diaagendamento.Date;
// dtmSystem.tblHistoricoDT_HORAMARCADA.AsDateTime :=
// dtp_horaagendamento.Time;
// dtmSystem.tblHistorico.Post;
end;
nao_marcou := false;
end;
str_titulos := str_titulos + dtmSystem.tblTitulosID_TITULO.
AsString + ';';
// Inc(count_titulos);
end;
end;
{ dtmSystem.tblProtocolo.Append;
//dtmSystem.tblProtocoloCD_PROTOCOLO.AsString := edt_protocolo.Text;
dtmSystem.tblProtocoloQNT_TITULOS.AsInteger := count_titulos;
dtmSystem.tblProtocoloID_TITULOS.AsString := str_titulos;
dtmSystem.tblProtocoloID_DEVEDOR.AsString :=
dtmSystem.tblDevedoresID_DEVEDOR.AsString;
dtmSystem.tblProtocoloVL_ENTRADA.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somaentrada.Text, 4,
Length(edt_somaentrada.Text) - 3), '.', '',
[rfReplaceAll, rfIgnoreCase]));
dtmSystem.tblProtocoloVL_JUROS.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somajuros.Text, 4,
Length(edt_somajuros.Text) - 3), '.', '', [rfReplaceAll, rfIgnoreCase]));
// if cb_nmulta.Checked then
// begin
// dtmSystem.tblProtocoloVL_MULTA.AsCurrency := 0;
// end
// else
// begin
dtmSystem.tblProtocoloVL_MULTA.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somamulta.Text, 4,
Length(edt_somamulta.Text) - 3), '.', '', [rfReplaceAll, rfIgnoreCase]));
// end;
dtmSystem.tblProtocoloVL_INDICADOR.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somaindicador.Text, 4,
Length(edt_somaindicador.Text) - 3), '.', '',
[rfReplaceAll, rfIgnoreCase]));
dtmSystem.tblProtocoloVL_CORRIGIDO.AsCurrency :=
StrToCurr(StringReplace(copy(edt_vlaquitar.Text, 4,
Length(edt_vlaquitar.Text) - 3), '.', '', [rfReplaceAll, rfIgnoreCase]));
if cb_descquit.Checked then
begin
dtmSystem.tblProtocoloTP_DESC_QUIT.AsString := 'S';
end
else
begin
dtmSystem.tblProtocoloTP_DESC_QUIT.AsString := 'N';
end;
dtmSystem.tblProtocoloPR_QUIT_JUROS.AsFloat :=
strtofloat(edt_jurosquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_MULTA.AsFloat :=
strtofloat(edt_multasquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_INDICADOR.AsFloat :=
strtofloat(edt_indquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_PRINCIPAL.AsFloat :=
strtofloat(edt_principalquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_COR.AsFloat := strtofloat(edt_corquitar.Text);
if cb_descpar.Checked then
begin
dtmSystem.tblProtocoloTP_DESC_PAR.AsString := 'S';
end
else
begin
dtmSystem.tblProtocoloTP_DESC_PAR.AsString := 'N';
end;
dtmSystem.tblProtocoloPR_PARCELAR_JUROS.AsFloat :=
strtofloat(edt_jurosparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_MULTA.AsFloat :=
strtofloat(edt_multasparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_INDICADOR.AsFloat :=
strtofloat(edt_indparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_PRINCIPAL.AsFloat :=
strtofloat(edt_principalparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_COR.AsFloat :=
strtofloat(edt_corpar.Text);
dtmSystem.tblProtocoloNR_PARCELAS.AsInteger :=
strtoint(edt_nrparcelas.Text);
dtmSystem.tblProtocoloDT_PROTOCOLO.AsDateTime := Date; }
if nao_marcou then
begin
dtmSystem.tblHistorico.Edit;
dtmSystem.tblHistoricoID_PROVIDENCIA.AsString :=
dtmSystem.tblProvidenciasID_PROVIDENCIA.AsString;
dtmSystem.tblHistoricoDT_CONTATO.AsDateTime := Now;
// dtmSystem.tblHistoricoCD_PROTOCOLO.AsString := edt_protocolo.Text;
dtmSystem.tblHistoricoTL_MEMO.AsString := mb_fechamento.Text;
dtmSystem.tblHistorico.Post;
end;
queryHelper.Refresh;
atendimento := 'cobrando';
cb_agendar.Checked := false;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
recno_devedor := dtmSystem.tblCampanhaDevedores.RecNo;
end;
end;
procedure TfrmEfetuarCobranca.btn_concluirClick(Sender: TObject);
// var
// nao_marcou: Boolean;
// i, RecNo, id_emp, count_titulos, recno_helper: Integer;
// erro: string;
begin
if edt_prov.Text = '' then
begin
MessageDlg('Por favor selecione uma providência.', mtWarning, [mbOK], 0);
abort;
end;
with zroqryProvAgend do
begin
SQL.Clear;
SQL.Add('select * from chg_providencias where tp_forcaagenda = ' +
QuotedStr('Sim') + ' and id_providencia = ' +
dtmSystem.tblProvidenciasID_PROVIDENCIA.AsString);
Open;
end;
if (zroqryProvAgend.RecordCount = 1) and (cb_agendar.Checked = false) then
begin
MessageDlg
('Esta providência exige que você agende o devedor. Por favor agende-o.',
mtWarning, [mbOK], 0);
abort;
end;
if (dblucb_cobradoragendar.KeyValue < 1) and (cb_agendar.Checked = true) then
begin
MessageDlg
('Por favor selecione um cobrador para qual será agendada a cobrança.',
mtWarning, [mbOK], 0);
abort;
end
else
begin
// try
// if MessageDlg
// ('Este acionamento irá passar automaticamente para o próximo devedor na campanha. Deseja continuar?',
// mtWarning, [mbYes, mbNo], 0) = mrNo then
// begin
// abort;
// end;
if (cb_agendar.Checked = true) then
begin
if MessageDlg('Este acionamento possui um agendamento. Deseja continuar?',
mtWarning, mbYesNo, 0) = mrNo then
begin
abort;
end;
if (dtp_horaagendamento.Time < Timeof(Now)) and
(dtp_diaagendamento.Date <= Dateof(Now)) then
begin
MessageDlg
('Você está selecionando um horário para agendamento menor que a hora atual. Por favor verifique o horário do agendamento.',
mtWarning, [mbOK], 0);
abort;
end;
end;
// queryListaDevedores.RecNo := recno_devedor;
Screen.Cursor := crHourGlass;
mb_fechamento.lines.Add('');
mb_fechamento.lines.Add('Número do protocolo: ' + edt_protocolo.Text);
cb_formapag.ItemIndex := 0;
dtmSystem.tblProtocolo.Open;
btn_concluir.Enabled := false;
// edt_nrparcelas.Text := '0';
// edt_nrparcelas.OnChange(self);
// count_titulos := 0;
// dtmSystem.tblCampanhaDevedores.DisableControls;
dtmSystem.tblCampanhaDevedores.Refresh;
// Marca devedor como cobrado na campanha
if not(entrou_agenda) then
begin
dtmSystem.tblCampanhaDevedores.Locate('ID_CAMPANHA;ID_DEVEDOR',
VarArrayOf([id_campanha,
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger]), []);
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_ESTADO.AsString := 'B';
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger := -1;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger := dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'passou';
dtmSystem.tblLogCampanhas.Post;
dbgrd_listadevedores.Repaint;
end;
if not(dtmSystem.tblAgenda.Active) then
begin
dtmSystem.tblAgenda.Open;
end;
dtmSystem.tblAgenda.Refresh;
// Marca a agenda toda dele como feita
while dtmSystem.tblAgenda.Locate('ID_DEVEDOR;TP_SITUACAO',
VarArrayOf([dtmSystem.tblDevedoresID_DEVEDOR.AsString, 'A']), []) do
begin
dtmSystem.tblAgenda.Edit;
dtmSystem.tblAgendaTP_SITUACAO.AsString := 'B';
dtmSystem.tblAgenda.Post;
end;
dtmSystem.tblProvidencias.Locate('TX_NOME', edt_prov.Text, []);
if cb_agendar.Checked then // Faz agendamento
begin
with dtmSystem do
begin
if not(tblAgenda.Active) then
begin
tblAgenda.Open;
end;
tblAgenda.Append;
tblAgendaID_COBRADOR.AsInteger := dblucb_cobradoragendar.KeyValue;
tblAgendaID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger;
tblAgendaDT_AGENDADA.AsDateTime := dtp_diaagendamento.Date;
tblAgendaHR_AGENDADA.AsDateTime := dtp_horaagendamento.Time;
tblAGENDADT_QUE_AGENDOU.AsDateTime := Now;
tblAgendaQUEM_AGENDOU.AsInteger := dtmSystem.id_usuario;
tblAgenda.Post;
qryCampanha.SQL.Clear;
qryCampanha.SQL.Text :=
'select cd.*, c.tx_nome from chg_campanhas_devedores cd left join chg_campanhas c on cd.id_campanha = c.id_campanha where id_devedor = '
+ dtmSystem.tblDevedoresID_DEVEDOR.AsString;
qryCampanha.Open;
qryCampanha.First;
while not qryCampanha.Eof do
begin
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger :=
qryCampanha.FieldByName('id_campanha').AsInteger;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString :=
qryCampanha.FieldByName('tx_nome').AsString;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
qryCampanha.FieldByName('id_devedor').AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger := dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'apagou p/ agenda';
dtmSystem.tblLogCampanhas.Post;
qryCampanha.Next;
end;
qryCampanha.Close;
dtmSystem.ZSQLProcessor1.Script.Text :=
'delete from chg_campanhas_devedores where id_devedor = ' +
QuotedStr(dtsDevedores.DataSet.FieldByName('ID_DEVEDOR').AsString);
dtmSystem.ZSQLProcessor1.Execute;
// tblCampanhaDevedores.Filtered := true;
end;
end;
if not(dtmSystem.tblHistorico.Active) then
begin
dtmSystem.tblHistorico.Open;
end;
dtmSystem.tblHistorico.Append;
dtmSystem.tblHistoricoID_DEVEDOR.AsString :=
dtmSystem.tblDevedoresID_DEVEDOR.AsString;
dtmSystem.tblHistoricoID_TITULOS.AsString := str_titulos;
dtmSystem.tblHistoricoID_PROVIDENCIA.AsString :=
dtmSystem.tblProvidenciasID_PROVIDENCIA.AsString;
dtmSystem.tblHistoricoDT_CONTATO.AsDateTime := Now;
dtmSystem.tblHistoricoCD_PROTOCOLO.AsString := edt_protocolo.Text;
dtmSystem.tblHistoricoTL_MEMO.AsString := mb_fechamento.Text;
dtmSystem.tblHistorico.Post;
{ if not(dtmSystem.tblProtocolo.Active) then
begin
dtmSystem.tblProtocolo.Open;
end;
dtmSystem.tblProtocolo.Append;
dtmSystem.tblProtocoloCD_PROTOCOLO.AsString := edt_protocolo.Text;
dtmSystem.tblProtocoloQNT_TITULOS.AsInteger := qtde_titulos;
dtmSystem.tblProtocoloID_EMPRESA.AsInteger := id_emp;
dtmSystem.tblProtocoloID_TITULOS.AsString := str_titulos;
dtmSystem.tblProtocoloID_DEVEDOR.AsString :=
dtmSystem.tblDevedoresID_DEVEDOR.AsString;
dtmSystem.tblProtocoloVL_ENTRADA.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somaentrada.Text, 4,
Length(edt_somaentrada.Text) - 3), '.', '',
[rfReplaceAll, rfIgnoreCase]));
dtmSystem.tblProtocoloPR_ENTRADA.AsFloat := strtofloat(edt_prentrada.Text);
dtmSystem.tblProtocoloVL_JUROS.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somajuros.Text, 4,
Length(edt_somajuros.Text) - 3), '.', '', [rfReplaceAll, rfIgnoreCase]));
dtmSystem.tblProtocoloVL_MULTA.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somamulta.Text, 4,
Length(edt_somamulta.Text) - 3), '.', '', [rfReplaceAll, rfIgnoreCase]));
dtmSystem.tblProtocoloVL_INDICADOR.AsCurrency :=
StrToCurr(StringReplace(copy(edt_somaindicador.Text, 4,
Length(edt_somaindicador.Text) - 3), '.', '',
[rfReplaceAll, rfIgnoreCase]));
dtmSystem.tblProtocoloVL_CORRIGIDO.AsCurrency :=
StrToCurr(StringReplace(copy(edt_vlaquitar.Text, 4,
Length(edt_vlaquitar.Text) - 3), '.', '', [rfReplaceAll, rfIgnoreCase]));
if cb_descquit.Checked then
begin
dtmSystem.tblProtocoloTP_DESC_QUIT.AsString := 'S';
end
else
begin
dtmSystem.tblProtocoloTP_DESC_QUIT.AsString := 'N';
end;
if cb_desc_quit_cor.Enabled then
begin
dtmSystem.tblProtocoloTP_DESC_QUIT_COR.AsString := 'S';
end
else
begin
dtmSystem.tblProtocoloTP_DESC_QUIT_COR.AsString := 'N';
end;
dtmSystem.tblProtocoloPR_QUIT_JUROS.AsFloat :=
strtofloat(edt_jurosquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_MULTA.AsFloat :=
strtofloat(edt_multasquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_INDICADOR.AsFloat :=
strtofloat(edt_indquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_PRINCIPAL.AsFloat :=
strtofloat(edt_principalquitar.Text);
dtmSystem.tblProtocoloPR_QUIT_COR.AsFloat := strtofloat(edt_corquitar.Text);
if cb_descpar.Checked then
begin
dtmSystem.tblProtocoloTP_DESC_PAR.AsString := 'S';
end
else
begin
dtmSystem.tblProtocoloTP_DESC_PAR.AsString := 'N';
end;
if cb_desc_par_cor.Enabled then
begin
dtmSystem.tblProtocoloTP_DESC_PAR_COR.AsString := 'S';
end
else
begin
dtmSystem.tblProtocoloTP_DESC_PAR_COR.AsString := 'N';
end;
dtmSystem.tblProtocoloPR_PARCELAR_JUROS.AsFloat :=
strtofloat(edt_jurosparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_MULTA.AsFloat :=
strtofloat(edt_multasparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_INDICADOR.AsFloat :=
strtofloat(edt_indparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_PRINCIPAL.AsFloat :=
strtofloat(edt_principalparcelas.Text);
dtmSystem.tblProtocoloPR_PARCELAR_COR.AsFloat :=
strtofloat(edt_corpar.Text);
dtmSystem.tblProtocoloNR_PARCELAS.AsInteger :=
strtoint(edt_nrparcelas.Text);
dtmSystem.tblProtocoloDT_PROTOCOLO.AsDateTime := dtp_atrasorecalc.Date;
if cb_formapag.Text = 'Dinheiro' then
begin
dtmSystem.tblProtocoloTP_PAG.AsString := 'DI';
end;
if cb_formapag.Text = 'Cheque' then
begin
dtmSystem.tblProtocoloTP_PAG.AsString := 'CQ';
end;
if cb_formapag.Text = 'Débito' then
begin
dtmSystem.tblProtocoloTP_PAG.AsString := 'DB';
end;
if cb_formapag.Text = 'Crédito' then
begin
dtmSystem.tblProtocoloTP_PAG.AsString := 'CR';
end; }
dtp_agendadatahist.Date := Date;
dtp_agendahorahist.Time := Timeof(Now);
dtp_diaagendamento.Date := Date;
dtp_horaagendamento.Date := Timeof(Now);
// dtmSystem.tblProtocolo.Post;
dbgrd_listadevedores.Repaint;
Screen.Cursor := crDefault;
btn_passadevfec.Enabled := true;
// except
// ShowMessage(erro);
// end;
end;
end;
procedure TfrmEfetuarCobranca.btn_fechamentoClick(Sender: TObject);
var
selecionado: Boolean;
i: Integer;
begin
selecionado := false;
for i := 0 to lv_titulos.Items.Count - 1 do
begin
if lv_titulos.Items[i].Checked = true then
begin
selecionado := true;
end;
end;
if selecionado = true then
begin
with TfrmFechamento.Create(self) do
begin
ShowModal;
if ModalResult = mrOk then
begin
atendimento := 'fechamento';
pgCobranca.TabIndex := 5;
btn_protocoloClick(self);
mb_fechamento.SetFocus;
end;
end;
end
else
begin
MessageDlg
('Por favor selecione um título primeiro para realizar o fechamento.',
mtWarning, [mbOK], 0);
end;
end;
procedure TfrmEfetuarCobranca.btn_passadevfecClick(Sender: TObject);
begin
if (dtsDevedores.State in [dsInsert, dsEdit]) or
(dtsEnderecos.State in [dsInsert, dsEdit]) or
(dtsHistorico.State in [dsInsert, dsEdit]) or
(dtsTelefones.State in [dsInsert, dsEdit]) or
(dtsTitulos.State in [dsInsert, dsEdit]) then
begin
MessageDlg
('Não é possível passar o devedor enquanto modificações estão em aberto.',
mtWarning, [mbOK], 0);
abort;
end;
if MessageDlg('Deseja passar para o próximo devedor na campanha?',
mtInformation, mbYesNo, 0) = mrYes then
begin
Screen.Cursor := crHourGlass;
edt_prov.Text := '';
btn_concluir.Enabled := true;
// dtmSystem.tblCampanhaDevedores.DisableControls;
// Marca a o cobrador como feito
dtmSystem.tblCampanhaDevedores.Refresh;
dtp_atrasorecalc.Date := Date;
if not(entrou_agenda) then
begin
if dtmSystem.tblCampanhaDevedores.Locate('ID_CAMPANHA;ID_DEVEDOR',
VarArrayOf([id_campanha, dtmSystem.tblDevedoresID_DEVEDOR.AsInteger]
), []) then
begin
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_ESTADO.AsString := 'B';
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger := -1;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger := dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'passou';
dtmSystem.tblLogCampanhas.Post;
end;
end;
// with dtmSystem do
// begin
// if not(tblAgenda.Active) then
// begin
// tblAgenda.Open;
// end;
// // Marca toda a agenda como cobrada
// 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;
//
// end;
cb_formapag.ItemIndex := 0;
dtmSystem.tblProtocolo.Open;
edt_nrparcelas.Text := '0';
edt_nrparcelas.OnChange(self);
dbgrd_listadevedores.Repaint;
dtmSystem.tblDevedores.Refresh;
dtmSystem.tblAgenda.Refresh;
frmCobranca.queryagenda.Refresh;
dtmSystem.tblCampanhaDevedores.Refresh;
// Lógica para ver se tem agendamento a ser feito
if (not frmCobranca.queryagenda.IsEmpty) then
begin
// dblulb_campanha.KeyValue := null;
if Dateof(frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsDateTime) <
Dateof(Date) then
begin
// try
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
frmCobranca.queryagenda.FieldByName('ID_DEVEDOR').AsString, []);
atendimento := 'cobrando';
cb_agendar.Checked := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
if dtmSystem.tblCampanhaDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger, []) then
begin
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblCampanhaDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger := dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'entrou p/ agenda';
dtmSystem.tblLogCampanhas.Post;
end;
dtmSystem.tblCampanhaDevedores.Filtered := true;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
cbx_excentrada.Checked := false;
dtp_atrasorecalc.Enabled := true;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := true;
Screen.Cursor := crDefault;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
// dtmSystem.tblCampanhaDevedores.EnableControls;
MessageDlg('Você acaba de entrar na sua Agenda. Devedor agendado: ' +
dtmSystem.tblDevedoresTX_NOME.AsString + '. Data agendada: ' +
frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsString +
'. Hora agendada: ' + frmCobranca.queryagenda.FieldByName
('HR_AGENDADA').AsString + '.', mtWarning, [mbOK], 0);
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' + E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
if Dateof(frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsDateTime)
= Dateof(Date) then
begin
if Timeof(frmCobranca.queryagenda.FieldByName('HR_AGENDADA')
.AsDateTime) <= Timeof(Now) then
begin
// try
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
frmCobranca.queryagenda.FieldByName('ID_DEVEDOR').AsString, []);
atendimento := 'cobrando';
cb_agendar.Checked := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
if dtmSystem.tblCampanhaDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger, []) then
begin
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblCampanhaDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'entrou p/ agenda';
dtmSystem.tblLogCampanhas.Post;
end;
dtmSystem.tblCampanhaDevedores.Filtered := true;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
dtp_atrasorecalc.Enabled := true;
cbx_excentrada.Checked := false;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := true;
Screen.Cursor := crDefault;
MessageDlg('Você acaba de entrar na sua Agenda. Devedor agendado: '
+ dtmSystem.tblDevedoresTX_NOME.AsString + '. Data agendada: ' +
frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsString +
'. Hora agendada: ' + frmCobranca.queryagenda.FieldByName
('HR_AGENDADA').AsString + '.', mtWarning, [mbOK], 0);
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' + E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
entrou_agenda := false;
end;
end
else
begin
entrou_agenda := false;
end;
end;
end
else
begin
entrou_agenda := false;
end;
// Lógica para seguir para o próximo devedor na campanha
dtmSystem.tblCampanhaDevedores.Refresh;
dtmSystem.tblDevedores.Refresh;
// if not entrou_agenda then
// begin
if not dtmSystem.tblCampanhaDevedores.IsEmpty then
begin
if not(dtmSystem.tblCampanhaCob.Active) then
begin
dtmSystem.tblCampanhaCob.Open;
end;
dtmSystem.tblCampanhaCob.Refresh;
if dtmSystem.tblCampanhaCob.Locate('ID_COBRADOR', dtmSystem.id_usuario, [])
then
begin
// dtmSystem.tblCampanhaDevedores.DisableControls;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha) + ' and TP_ESTADO = ''A''';
dtmSystem.tblCampanhaDevedores.Filtered := true;
dtmSystem.tblCampanhaDevedores.First;
while not(dtmSystem.tblCampanhaDevedores.Eof) do
begin
if dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger <> -1
// Verifica se tem alguém segurando o devedor
then
begin
if dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger = dtmSystem.id_usuario
then
// Verifica se esse alguém é o usuário logado
begin
// try
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblCampanhaDevedores.FieldByName('id_devedor')
.AsString, []);
atendimento := 'cobrando';
cb_agendar.Checked := false;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
cbx_excentrada.Checked := false;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
dtmSystem.tblCampanhaDevedores.Refresh;
// dtmSystem.tblCampanhaDevedores.EnableControls;
Screen.Cursor := crDefault;
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' +
// E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
dtmSystem.tblCampanhaDevedores.Next;
end;
end
else
begin
if dtmSystem.tblCampanhaDevedoresTP_ESTADO.AsString = 'A' then
begin
// try
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblCampanhaDevedores.FieldByName('id_devedor')
.AsString, []);
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'entrou p/ camp';
dtmSystem.tblLogCampanhas.Post;
atendimento := 'cobrando';
cb_agendar.Checked := false;
cbx_excentrada.Checked := false;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
dtmSystem.tblCampanhaDevedores.Refresh;
// dtmSystem.tblCampanhaDevedores.EnableControls;
Screen.Cursor := crDefault;
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' +
// E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
dtmSystem.tblCampanhaDevedores.Next;
end;
end;
end;
end
else
begin
MessageDlg
('Você foi retirado desta campanha. Por favor entre em uma nova',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
end
else
begin
MessageDlg
('Esta campanha foi terminada por um administrador enquanto você trabalhava nela. Por favor entre em uma nova campanha.',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
if (not dtmSystem.tblCampanhaDevedores.Locate('TP_ESTADO', 'A', [])) and
(not dtmSystem.tblCampanhaDevedores.IsEmpty) then
begin
dtmSystem.tblCobCampanha.Edit;
dtmSystem.tblCobCampanhaTP_ATIVA.AsInteger := 0;
dtmSystem.tblCobCampanhaTP_CONCLUIDA.AsInteger := 1;
dtmSystem.tblCobCampanha.Post;
dtmSystem.tblCampanhaDevedores.Filtered := false;
// dtmSystem.tblCampanhaDevedores.EnableControls;
MessageDlg
('Esta campanha foi cobrada por completo. Por favor sinalize seu administrador.',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
if (not dtmSystem.tblCampanhaDevedores.IsEmpty) then
begin
if (dtmSystem.tblCampanhaDevedores.Eof) then
begin
dtmSystem.tblCampanhaDevedores.Filtered := false;
// dtmSystem.tblCampanhaDevedores.EnableControls;
MessageDlg
('Não há mais devedores a serem cobrados nesta campanha por este usuário.',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
end;
// end;
dtmSystem.tblCampanhaDevedores.Refresh;
dbgrd_listadevedores.Repaint;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
end;
procedure TfrmEfetuarCobranca.btn_passardevedorClick(Sender: TObject);
// var
// string_helper: string;
begin
if (dtsDevedores.State in [dsInsert, dsEdit]) or
(dtsEnderecos.State in [dsInsert, dsEdit]) or
(dtsHistorico.State in [dsInsert, dsEdit]) or
(dtsTelefones.State in [dsInsert, dsEdit]) or
(dtsTitulos.State in [dsInsert, dsEdit]) then
begin
MessageDlg
('Não é possível passar o devedor enquanto modificações estão em aberto.',
mtWarning, [mbOK], 0);
abort;
end;
if MessageDlg('Deseja passar para o próximo devedor na campanha?',
mtInformation, mbYesNo, 0) = mrYes then
begin
Screen.Cursor := crHourGlass;
// dtmSystem.tblCampanhaDevedores.DisableControls;
btn_concluir.Enabled := true;
if pass_state then
begin
btn_passardevedor.Enabled := true;
end
else
begin
btn_passardevedor.Enabled := false;
end;
if pass_fec_state then
begin
btn_passadevfec.Enabled := true;
end
else
begin
btn_passadevfec.Enabled := false;
end;
// Marca a o cobrador como feito
dtmSystem.tblCampanhaDevedores.Refresh;
if not(entrou_agenda) then
begin
if dtmSystem.tblCampanhaDevedores.Locate('ID_CAMPANHA;ID_DEVEDOR',
VarArrayOf([id_campanha, dtmSystem.tblDevedoresID_DEVEDOR.AsInteger]
), []) then
begin
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_ESTADO.AsString := 'B';
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger := -1;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger := dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'passou';
dtmSystem.tblLogCampanhas.Post;
end;
end;
// with dtmSystem do
// begin
// if not(tblAgenda.Active) then
// begin
// tblAgenda.Open;
// end;
// // Marca toda a agenda como cobrada
// 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;
//
// end;
cb_formapag.ItemIndex := 0;
dtmSystem.tblProtocolo.Open;
edt_nrparcelas.Text := '0';
edt_nrparcelas.OnChange(self);
dbgrd_listadevedores.Repaint;
dtmSystem.tblDevedores.Refresh;
dtmSystem.tblAgenda.Refresh;
frmCobranca.queryagenda.Refresh;
dtmSystem.tblCampanhaDevedores.Refresh;
// Lógica para ver se tem agendamento a ser feito
if (not frmCobranca.queryagenda.IsEmpty) then
begin
// dblulb_campanha.KeyValue := null;
if Dateof(frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsDateTime) <
Dateof(Date) then
begin
// try
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
frmCobranca.queryagenda.FieldByName('ID_DEVEDOR').AsString, []);
atendimento := 'cobrando';
cb_agendar.Checked := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
if dtmSystem.tblCampanhaDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger, []) then
begin
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblCampanhaDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger := dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'entrou p/ agenda';
dtmSystem.tblLogCampanhas.Post;
end;
dtmSystem.tblCampanhaDevedores.Filtered := true;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
cbx_excentrada.Checked := false;
dtp_atrasorecalc.Enabled := true;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := true;
Screen.Cursor := crDefault;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
// dtmSystem.tblCampanhaDevedores.EnableControls;
MessageDlg('Você acaba de entrar na sua Agenda. Devedor agendado: ' +
dtmSystem.tblDevedoresTX_NOME.AsString + '. Data agendada: ' +
frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsString +
'. Hora agendada: ' + frmCobranca.queryagenda.FieldByName
('HR_AGENDADA').AsString + '.', mtWarning, [mbOK], 0);
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' + E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
if Dateof(frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsDateTime)
= Dateof(Date) then
begin
if Timeof(frmCobranca.queryagenda.FieldByName('HR_AGENDADA')
.AsDateTime) <= Timeof(Now) then
begin
// try
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
frmCobranca.queryagenda.FieldByName('ID_DEVEDOR').AsString, []);
atendimento := 'cobrando';
cb_agendar.Checked := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
if dtmSystem.tblCampanhaDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger, []) then
begin
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblCampanhaDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'entrou p/ agenda';
dtmSystem.tblLogCampanhas.Post;
end;
dtmSystem.tblCampanhaDevedores.Filtered := true;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
dtp_atrasorecalc.Enabled := true;
cbx_excentrada.Checked := false;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := true;
Screen.Cursor := crDefault;
MessageDlg('Você acaba de entrar na sua Agenda. Devedor agendado: '
+ dtmSystem.tblDevedoresTX_NOME.AsString + '. Data agendada: ' +
frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsString +
'. Hora agendada: ' + frmCobranca.queryagenda.FieldByName
('HR_AGENDADA').AsString + '.', mtWarning, [mbOK], 0);
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' + E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
entrou_agenda := false;
end;
end
else
begin
entrou_agenda := false;
end;
end;
end
else
begin
entrou_agenda := false;
end;
// Lógica para seguir para o próximo devedor na campanha
dtmSystem.tblCampanhaDevedores.Refresh;
dtmSystem.tblDevedores.Refresh;
// if not entrou_agenda then
// begin
if not dtmSystem.tblCampanhaDevedores.IsEmpty then
begin
if not(dtmSystem.tblCampanhaCob.Active) then
begin
dtmSystem.tblCampanhaCob.Open;
end;
dtmSystem.tblCampanhaCob.Refresh;
if dtmSystem.tblCampanhaCob.Locate('ID_COBRADOR', dtmSystem.id_usuario, [])
then
begin
// dtmSystem.tblCampanhaDevedores.DisableControls;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha) + ' and TP_ESTADO = ''A''';
dtmSystem.tblCampanhaDevedores.Filtered := true;
dtmSystem.tblCampanhaDevedores.First;
while not(dtmSystem.tblCampanhaDevedores.Eof) do
begin
if dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger <> -1
// Verifica se tem alguém segurando o devedor
then
begin
if dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger = dtmSystem.id_usuario
then
// Verifica se esse alguém é o usuário logado
begin
// try
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblCampanhaDevedores.FieldByName('id_devedor')
.AsString, []);
atendimento := 'cobrando';
cb_agendar.Checked := false;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
cbx_excentrada.Checked := false;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
dtmSystem.tblCampanhaDevedores.Refresh;
// dtmSystem.tblCampanhaDevedores.EnableControls;
Screen.Cursor := crDefault;
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' +
// E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
dtmSystem.tblCampanhaDevedores.Next;
end;
end
else
begin
if dtmSystem.tblCampanhaDevedoresTP_ESTADO.AsString = 'A' then
begin
// try
dtmSystem.tblCampanhaDevedores.Edit;
dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblCampanhaDevedores.Post;
dtmSystem.tblDevedores.Locate('ID_DEVEDOR',
dtmSystem.tblCampanhaDevedores.FieldByName('id_devedor')
.AsString, []);
dtmSystem.tblLogCampanhas.Append;
dtmSystem.tblLogCampanhasID_CAMPANHA.AsInteger := id_campanha;
dtmSystem.tblLogCampanhasTX_NOME_CAMPANHA.AsString := tx_campanha;
dtmSystem.tblLogCampanhasID_DEVEDOR.AsInteger :=
dtmSystem.tblDevedoresID_DEVEDOR.AsInteger;
dtmSystem.tblLogCampanhasID_USUARIO.AsInteger :=
dtmSystem.id_usuario;
dtmSystem.tblLogCampanhasDT_TRANSF.AsDateTime := Now;
dtmSystem.tblLogCampanhasTP_ACAO.AsString := 'entrou p/ camp';
dtmSystem.tblLogCampanhas.Post;
atendimento := 'cobrando';
cb_agendar.Checked := false;
cbx_excentrada.Checked := false;
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
edt_protocolo1.Text := '';
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
entrou_agenda := false;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
dtmSystem.tblCampanhaDevedores.Refresh;
// dtmSystem.tblCampanhaDevedores.EnableControls;
Screen.Cursor := crDefault;
abort;
// except
// on E: Exception do
// begin
// if not(E is EAbort) then
// begin
// ShowMessage('Exception class name = ' +
// E.ClassName);
// ShowMessage('Exception message = ' + E.Message);
// end;
// end;
// end;
end
else
begin
dtmSystem.tblCampanhaDevedores.Next;
end;
end;
end;
end
else
begin
MessageDlg
('Você foi retirado desta campanha. Por favor entre em uma nova',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
end
else
begin
MessageDlg
('Esta campanha foi terminada por um administrador enquanto você trabalhava nela. Por favor entre em uma nova campanha.',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
dtmSystem.tblCampanhaDevedores.Filtered := false;
dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' +
inttostr(id_campanha);
dtmSystem.tblCampanhaDevedores.Filtered := true;
if (not dtmSystem.tblCampanhaDevedores.Locate('TP_ESTADO', 'A', [])) and
(not dtmSystem.tblCampanhaDevedores.IsEmpty) then
begin
dtmSystem.tblCobCampanha.Edit;
dtmSystem.tblCobCampanhaTP_ATIVA.AsInteger := 0;
dtmSystem.tblCobCampanhaTP_CONCLUIDA.AsInteger := 1;
dtmSystem.tblCobCampanha.Post;
dtmSystem.tblCampanhaDevedores.Filtered := false;
// dtmSystem.tblCampanhaDevedores.EnableControls;
MessageDlg
('Esta campanha foi cobrada por completo. Por favor sinalize seu administrador.',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
if (not dtmSystem.tblCampanhaDevedores.IsEmpty) then
begin
if (dtmSystem.tblCampanhaDevedores.Eof) then
begin
dtmSystem.tblCampanhaDevedores.Filtered := false;
// dtmSystem.tblCampanhaDevedores.EnableControls;
MessageDlg
('Não há mais devedores a serem cobrados nesta campanha por este usuário.',
mtInformation, [mbOK], 0);
Close;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
end;
// end;
dtmSystem.tblCampanhaDevedores.Refresh;
dbgrd_listadevedores.Repaint;
Screen.Cursor := crDefault;
// dtmSystem.tblCampanhaDevedores.EnableControls;
abort;
end;
// except
// ShowMessage(erro);
// end;
end;
procedure TfrmEfetuarCobranca.btn_protocoloClick(Sender: TObject);
begin
if edt_protocolo.Text = '' then
begin
edt_protocolo.Text := gerar_protocolo
(dtsDevedores.DataSet.FieldByName('ID_DEVEDOR').AsString);
edt_protocolo1.Text := edt_protocolo.Text;
btn_protocolo.Enabled := false;
end;
end;
procedure TfrmEfetuarCobranca.btn_recalcClick(Sender: TObject);
begin
atendimento := 'cobrando';
nome_cobrador := '__________';
dia_agendado := '__/__/____';
hora_agendado := '__:__';
tabCalculos.Enabled := true;
pgCobranca.TabIndex := 4;
edt_prov.Text := '';
cb_agendar.Checked := false;
clb_beneficiarioscalculo.Enabled := true;
lv_titulos.Enabled := true;
edt_nrparcelas.Enabled := true;
up_nrparcelas.Enabled := true;
cb_nmulta.Enabled := true;
dtp_atrasorecalc.Enabled := true;
cb_descquit.Enabled := true;
cb_descpar.Enabled := true;
end;
procedure TfrmEfetuarCobranca.btn_relacaodividaClick(Sender: TObject);
var
i, j: Integer;
str_filter: string;
begin
if queryListaTitulos.IsEmpty then
begin
MessageDlg('Por favor selecione uma empresa.', mtWarning, [mbOK], 0);
abort;
end
else
begin
ficha_dev := true;
str_filter := '';
queryListaTitulos.DisableControls;
for j := 0 to Length(str_tit) - 1 do
begin
// queryListaTitulos.RecNo := str_tit[j];
str_filter := str_filter + 'ID_TITULO = ' + inttostr(str_tit[j]) + ' OR ';
end;
queryListaTitulos.EnableControls;
if Length(str_tit) > 0 then
begin
setlength(str_filter, Length(str_filter) - 3);
queryListaTitulos.Filtered := false;
queryListaTitulos.Filter := str_filter;
queryListaTitulos.Filtered := true;
end;
relFichaDivida := TrelFichaDivida.Create(self);
with relFichaDivida do
begin
form := 'cobranca';
RLLabel7.Caption := RLLabel7.Caption + datetostr(dtp_atrasorecalc.Date);
RLLabel7.Left := floor(frbnd_dados.Width / 2) - floor(RLLabel7.Width / 2);
if cb_descquit.Checked then
begin
frlbl_tipodesc.Caption := 'Desconto concedido ao quitar.';
RLBand4.Visible := false;
if cb_nmulta.Checked then
begin
frlbl_descmulta.Caption := 'Desc. Multa: 100%';
end
else
begin
frlbl_descmulta.Caption := 'Desc. Multa: ' +
edt_multasquitar.Text + '%';
end;
frlbl_descind.Caption := 'Desc. Ind. Fin.: ' + edt_indquitar.Text + '%';
frlbl_descprin.Caption := 'Desc. Principal: ' +
edt_principalquitar.Text + '%';
frlbl_descjuros.Caption := 'Desc. Juros: ' + edt_jurosquitar.Text + '%';
if cb_desc_quit_cor.Checked then
begin
frlbl_desccorrigido.Caption := 'Desc. Corrigido: ' +
edt_corquitar.Text + '%';
end
else
begin
frlbl_desccorrigido.Caption := '';
end;
end;
if cb_descpar.Checked then
begin
frlbl_tipodesc.Caption := 'Desconto concedido ao parcelar.';
RLBand1.Visible := false;
RLBand2.Visible := false;
RLBand3.Visible := false;
if cb_nmulta.Checked then
begin
frlbl_descmulta.Caption := 'Desc. Multa: 100%';
end
else
begin
frlbl_descmulta.Caption := 'Desc. Multa: ' +
edt_multasparcelas.Text + '%';
end;
frlbl_descind.Caption := 'Desc. Ind. Fin.: ' +
edt_indparcelas.Text + '%';
frlbl_descprin.Caption := 'Desc. Principal: ' +
edt_principalparcelas.Text + '%';
frlbl_descjuros.Caption := 'Desc. Juros: ' +
edt_jurosparcelas.Text + '%';
if cb_desc_par_cor.Checked then
begin
frlbl_desccorrigido.Caption := 'Desc. Corrigido: ' +
edt_corpar.Text + '%';
end
else
begin
frlbl_desccorrigido.Caption := '';
end;
end;
if not(cb_descquit.Checked) and not(cb_descpar.Checked) then
begin
RLBand5.Visible := false;
frlbl_tipodesc.Caption := '';
end;
j := 0;
if Length(str_tit) = 0 then
begin
mnu_incluir.OnClick(self);
end;
queryListaTitulos.Refresh;
Att_campos;
setlength(lbl_parcelas, strtoint(copy(lbl_maxpar.Caption, 6,
Length(lbl_maxpar.Caption) - 5)));
for i := 0 to strtoint(copy(lbl_maxpar.Caption, 6,
Length(lbl_maxpar.Caption) - 5)) - 1 do
begin
edt_nrparcelas.Text := inttostr(i + 1);
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
lbl_parcelas[i] := TRLLabel.Create(relFichaDivida);
RLBand4.Height := 60 + (22 * (i div 4));
lbl_parcelas[i].Top := 44 + (22 * (i div 4));
lbl_parcelas[i].Caption := inttostr(i + 1) + 'x ' +
CurrToStrF(parcelamento[0], ffCurrency, 2, dtmSystem.CusFmt);
lbl_parcelas[i].Parent := RLBand4;
lbl_parcelas[i].Left := j * 200;
Inc(j, 1);
if j = 4 then
begin
j := 0;
end;
end;
if cbx_excentrada.Checked then
begin
frlbl_entrada.Caption := frlbl_entrada.Caption + edt_somaentrada.Text;
end
else
begin
if dtmSystem.tblCHGEmpresaTP_ENTRADA.AsString = 'PA' then
begin
frlbl_entrada.Caption := frlbl_entrada.Caption +
'Mesmo valor da parcela';
end
else
begin
frlbl_entrada.Caption := frlbl_entrada.Caption + edt_somaentrada.Text;
end;
end;
edt_nrparcelas.Text := inttostr(0);
queryListaTitulos.Refresh;
Att_campos;
CalcValorParcelas;
RLReport1.Preview();
queryListaTitulos.Filtered := false;
mnuretirar.OnClick(self);
setlength(str_tit, 0);
end;
ficha_dev := false;
end;
end;
procedure TfrmEfetuarCobranca.Button1Click(Sender: TObject);
var
i: Integer;
begin
dtsTelefones.DataSet.First;
i := 1;
while not dtsTelefones.DataSet.Eof do
begin
if dtsTelefones.DataSet.FieldByName('TP_ATIVO').AsString <> 'N' then
begin
dbmemo_box.lines.Add('Telefone nº' + inttostr(i) + ': (' +
dtsTelefones.DataSet.FieldByName('nr_ddd').AsString + ')' +
dtsTelefones.DataSet.FieldByName('nr_numero').AsString);
Inc(i, 1);
end;
dtsTelefones.DataSet.Next;
end;
end;
procedure TfrmEfetuarCobranca.btn_pesquisaClick(Sender: TObject);
begin
// frmCobranca.pesquisa_camp := true;
// Close;
frmPesquisa := TfrmPesquisa.Create(self);
frmPesquisa.veio_cobranca := true;
frmPesquisa.ShowModal;
if achou then
begin
atendimento := 'cobrando';
cb_agendar.Checked := false;
edt_protocolo1.Text := '';
edt_nrparcelas.Text := '0';
edt_nrparcelasChange(self.edt_nrparcelas);
cb_descquit.Checked := false;
cb_descquitClick(self.cb_descquit);
cb_descpar.Checked := false;
cb_descparClick(self.cb_descpar);
cb_nmulta.Checked := false;
cb_nmultaClick(self.cb_nmulta);
cbx_excentrada.Checked := false;
pgCobranca.TabIndex := 0;
btn_protocolo.Enabled := true;
pass_state := btn_passardevedor.Enabled;
pass_fec_state := btn_passadevfec.Enabled;
btn_passardevedor.Enabled := false;
btn_passadevfec.Enabled := false;
end;
btn_concluir.Enabled := true;
end;
procedure TfrmEfetuarCobranca.CalcPrice;
var
valor, juros, parcela, par_extra: currency;
dividendo: double;
qtd: Integer;
begin
qtd := strtoint(edt_nrparcelas.Text);
if dtmSystem.tblPrCartao.Locate('NR_PARCELA', qtd, []) then
begin
if cbx_excentrada.Checked then
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblPrCartaoPR_JUROS.AsFloat /
100), qtd))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) / qtd;
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end
else
begin
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PO' then
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblPrCartaoPR_JUROS.AsFloat /
100), qtd))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) / qtd;
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end
else
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100),
qtd + 1))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) / (qtd + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
end;
end
else
begin
queryListaTitulosVL_PARCELA.AsCurrency := 0;
raise Exception.Create
('Não existe % de juros para quantidade de parcelas selecionada. Por favor contate o administrador.');
end;
{ if cbx_excentrada.Checked then
begin
case strtoint(edt_nrparcelas.Text) of
1:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat /
100), strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
2, 3:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED3.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED3.AsFloat / 100),
strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
4, 5, 6:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED6.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED6.AsFloat / 100),
strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
7, 8, 9, 10, 11, 12:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED12.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED12.AsFloat / 100),
strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
end;
end
else
begin
if dtsCHGEmpresa.DataSet.FieldByName('TP_ENTRADA').AsString = 'PO' then
begin
case strtoint(edt_nrparcelas.Text) of
1:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat /
100), strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
2, 3:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED3.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED3.AsFloat / 100),
strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
4, 5, 6:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED6.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED6.AsFloat / 100),
strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
7, 8, 9, 10, 11, 12:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2) -
RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED12.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED12.AsFloat /
100), strtoint(edt_nrparcelas.Text)))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
strtoint(edt_nrparcelas.Text);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
end;
end;
end
else
begin
case strtoint(edt_nrparcelas.Text) of
1:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat /
100), strtoint(edt_nrparcelas.Text) + 1))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text) + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
2, 3:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED3.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED3.AsFloat / 100),
strtoint(edt_nrparcelas.Text) + 1))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text) + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
4, 5, 6:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED6.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED6.AsFloat / 100),
strtoint(edt_nrparcelas.Text) + 1))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text) + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
7, 8, 9, 10, 11, 12:
begin
valor := RoundTo(queryListaTitulosVL_CORRIGIDO.AsCurrency, -2);
if cbx_exjurosparcelar.Checked then
begin
juros := (strtofloat(edt_excjurosparcela.Text) / 100);
end
else
begin
juros := (dtmSystem.tblEmpresaPR_CRED12.AsFloat / 100);
end;
dividendo :=
(1 - (1 / (power(1 + (dtmSystem.tblEmpresaPR_CRED12.AsFloat /
100), strtoint(edt_nrparcelas.Text) + 1))));
parcela := ((valor * juros) / dividendo);
if (cbx_txextra.Checked) and (StrToCurr(edt_txextra.Text) > 0) then
begin
par_extra := StrToCurr(edt_txextra.Text) /
(strtoint(edt_nrparcelas.Text) + 1);
parcela := parcela + par_extra;
queryListaTitulosVL_INDICADOR.AsCurrency :=
queryListaTitulosVL_INDICADOR.AsCurrency + par_extra;
end;
queryListaTitulosVL_PARCELA.AsCurrency := parcela;
queryListaTitulosVL_ENTRADA.AsCurrency := parcela;
end;
end;
end;
end; }
end;
function TfrmEfetuarCobranca.CalculaIdade(Birthday, CurrentDate: TDate)
: Integer;
var
Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word;
begin
DecodeDate(Birthday, Year, Month, Day);
DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay);
if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then
begin
Result := 0;
end
else
begin
Result := CurrentYear - Year;
if (Month > CurrentMonth) then
Dec(Result)
else
begin
if Month = CurrentMonth then
if (Day > CurrentDay) then
Dec(Result);
end;
end;
end;
procedure TfrmEfetuarCobranca.CalcValorParcelas;
var
i, j, k, Y: Integer;
data_helper: TDate;
dia_antes, dia_depois, mes, ano: Word;
begin
setlength(parcelamento, 0);
lv_parcelas.Clear;
if strtoint(edt_nrparcelas.Text) >= 1 then
begin
setlength(parcelamento, strtoint(edt_nrparcelas.Text));
for i := 0 to lv_titulos.Items.Count - 1 do
begin
if lv_titulos.Items[i].Checked then
begin
queryListaTitulos.RecNo := i + 1;
for j := 0 to strtoint(edt_nrparcelas.Text) - 1 do
begin
parcelamento[j] := parcelamento[j] +
queryListaTitulosVL_PARCELA.AsCurrency;
end;
end;
end;
lv_parcelas.Items.Add;
lv_parcelas.Items[0].Caption := 'Entrada';
lv_parcelas.Items[0].SubItems.Add(edt_somaentrada.Text);
// end;
for k := 0 to Length(parcelamento) - 1 do
begin
lv_parcelas.Items.Add;
lv_parcelas.Items[k + 1].Caption := 'Parcela nº ' + inttostr(k + 1);
lv_parcelas.Items[k + 1].SubItems.Add(CurrToStrF(parcelamento[k],
ffCurrency, 2, dtmSystem.CusFmt));
end;
setlength(data_parcelas, strtoint(edt_nrparcelas.Text) + 1);
data_helper := dtp_atrasorecalc.Date;
DecodeDate(dtp_atrasorecalc.Date, ano, mes, dia_antes);
for Y := 0 to strtoint(edt_nrparcelas.Text) do
begin
data_parcelas[Y] := data_helper;
data_helper := IncMonth(data_helper);
DecodeDate(data_helper, ano, mes, dia_depois);
if (mes = 3) and (dia_antes = 29) and (dia_depois = 28) then
begin
data_helper := IncDay(data_helper);
end;
if (mes = 3) and (dia_antes = 30) and (dia_depois = 28) then
begin
data_helper := IncDay(data_helper, 2);
end;
if (mes = 3) and (dia_antes = 31) and (dia_depois = 28) then
begin
data_helper := IncDay(data_helper, 3);
end;
end;
end
else
begin
lv_parcelas.Clear;
end;
end;
procedure TfrmEfetuarCobranca.copiar_conteudoClick(Sender: TObject);
var
nomes, valores: array of string;
spaces: string;
i, j, tam, Count: Integer;
k: Integer;
begin
clpbrd := '';
if lv_parcelas.Items.Count > 0 then
begin
setlength(nomes, lv_parcelas.Items.Count);
setlength(valores, lv_parcelas.Items.Count);
for i := 0 to lv_parcelas.Items.Count - 1 do
begin
nomes[i] := lv_parcelas.Items.Item[i].Caption + ':';
valores[i] := lv_parcelas.Items.Item[i].SubItems[0];
end;
end;
for j := 0 to lv_parcelas.Items.Count - 1 do
begin
tam := Length(nomes[j]) + Length(valores[j]);
Count := 32 - tam;
spaces := '';
for k := 0 to Count - 1 do
begin
spaces := spaces + ' ';
end;
if j = 0 then
begin
clpbrd := clpbrd + nomes[j] + spaces + valores[j] +
' para ser pago até dia: ' + FormatDateTime('dd/mm/yyyy',
data_parcelas[0]) + sLineBreak;
end
else
begin
if copy(valores[0], 4, Length(valores[0]) - 3) = '0,00' then
begin
clpbrd := clpbrd + nomes[j] + spaces + valores[j] +
' para ser pago até dia: ' + FormatDateTime('dd/mm/yyyy',
data_parcelas[j - 1]) + sLineBreak;
end
else
begin
clpbrd := clpbrd + nomes[j] + spaces + valores[j] +
' para ser pago até dia: ' + FormatDateTime('dd/mm/yyyy',
data_parcelas[j { - 1 } ]) + sLineBreak;
end;
end;
end;
if Sender is TMenuItem then
begin
Clipboard.AsText := clpbrd;
end;
end;
procedure TfrmEfetuarCobranca.cp_telClick(Sender: TObject);
begin
Clipboard.AsText := dbedt_telnum.Text;
end;
procedure TfrmEfetuarCobranca.cp_teldddClick(Sender: TObject);
begin
Clipboard.AsText := dbedt_ddd.Text + ' ' + dbedt_telnum.Text;
end;
procedure TfrmEfetuarCobranca.AdjustCheckListBox;
var
i, nMaxWidth, nItemWidth: Integer;
begin
// nMaxWidth := clb_empresas.ClientWidth;
// for i := 0 to clb_empresas.Items.Count - 1 do
// begin
// nItemWidth := clb_empresas.Canvas.TextWidth(clb_empresas.Items[i]) + 20;
// if (nItemWidth > nMaxWidth) then
// nMaxWidth := nItemWidth;
// end;
// if (nMaxWidth > clb_empresas.ClientWidth) then
// begin
// clb_empresas.ScrollWidth := nMaxWidth;
// end;
end;
procedure TfrmEfetuarCobranca.appEventsHandlerException(Sender: TObject;
E: Exception);
begin
// if E is EDatabaseError then
// begin
// if Pos(E.Message, 'Closed Dataset') > 0 then
// begin
// dtmSystem.EscreveLog(E.Message, dtmSystem.tblHistorico);
// end;
// end;
end;
procedure TfrmEfetuarCobranca.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
begin
dtmSystem.LogaDC('deu algum ruim' + inttostr(dtmSystem.id_usuario));
if Pos('record', E.Message) > 0 then
begin
end;
end;
procedure TfrmEfetuarCobranca.Att_campos;
var
soma_nominal, soma_encargos, soma_corrigido, soma_entrada, soma_juros,
soma_multas, soma_indicador: currency;
i, n_parcelas, quit_ind, quit_prin, quit_multa, quit_juros, parc_ind,
parc_prin, parc_multa, parc_juros, par_cor, quit_cor, minentrada,
maxentrada: Integer;
begin
soma_nominal := 0.00;
soma_encargos := 0.00;
soma_corrigido := 0.00;
soma_entrada := 0.00;
soma_juros := 0.00;
soma_multas := 0.00;
soma_indicador := 0.00;
n_parcelas := 0;
minentrada := 0;
maxentrada := 0;
quit_ind := 0;
quit_prin := 0;
quit_multa := 0;
quit_juros := 0;
quit_cor := 0;
parc_ind := 0;
parc_prin := 0;
parc_multa := 0;
parc_juros := 0;
par_cor := 0;
queryListaTitulos.DisableControls;
for i := 0 to lv_titulos.Items.Count - 1 do
begin
if lv_titulos.Items.Item[i].Checked then
begin
queryListaTitulos.RecNo := i + 1;
soma_nominal := soma_nominal + queryListaTitulosVL_TITULO.AsCurrency;
soma_encargos := soma_encargos + queryListaTitulosVL_ENCARGOS.AsCurrency;
soma_corrigido := soma_corrigido + queryListaTitulosVL_CORRIGIDO.
AsCurrency;
soma_entrada := soma_entrada + queryListaTitulosVL_ENTRADA.AsCurrency;
soma_juros := soma_juros + queryListaTitulosVL_JUROS.AsCurrency;
soma_multas := soma_multas + queryListaTitulosVL_MULTA.AsCurrency;
soma_indicador := soma_indicador + queryListaTitulosVL_INDICADOR.
AsCurrency;
if n_parcelas < (queryListaTitulosNR_PARCELAS.AsInteger) then
begin
n_parcelas := queryListaTitulosNR_PARCELAS.AsInteger;
end;
if minentrada < (queryListaTitulosPR_ENTRADA_MIN.AsInteger) then
begin
minentrada := queryListaTitulosPR_ENTRADA_MIN.AsInteger;
end;
// edt_prentrada.Text := inttostr(minentrada);
if maxentrada < (queryListaTitulosPR_ENTRADA_MAX.AsInteger) then
begin
maxentrada := queryListaTitulosPR_ENTRADA_MAX.AsInteger;
end;
if quit_ind < (queryListaTitulosPR_QUITACAO_INDICADOR.AsInteger) then
begin
quit_ind := queryListaTitulosPR_QUITACAO_INDICADOR.AsInteger;
end;
if quit_prin < (queryListaTitulosPR_QUITACAO_PRINCIPAL.AsInteger) then
begin
quit_prin := queryListaTitulosPR_QUITACAO_PRINCIPAL.AsInteger;
end;
if quit_multa < (queryListaTitulosPR_QUITACAO_MULTA.AsInteger) then
begin
quit_multa := queryListaTitulosPR_QUITACAO_MULTA.AsInteger;
end;
if quit_juros < (queryListaTitulosPR_QUITACAO_JUROS.AsInteger) then
begin
quit_juros := queryListaTitulosPR_QUITACAO_JUROS.AsInteger;
end;
if quit_cor < (queryListaTitulosPR_QUITACAO_COR.AsInteger) then
begin
quit_cor := queryListaTitulosPR_QUITACAO_COR.AsInteger;
end;
if parc_ind < (queryListaTitulosPR_PARCELA_INDICADOR.AsInteger) then
begin
parc_ind := queryListaTitulosPR_PARCELA_INDICADOR.AsInteger;
end;
if parc_prin < (queryListaTitulosPR_PARCELA_PRINCIPAL.AsInteger) then
begin
parc_prin := queryListaTitulosPR_PARCELA_PRINCIPAL.AsInteger;
end;
if parc_multa < (queryListaTitulosPR_PARCELA_MULTA.AsInteger) then
begin
parc_multa := queryListaTitulosPR_PARCELA_MULTA.AsInteger;
end;
if parc_juros < (queryListaTitulosPR_PARCELA_JUROS.AsInteger) then
begin
parc_juros := queryListaTitulosPR_PARCELA_JUROS.AsInteger;
end;
if par_cor < (queryListaTitulosPR_PARCELA_COR.AsInteger) then
begin
par_cor := queryListaTitulosPR_PARCELA_COR.AsInteger;
end;
end;
end;
queryListaTitulos.EnableControls;
edt_somatitulos.Text := CurrToStrF(soma_nominal, ffCurrency, 2,
dtmSystem.CusFmt);
edt_extras.Text := CurrToStrF(soma_encargos, ffCurrency, 2, dtmSystem.CusFmt);
// if cbx_txextra.Checked then
// begin
// soma_corrigido := soma_corrigido + StrToCurr(edt_txextra.Text);
// end;
edt_vlaquitar.Text := CurrToStrF(soma_corrigido, ffCurrency, 2,
dtmSystem.CusFmt);
if cbx_excentrada.Checked then
begin
edt_somaentrada.Text := CurrToStrF(StrToCurr(edt_excentrada.Text),
ffCurrency, 2, dtmSystem.CusFmt);
end
else
begin
edt_somaentrada.Text := CurrToStrF(soma_entrada, ffCurrency, 2,
dtmSystem.CusFmt);
end;
edt_somaindicador.Text := CurrToStrF(soma_indicador, ffCurrency, 2,
dtmSystem.CusFmt);
edt_somamulta.Text := CurrToStrF(soma_multas, ffCurrency, 2,
dtmSystem.CusFmt);
edt_somajuros.Text := CurrToStrF(soma_juros, ffCurrency, 2, dtmSystem.CusFmt);
up_nrparcelas.Max := n_parcelas;
lbl_maxpar.Caption := 'Máx: ' + inttostr(n_parcelas);
ud_entrada.Min := minentrada;
ud_entrada.Max := maxentrada;
lbl_minentrada.Caption := 'Min: ' + inttostr(minentrada) + '%';
lbl_maxentrada.Caption := 'Máx: ' + inttostr(maxentrada) + '%';
up_encquitar.Max := quit_ind;
lbl_maxindquit.Caption := 'Máx: ' + inttostr(quit_ind) + '%';
up_principalquitar.Max := quit_prin;
lbl_maxprinquit.Caption := 'Máx: ' + inttostr(quit_prin) + '%';
up_multasquitar.Max := quit_multa;
lbl_maxmultaquit.Caption := 'Máx: ' + inttostr(quit_multa) + '%';
up_jurosquitar.Max := quit_juros;
lbl_maxjurosquit.Caption := 'Máx: ' + inttostr(quit_juros) + '%';
ud_corquitar.Max := quit_cor;
lbl_maxquitcor.Caption := 'Máx: ' + inttostr(quit_cor) + '%';
up_encparcelas.Max := parc_ind;
lbl_maxindpar.Caption := 'Máx: ' + inttostr(parc_ind) + '%';
up_principalparcelas.Max := parc_prin;
lbl_maxprinpar.Caption := 'Máx: ' + inttostr(parc_prin) + '%';
up_multasparcelas.Max := parc_multa;
lbl_maxmultapar.Caption := 'Máx: ' + inttostr(parc_multa) + '%';
up_jurosparcelas.Max := parc_juros;
lbl_maxjurospar.Caption := 'Máx: ' + inttostr(parc_juros) + '%';
ud_corpar.Max := par_cor;
lbl_maxparcor.Caption := 'Máx: ' + inttostr(par_cor) + '%';
end;
function TfrmEfetuarCobranca.gerar_protocolo(id_devedor: string): string;
var
tamanho, i: Integer;
cd_devedor, dia, tempo: string;
begin
tempo := FormatDateTime('hhmm', Time);
dia := FormatDateTime('yyyymmdd', Date);
cd_devedor := id_devedor;
tamanho := Length(id_devedor);
for i := 0 to 7 - tamanho do
begin
cd_devedor := '0' + cd_devedor;
end;
Result := tempo + dia + cd_devedor;
end;
end.