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.