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
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.
|