unit ufrmAtendimento; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, DateUtils, System.win.ComObj, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.Mask, Vcl.DBCtrls, Vcl.ComCtrls, Vcl.ExtCtrls, rDBComponents, Vcl.CheckLst, StrUtils, ClipBrd, System.MaskUtils, System.UITypes, System.Math, Vcl.Menus, Vcl.Buttons, System.ImageList, Vcl.ImgList, ShellAPI, DBDateTimePicker, RLReport, Datasnap.DBClient; type THackDBNavigator = class(TDBNavigator); type TfrmAtendimento = class(TForm) gb_pesquisar: TGroupBox; lbl_pesquisar: TLabel; edt_campop: TEdit; btn_pesquisar: TButton; dbgrd_pesquisar: TDBGrid; cbx_tiponome: TComboBox; qryPesquisa: TZQuery; dtsPesquisa: TDataSource; gb_cabecalho: TGroupBox; lbl_nomec: TLabel; dbedt_nomec: TDBEdit; dtsDevedor: TDataSource; lbl_cpfcnpjc: TLabel; dbedt_cpfcnpjc: TDBEdit; gb_dados: TGroupBox; pcDevedor: TPageControl; tabCadastro: TTabSheet; navdevedor: TDBNavigator; dbedt_nome: TDBEdit; dbedt_nomepai: TDBEdit; lbl_nomepai: TLabel; dbedt_nomemae: TDBEdit; lbl_nomemae: TLabel; lbl_nome: TLabel; lbl_cpfcnpj: TLabel; dbedt_cpfcnpj: TDBEdit; lbl_rg: TLabel; dbedt_rg: TDBEdit; lbl_coddev: TLabel; dbedt_coddev: TDBEdit; lbl_datanasc: TLabel; lbl_datacad: TLabel; Panel1: TPanel; dbrgrp_tpdevedor: TDBRadioGroup; lbl_tppessoa: TLabel; pnl_cadastro: TPanel; tabEnderecos: TTabSheet; pnl_enderecos: TPanel; dbgrd_enderecos: TDBGrid; dbmb_obsc: TDBMemo; lbl_obs: TLabel; lbl_rua: TLabel; dbedt_rua: TDBEdit; dtsEnderecos: TDataSource; lbl_num: TLabel; dbedt_num: TDBEdit; lbl_comp: TLabel; dbedt_comp: TDBEdit; lbl_cep: TLabel; dbedt_cep: TDBEdit; lbl_bairro: TLabel; dbedt_bairro: TDBEdit; lbl_uf: TLabel; dblucmbox_uf: TDBLookupComboBox; lbl_cidade: TLabel; dblucmbox_cidade: TDBLookupComboBox; Panel2: TPanel; dbrg_situacao: TDBRadioGroup; Panel6: TPanel; dbrg_ref: TDBRadioGroup; Panel7: TPanel; dbrg_tpend: TDBRadioGroup; lbl_tpend: TLabel; lbl_situacao: TLabel; lbl_ref: TLabel; navenderecos: TDBNavigator; tabTelefones: TTabSheet; pnl_telefones: TPanel; dbgrd_tel: TDBGrid; lbl_tel: TLabel; dbedt_tel: TDBEdit; lbl_desctel: TLabel; dbedt_desctel: TDBEdit; lbl_obstel: TLabel; btn_clearmemo: TButton; dbmem_tel: TDBMemo; lbl_tipo: TLabel; lbl_sittel: TLabel; Panel3: TPanel; dbrg_sittel: TDBRadioGroup; Panel4: TPanel; dbrg_tipotel: TDBRadioGroup; navtelefones: TDBNavigator; tabTitulos: TTabSheet; pnl_titulos: TPanel; dtsTelefones: TDataSource; dbedit_produto: TDBEdit; dbedt_codemp: TDBEdit; dbedt_vltit: TDBEdit; Label2: TLabel; lbl_dataent: TLabel; lbl_datavenc: TLabel; lbl_empresas: TLabel; lbl_sittit: TLabel; lbl_tit: TLabel; lbl_vltit: 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; rDBDateTimePicker1: TrDBDateTimePicker; rdbdt_entrada: TrDBDateTimePicker; dbgrd_tit: TDBGrid; tabHistorico: TTabSheet; pnl_hist: TPanel; dbgrd_historico: TDBGrid; dbmemo_box: TDBMemo; navtitulos: TDBNavigator; navhistorico: TDBNavigator; tabCalc: TTabSheet; lv_titulos: TListView; dtsListaTitulos: TDataSource; queryListaTitulos: TZQuery; queryListaTitulosID_TITULO: TIntegerField; queryListaTitulosID_DEVEDOR: TIntegerField; queryListaTitulosID_EMPRESA: TIntegerField; queryListaTitulosTX_PRODUTO: TWideStringField; queryListaTitulosVL_TITULO: TCurrencyField; queryListaTitulosDT_ENTRADA: TDateTimeField; queryListaTitulosDT_VENCIMENTO: TDateTimeField; queryListaTitulosDT_ATRASO: TIntegerField; queryListaTitulosTP_SITUACAO: TWideStringField; queryListaTitulosCD_DEVEDOR: TWideStringField; queryListaTitulosNOME_EMPRESA: TStringField; queryListaTitulosPR_ENTRADA: TFloatField; queryListaTitulosVL_ENTRADA: TCurrencyField; queryListaTitulosPR_JUROS: TFloatField; queryListaTitulosVL_JUROS: TCurrencyField; queryListaTitulosPR_MULTA: TFloatField; queryListaTitulosVL_MULTA: TCurrencyField; queryListaTitulosVL_ENCARGOS: TCurrencyField; queryListaTitulosVL_CORRIGIDO: TCurrencyField; queryListaTitulosPR_INDICADOR: TFloatField; queryListaTitulosVL_INDICADOR: TCurrencyField; queryListaTitulosPR_QUITACAO_INDICADOR: TFloatField; queryListaTitulosVL_DESC_QUIT_IND: TCurrencyField; queryListaTitulosPR_QUITACAO_PRINCIPAL: TFloatField; queryListaTitulosVL_DESC_QUIT_PRIN: TCurrencyField; queryListaTitulosPR_QUITACAO_MULTA: TFloatField; queryListaTitulosVL_DESC_QUIT_MULTA: TCurrencyField; queryListaTitulosPR_QUITACAO_JUROS: TFloatField; queryListaTitulosVL_DESC_QUIT_JUROS: TCurrencyField; queryListaTitulosPR_PARCELA_INDICADOR: TFloatField; queryListaTitulosVL_DESC_PAR_IND: TCurrencyField; queryListaTitulosPR_PARCELA_PRINCIPAL: TFloatField; queryListaTitulosVL_DESC_PAR_PRIN: TCurrencyField; queryListaTitulosPR_PARCELA_MULTA: TFloatField; queryListaTitulosVL_DESC_PAR_MULTA: TCurrencyField; queryListaTitulosPR_PARCELA_JUROS: TFloatField; queryListaTitulosVL_DESC_PAR_JUROS: TCurrencyField; queryListaTitulosNR_PARCELAS: TIntegerField; dbgrd_listtitulos: TDBGrid; lbl_somatitulos: TLabel; lbl_parcelamento: TLabel; lbl_somaentrada: TLabel; lbl_vlaquitar: TLabel; lbl_extras: TLabel; lbl_somajuros: TLabel; lbl_somamulta: TLabel; lbl_somaindicador: TLabel; lbl_desctot: TLabel; lbl_datapgmnto: TLabel; edt_somatitulos: TEdit; edt_nrparcelas: TEdit; up_nrparcelas: TUpDown; edt_somaentrada: TEdit; edt_vlaquitar: TEdit; edt_extras: TEdit; edt_somajuros: TEdit; edt_somamulta: TEdit; edt_somaindicador: TEdit; cb_nmulta: TCheckBox; edt_desctot: TEdit; dtp_atrasorecalc: TDateTimePicker; lv_parcelas: TListView; btn_fechamento: TButton; ppmnu_copiar: TPopupMenu; copiar_conteudo: TMenuItem; dtsProtocolos: TDataSource; dbgrd_protocolos: TDBGrid; btn_verprotocolo: TButton; tabFechamento: TTabSheet; lv_prevtitulos: TListView; btn_concluir: TButton; lv_fechamento: TListView; lbl_prevtitulos: TLabel; lbl_vltotal: TLabel; edt_vltotal: TEdit; lbl_apagamento: TLabel; lbl_dpagamento: TLabel; cbx_excentrada: TCheckBox; edt_excentrada: TEdit; queryListaTitulosTP_DESPESA: TWideStringField; queryListaTitulosVL_DESPESA: TCurrencyField; dtsTitulos: 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; pnl_despesa: TPanel; dbrg_despesa: TDBRadioGroup; lbl_tpdespesa: TLabel; lbl_depesa: TLabel; dbedt_despesa: TDBEdit; dtsqryConsulta: TDataSource; qryConsulta: TZQuery; clb_beneficiarioscalculo: TCheckListBox; lbl_beneficiarioscalculo: TLabel; clb_indices: TCheckListBox; lbl_indices: TLabel; queryListaTitulosVL_INDICES: TCurrencyField; Label1: TLabel; edt_indices: TEdit; btn_verrecibos: TButton; queryConteudoRecibo: TZQuery; lbl_formarecebimento: TLabel; edt_formarecebimento: TEdit; ImageList1: TImageList; Label3: TLabel; Label4: TLabel; Label5: TLabel; edt_nrchequerecibo: TEdit; edt_bancorecibo: TEdit; edt_pracarecibo: TEdit; lbl_obsrecibo: TLabel; Label6: TLabel; cb_formapag: TComboBox; dtsHistAgenda: TDataSource; ROqryHistAgenda: TZReadOnlyQuery; queryListaTitulosVL_PARCELA: TCurrencyField; cbx_despesas: TCheckBox; queryListaTitulosTX_DESPESA: TStringField; dtsDespesas: TDataSource; pcTitDespesas: TPageControl; tabTit: TTabSheet; tabDespesas: TTabSheet; navDespesas: TDBNavigator; dbgrd_despesas: TDBGrid; queryListaTitulosPR_JUROS_CHEQUE: TFloatField; btn_amostra: TButton; btn_acordoin: TButton; btn_acordoout: TButton; queryListaTitulosVL_EXTRAS: TCurrencyField; dtsIndicadorFinanceiro: TDataSource; dtsCHGEmpresa: TDataSource; dtsEmpresa: TDataSource; cbx_descindextras: TCheckBox; cb_descindicesextras: TComboBox; edt_descindextras: TEdit; lbl_maxpar: TLabel; popmnu_incluir: TPopupMenu; mnu_incluir: TMenuItem; mnuretirar: TMenuItem; tabObs: TTabSheet; queryListaTitulosPR_QUITACAO_COR: TFloatField; queryListaTitulosPR_PARCELA_COR: TFloatField; Label7: TLabel; DBEdit2: TDBEdit; Label8: TLabel; DBEdit3: TDBEdit; dbdtp_dtnasc: TDBDateTimePicker; dbdtp_dtcad: TDBDateTimePicker; lbl_providencias: TLabel; dbgrd_providencias: TDBGrid; lbl_prov: TLabel; edt_prov: TEdit; pb_atendimento: TProgressBar; Label9: TLabel; lbl_processo: TLabel; dbedt_ddd: TDBEdit; lbl_ddd: TLabel; Label10: TLabel; lbl_minentrada: TLabel; edt_prentrada: TEdit; ud_entrada: TUpDown; lbl_maxentrada: TLabel; queryListaTitulosPR_ENTRADA_MIN: TFloatField; queryListaTitulosPR_ENTRADA_MAX: TFloatField; mem_obsrecibo: TMemo; cbx_txextra: TCheckBox; edt_txextra: TEdit; queryListaTitulosVL_REPASSE_BANCO: TCurrencyField; queryListaTitulosVL_PRINCIPAL: TCurrencyField; dbmem_titobs: TDBMemo; lbl_titobs: TLabel; cb_agendahist: TCheckBox; Label11: TLabel; dtp_agendadatahist: TDateTimePicker; Label12: TLabel; dtp_agendahorahist: TDateTimePicker; Label13: TLabel; dblucb_agendacobhist: TDBLookupComboBox; Label14: TLabel; dblucb_providencia: TDBLookupComboBox; dtsHistorico: TDataSource; dtsCobrador: TDataSource; queryCobradores: TZQuery; queryCobradoresID_USUARIO: TIntegerField; queryCobradoresTX_NOME: TWideStringField; 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; queryListaTitulosVL_RETIRADA_TAXA: TCurrencyField; navEmail: TDBNavigator; dtsEmail: TDataSource; Label15: TLabel; dbedt_email: TDBEdit; dbgrd_email: TDBGrid; edt_excjurosparcela: TEdit; cbx_exjurosparcelar: TCheckBox; DBGrid1: TDBGrid; Label16: TLabel; queryListaTitulosVL_DESC_IND: TCurrencyField; queryListaTitulosVL_DESC_PRIN: TCurrencyField; queryListaTitulosVL_DESC_MULTA: TCurrencyField; queryListaTitulosVL_DESC_JUROS: TCurrencyField; pnl_contatos: TPanel; Label17: TLabel; dblbl_contatos: TDBText; cb_agendaatend: TCheckBox; dtp_agatend: TDateTimePicker; dblucb_agatend: TDBLookupComboBox; dtph_agatend: TDateTimePicker; Label18: TLabel; Label19: TLabel; Label20: TLabel; Panel8: TPanel; DBRadioGroup1: TDBRadioGroup; Label21: TLabel; zroqryRecibos: TZReadOnlyQuery; ppmnuQuebraAcordo: TPopupMenu; mnuQuebraAcordo: TMenuItem; ZReadOnlyQuery1: TZReadOnlyQuery; ZReadOnlyQuery1ID_ITEM: TIntegerField; ZReadOnlyQuery1ID_ACORDO: TIntegerField; ZReadOnlyQuery1ID_PARCELA: TIntegerField; ZReadOnlyQuery1ID_ORIGINAL: TIntegerField; ZReadOnlyQuery1ID_DEVEDOR: TIntegerField; queryListaTitulosNR_JUROS: TCurrencyField; queryListaTitulosTP_JUROS: TStringField; rotblRepasseFase: TZReadOnlyQuery; rotblRepasseFaseID_FASE: TIntegerField; rotblRepasseFasePR_PRINCIPAL: TFloatField; rotblRepasseFasePR_JUROS: TFloatField; rotblRepasseFasePR_MULTA: TFloatField; rotblRepasseFasePR_ENCARGOS: TFloatField; rotblRepasseFasePR_CORRIGIDO: TFloatField; rotblRepasseFaseMIN_ATRASO: TIntegerField; rotblRepasseFaseMAX_ATRASO: TIntegerField; rotblRepasseFaseID_REPASSE: TIntegerField; rotblRepasseFaseID_ULTIMO_USUARIO: TIntegerField; rotblRepasseFaseDT_HORA_ULTIMA_ATT: TDateTimeField; zroqryHelpRepasse: TZReadOnlyQuery; dtsCDSTitulos: TDataSource; cdsParcelas: TClientDataSet; cdsParcelasid_parcela: TIntegerField; dtsCDSParcelas: TDataSource; cdsTitulos: TClientDataSet; cdsTitulosID_TITULO: TIntegerField; cdsTitulosID_DEVEDOR: TIntegerField; cdsTitulosID_EMPRESA: TIntegerField; cdsTitulosTX_PRODUTO: TStringField; cdsTitulosVL_TITULO: TCurrencyField; cdsTitulosDT_ENTRADA: TDateField; cdsTitulosDT_VENCIMENTO: TDateField; cdsTitulosTP_SITUACAO: TStringField; cdsTitulosCD_DEVEDOR: TStringField; cdsTitulosTP_CHEQUE: TStringField; cdsTitulosID_BANCO: TIntegerField; cdsTitulosTX_NRCHEQUE: TStringField; cdsTitulosTP_MOTIVO: TStringField; cdsTitulosVL_DESPESA: TCurrencyField; cdsTitulosTP_DESPESA: TStringField; cdsTitulosVL_MULTA: TCurrencyField; cdsTitulosVL_JUROS: TCurrencyField; cdsTitulosVL_ENCARGOS: TCurrencyField; cdsTitulosVL_CORRIGIDO: TCurrencyField; cdsTitulosDT_PAGAMENTO: TDateField; cdsTitulosTX_OBS: TBlobField; cdsTitulosID_ULTIMO_USUARIO: TIntegerField; cdsTitulosDT_HORA_ULTIMA_ATT: TDateField; cdsTitulosID_IMPLANTACAO: TIntegerField; cdsTitulosDT_IMPLANTACAO: TDateField; cdsTitulosQTDE_PARCELAS: TIntegerField; cdsTitulosVL_DESC_PRINCIPAL: TCurrencyField; cdsTitulosDT_EMISSAO_RECIBO: TDateField; cdsTitulosVL_REPASSE_PRIN: TCurrencyField; cdsTitulosVL_DESC_MULTA: TCurrencyField; cdsTitulosVL_REPASSE_MULTA: TCurrencyField; cdsTitulosVL_DESC_JUROS: TCurrencyField; cdsTitulosVL_REPASSE_JUROS: TCurrencyField; cdsTitulosVL_INDICADOR: TCurrencyField; cdsTitulosVL_DESC_INDICADOR: TCurrencyField; cdsTitulosVL_REPASSE_CORRIGIDO: TCurrencyField; cdsTitulosTP_PRESTACAO: TStringField; cdsTitulosVL_REPASSE_ENCARGOS: TCurrencyField; Label22: TLabel; dbedt_protocolo: TDBEdit; btn_protocolo: TButton; lbl_protocolo1: TLabel; edt_protocolo1: TEdit; lbl_protocolo: TLabel; edt_protocolo: TEdit; DBLookupComboBox1: TDBLookupComboBox; Label23: TLabel; N1: TMenuItem; DevolverTtulos1: TMenuItem; procedure btn_pesquisarClick(Sender: TObject); procedure dbgrd_pesquisarDblClick(Sender: TObject); procedure dtsDevedorDataChange(Sender: TObject; Field: TField); procedure clb_empresasClickCheck(Sender: TObject); procedure dbgrd_titCellClick(Column: TColumn); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure queryListaTitulosCalcFields(DataSet: TDataSet); procedure edt_campopKeyPress(Sender: TObject; var Key: Char); procedure lv_titulosChange(Sender: TObject; Item: TListItem; Change: TItemChange); procedure edt_nrparcelasChange(Sender: TObject); procedure cb_nmultaClick(Sender: TObject); procedure cb_descquitClick(Sender: TObject); procedure cb_descparClick(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 copiar_conteudoClick(Sender: TObject); procedure btn_closeClick(Sender: TObject); procedure dtp_atrasorecalcChange(Sender: TObject); procedure btn_verprotocoloClick(Sender: TObject); procedure cbx_descfixoClick(Sender: TObject); procedure cbx_acrfixoClick(Sender: TObject); procedure pcDevedorChanging(Sender: TObject; var AllowChange: Boolean); procedure pcDevedorChange(Sender: TObject); procedure btn_fechamentoClick(Sender: TObject); procedure btn_concluirClick(Sender: TObject); procedure cbx_excentradaClick(Sender: TObject); procedure edt_excentradaKeyPress(Sender: TObject; var Key: Char); procedure edt_descfixoKeyPress(Sender: TObject; var Key: Char); procedure edt_excentradaChange(Sender: TObject); procedure dtsTitulosDataChange(Sender: TObject; Field: TField); procedure dtsTitulosStateChange(Sender: TObject); procedure clb_beneficiarioscalculoClickCheck(Sender: TObject); procedure clb_indicesClickCheck(Sender: TObject); procedure btn_verrecibosClick(Sender: TObject); procedure edt_reciboobsChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure cb_formapagChange(Sender: TObject); procedure cbx_despesasClick(Sender: TObject); procedure dtsDespesasStateChange(Sender: TObject); procedure btn_amostraClick(Sender: TObject); procedure btn_acordoinClick(Sender: TObject); procedure btn_acordooutClick(Sender: TObject); procedure cbx_descindextrasClick(Sender: TObject); procedure cb_descindicesextrasChange(Sender: TObject); procedure edt_descindextrasExit(Sender: TObject); procedure edt_descindextrasKeyPress(Sender: TObject; var Key: Char); 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_telTitleClick(Column: TColumn); procedure dbgrd_titTitleClick(Column: TColumn); procedure dbgrd_despesasTitleClick(Column: TColumn); procedure dbgrd_historicoTitleClick(Column: TColumn); procedure dbgrd_listtitulosTitleClick(Column: TColumn); 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 dbgrd_telDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure dbgrd_enderecosDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure dbgrd_providenciasDblClick(Sender: TObject); procedure dbgrd_titDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure edt_prentradaChange(Sender: TObject); procedure navtelefonesBeforeAction(Sender: TObject; Button: TNavigateBtn); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure dtsEnderecosStateChange(Sender: TObject); procedure edt_txextraChange(Sender: TObject); procedure cbx_txextraClick(Sender: TObject); procedure edt_txextraKeyPress(Sender: TObject; var Key: Char); procedure up_nrparcelasClick(Sender: TObject; Button: TUDBtnType); procedure navhistoricoBeforeAction(Sender: TObject; Button: TNavigateBtn); procedure navtitulosBeforeAction(Sender: TObject; Button: TNavigateBtn); 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_corquitarKeyPress(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 edt_corparKeyPress(Sender: TObject; var Key: Char); procedure dtsHistoricoStateChange(Sender: TObject); procedure cb_agendahistClick(Sender: TObject); procedure cbx_exjurosparcelarClick(Sender: TObject); procedure edt_excjurosparcelaChange(Sender: TObject); procedure edt_excjurosparcelaKeyPress(Sender: TObject; var Key: Char); procedure dtsEmailStateChange(Sender: TObject); procedure cb_agendaatendClick(Sender: TObject); procedure dbedt_cpfcnpjcKeyPress(Sender: TObject; var Key: Char); procedure dbrg_tipotelClick(Sender: TObject); procedure dtsTelefonesDataChange(Sender: TObject; Field: TField); procedure mnuQuebraAcordoClick(Sender: TObject); procedure dtsDevedorStateChange(Sender: TObject); procedure btn_protocoloClick(Sender: TObject); procedure DevolverTtulos1Click(Sender: TObject); private FListViewOldWndProc: TWndMethod; FlistViewOldWndProc2: TWndMethod; atendimento: string; pagina: Integer; new_id_tit: Integer; ficha_dev: Boolean; nr_recibo: string; id_emps_dev: array of Integer; procedure ListViewNewWndProc(var Msg: TMessage); procedure ListViewNewWndProc2(var Msg: TMessage); procedure CriarLista; procedure CalcValorParcelas; procedure Att_campos; // procedure CarregaProtocolo; procedure SetupHackedNavigator(const Navigator: TDBNavigator; const Glyphs: TImageList; S: string; size: Integer); // procedure WMMoving(var Msg: TWMMoving); message WM_MOVING; procedure OpenOfficeDocument(path: string); procedure AdjustCheckListBox; procedure CalcPrice; procedure ChecaPermissoes; procedure GuardaTitulos; { Private declarations } public data_parcelas: array of TDate; old_id: Integer; index_pagamento: Integer; parcelas_pagamento: Integer; id_recibo: string; clpbrd: string; forma_pagamento: string; multi_form_pag: Boolean; nome_titulos: string; obs_despesas: string; parcelamento: array of currency; after_show: Boolean; tipo_parcelamento: string; desc_indices_extras: TStringList; antes: TTime; quant_titulos: Integer; qtde_titulos: Integer; id_empresa: Integer; acordo_fora: Boolean; acordo_emp: Integer; acordo_fantasia: string; id_emp: Integer; entrada_credvista: double; selected_id_chg_empresa: Integer; str_tit: array of Integer; id_emp_calc: Integer; ids_tits_calc: array of Boolean; qtde_parcelas: Integer; fez_recibo: Boolean; log_recibo: TStringList; { Public declarations } end; var frmAtendimento: TfrmAtendimento; implementation {$R *.dfm} uses udtmSystem, CommCtrl, ufrmFechamentoAtendimento, urelRecibo, uExtenso, ufrmEscolheAcordo, urelFichaDivida, urelTeste, ufrmLiberaPermissao; procedure TfrmAtendimento.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 TfrmAtendimento.Att_campos; var soma_nominal, soma_encargos, soma_corrigido, soma_entrada, soma_juros, soma_multas, soma_indicador, { desc_fixo, acr_fixo, } soma_indices : 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; soma_indices := 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; soma_indices := soma_indices + queryListaTitulosVL_INDICES.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_indices.Text := CurrToStrF(soma_indices, 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; procedure TfrmAtendimento.btn_fechamentoClick(Sender: TObject); var i, j, k, p, h: Integer; parcela, valor, juros, dividendo, somatotal, a, entrada_helper, vl_helper, { variáveis novas } p_juros, p_multa, p_encargos, p_desc, p_cor, t_juros, t_multa, t_encargos, t_desc, t_desc_prin, t_cor { variáveis novas } : currency; n_marcou, selecionado: Boolean; mes, ano: string; begin n_marcou := true; for h := 0 to clb_beneficiarioscalculo.Items.Count - 1 do begin if clb_beneficiarioscalculo.Checked[h] then begin n_marcou := false; dtmSystem.tblCHGEmpresa.Locate('TX_NOME', clb_beneficiarioscalculo.Items[h], []); id_emp := dtmSystem.tblCHGEmpresaID_EMPRESA.AsInteger; break; end; end; if n_marcou then begin Messagedlg('Por favor selecione a empresa a qual o cliente possúi débitos.', mtWarning, [mbok], 0); abort; end; selecionado := false; for i := 0 to lv_titulos.Items.Count - 1 do begin if lv_titulos.Items[i].Checked = true then begin selecionado := true; break; end; end; if not selecionado then begin Messagedlg ('Por favor selecione um título primeiro para realizar o atendimento.', mtWarning, [mbok], 0); abort; end; if dtmSystem.tblEmpresaRepasse.IsEmpty then begin Showmessage('Esta empresa não possui nenhum repasse cadastrado.' + ' Por favor contate a administração.'); abort; end else begin mes := copy(FormatDateTime('yyyy-mm-dd', dtp_atrasorecalc.Date), 6, 2); ano := copy(FormatDateTime('yyyy-mm-dd', dtp_atrasorecalc.Date), 1, 4); if not dtmSystem.tblEmpresaRepasse.Locate('ID_MES;ID_ANO', VarArrayOf([mes, ano]), []) then begin Showmessage ('Esta empresa não possui repasse para o mês da data de pagamento escolhida cadastrado.' + ' Por favor contate a administração.'); abort; end; end; with TfrmFechamentoAtendimento.Create(self) do begin ShowModal; if ModalResult = mrOk then begin atendimento := 'fechamento'; pcDevedor.TabIndex := 6; btn_protocoloClick(self); quant_titulos := 0; qtde_parcelas := strtoint(edt_nrparcelas.Text); if forma_pagamento = 'Q' then begin btn_acordoin.Enabled := false; btn_acordoout.Enabled := false; btn_verrecibos.Enabled := true; btn_concluir.Enabled := false; end else begin btn_acordoin.Enabled := true; btn_acordoout.Enabled := true; btn_verrecibos.Enabled := false; btn_concluir.Enabled := false; end; lv_prevtitulos.Clear; lv_fechamento.Clear; obs_despesas := ''; dtmSystem.tblConteudoRecibo.Open; if dtmSystem.tblConteudoRecibo.RecordCount <> 0 then begin dtmSystem.tblConteudoRecibo.Close; queryConteudoRecibo.Close; queryConteudoRecibo.SQL.Text := 'delete from SYS_CONTEUDO_RECIBO'; queryConteudoRecibo.ExecSQL; end; dtmSystem.tblConteudoRecibo.Open; for i := 0 to lv_titulos.Items.Count - 1 do begin if lv_titulos.Items[i].Checked then begin quant_titulos := quant_titulos + 1; end; end; entrada_credvista := 0; { variáveis novas } t_juros := 0; t_multa := 0; t_encargos := 0; t_desc := 0; t_desc_prin := 0; t_cor := 0; { variáveis novas } for i := 0 to lv_titulos.Items.Count - 1 do begin if lv_titulos.Items[i].Checked then begin queryListaTitulos.RecNo := i + 1; obs_despesas := obs_despesas + queryListaTitulosTX_DESPESA.AsString; with lv_prevtitulos.Items.Add do begin Caption := queryListaTitulos.FieldByName('TX_PRODUTO').AsString; SubItems.Add(CurrToStrF(queryListaTitulos.FieldByName('VL_TITULO') .AsCurrency, ffCurrency, 2, dtmSystem.CusFmt)); SubItems.Add (CurrToStrF(queryListaTitulos.FieldByName('VL_CORRIGIDO') .AsCurrency, ffCurrency, 2, dtmSystem.CusFmt)); { variáveis novas } t_juros := t_juros + queryListaTitulosVL_JUROS.AsCurrency - queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency - queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency; t_multa := t_multa + queryListaTitulosVL_MULTA.AsCurrency - queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency - queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency; t_encargos := t_encargos + queryListaTitulosVL_INDICADOR.AsCurrency - queryListaTitulosVL_DESC_QUIT_IND.AsCurrency - queryListaTitulosVL_DESC_PAR_IND.AsCurrency; t_desc_prin := t_desc_prin + queryListaTitulosVL_DESC_QUIT_PRIN. AsCurrency + queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency; t_desc := t_desc + queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency + queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency; t_cor := t_cor + queryListaTitulosVL_CORRIGIDO.AsCurrency { variáveis novas } end; if (forma_pagamento = 'Q') or (parcelas_pagamento = 2) then begin if index_pagamento = 3 then begin dtmSystem.tblPrCartao.Locate('NR_PARCELA', 1, []); // entrada_credvista := // (((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, // length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) + // ((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, // length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) * // (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100))) - // (StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, // length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])))) / // quant_titulos; entrada_credvista := (((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) + ((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) * (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100))) - (StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])))) / quant_titulos; end; dtmSystem.tblConteudoRecibo.Append; dtmSystem.tblConteudoReciboTX_NOME.AsString := queryListaTitulosTX_PRODUTO.AsString; dtmSystem.tblConteudoReciboVL_PRINCIPAL.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_TITULO.AsCurrency)); dtmSystem.tblConteudoReciboVL_JUROS.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_JUROS.AsCurrency)); dtmSystem.tblConteudoReciboVL_MULTA.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_MULTA.AsCurrency)); dtmSystem.tblConteudoReciboVL_ENCARGOS.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_INDICADOR.AsCurrency)); dtmSystem.tblConteudoReciboVL_DESCONTOS.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_QUIT_IND.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency)); if (index_pagamento = 1) and (parcelas_pagamento = 2) then begin dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_CORRIGIDO.AsCurrency)) + queryListaTitulosVL_ENTRADA.AsCurrency * (dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100); end else begin if index_pagamento = 3 then begin dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_CORRIGIDO.AsCurrency)) + entrada_credvista; end else begin dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_CORRIGIDO.AsCurrency)); end; if (parcelas_pagamento = 2) then begin dtmSystem.tblConteudoReciboVL_DESCONTOS.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_PAR_IND.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency)); end; end; // dtmSystem.tblConteudoReciboVL_DESPESA.AsCurrency := // StrToCurr(formatfloat('0.##', // queryListaTitulosVL_DESPESA.AsCurrency)); // dtmSystem.tblConteudoReciboTX_DEPESA.AsString := // queryListaTitulosTX_DESPESA.AsString; if (index_pagamento = 1) and (parcelas_pagamento = 2) then begin dtmSystem.tblConteudoReciboVL_EXTRAS.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_INDICES.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_EXTRAS.AsCurrency)) + queryListaTitulosVL_ENTRADA.AsCurrency * (dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100) + entrada_credvista; end else begin dtmSystem.tblConteudoReciboVL_EXTRAS.AsCurrency := StrToCurr(formatfloat('0.##', queryListaTitulosVL_INDICES.AsCurrency)) + StrToCurr(formatfloat('0.##', queryListaTitulosVL_EXTRAS.AsCurrency)) + entrada_credvista; end; dtmSystem.tblConteudoReciboDT_VENCIMENTO.AsDateTime := queryListaTitulosDT_VENCIMENTO.AsDateTime; dtmSystem.tblConteudoRecibo.Post; end; end; end; // if cbx_txextra.Checked then // begin // dtmSystem.tblConteudoRecibo.Append; // dtmSystem.tblConteudoReciboTX_NOME.AsString := 'Taxa de Pagamento'; // dtmSystem.tblConteudoReciboVL_PRINCIPAL.AsCurrency := // StrToCurr(edt_txextra.Text); // dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := // StrToCurr(edt_txextra.Text); // dtmSystem.tblConteudoRecibo.Post; // end; lv_prevtitulos.Columns[1].Alignment := TAlignment.taRightJustify; lv_prevtitulos.Columns[2].Alignment := TAlignment.taRightJustify; if (forma_pagamento = 'Q') or (parcelas_pagamento = 2) then begin lv_fechamento.Visible := false; lbl_dpagamento.Visible := false; somatotal := 0; if somatotal <> 0 then begin edt_vltotal.Text := CurrToStrF(somatotal, ffCurrency, 2, dtmSystem.CusFmt); end else begin edt_vltotal.Text := edt_vlaquitar.Text; end; end; if (forma_pagamento = 'P') then begin lv_fechamento.Visible := true; lbl_dpagamento.Visible := true; somatotal := 0; entrada_helper := 0; for j := 0 to strtoint(edt_nrparcelas.Text) do begin with lv_fechamento.Items.Add do begin // if parcelas_pagamento <> 2 then // begin if j = 0 then begin Caption := 'Entrada'; if index_pagamento = 1 then begin entrada_helper := StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])); SubItems.Add (CurrToStrF(entrada_helper + (entrada_helper * (dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100)), ffCurrency, 2, dtmSystem.CusFmt)); somatotal := somatotal + entrada_helper + (entrada_helper * (dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100)); end else begin if index_pagamento = 3 then begin dtmSystem.tblPrCartao.Locate('NR_PARCELA', 1, []); entrada_helper := StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])); // SubItems.Add // (CurrToStrF(entrada_helper + (entrada_helper * // (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100)), // ffCurrency, 2, dtmSystem.CusFmt)); // somatotal := somatotal + entrada_helper + // (entrada_helper * // (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100)); SubItems.Add (CurrToStrF(entrada_helper + (entrada_helper * (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100)), ffCurrency, 2, dtmSystem.CusFmt)); somatotal := somatotal + entrada_helper + (entrada_helper * (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100)); end else begin SubItems.Add(edt_somaentrada.Text); somatotal := somatotal + (StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))); end; end; SubItems.Add(DateToStr(data_parcelas[0])); end else begin if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) = 0.00 then begin Caption := 'Parcela nº ' + inttostr(j) + '/' + edt_nrparcelas.Text; SubItems.Add(CurrToStrF(parcelamento[j - 1], ffCurrency, 2, dtmSystem.CusFmt)); SubItems.Add(DateToStr(data_parcelas[j - 1])); somatotal := somatotal + parcelamento[j - 1]; end else begin Caption := 'Parcela nº ' + inttostr(j) + '/' + edt_nrparcelas.Text; SubItems.Add(CurrToStrF(parcelamento[j - 1], ffCurrency, 2, dtmSystem.CusFmt)); SubItems.Add(DateToStr(data_parcelas[j])); somatotal := somatotal + parcelamento[j - 1]; end; end; end; end; if somatotal <> 0 then begin edt_vltotal.Text := CurrToStrF(somatotal, ffCurrency, 2, dtmSystem.CusFmt); end else begin edt_vltotal.Text := edt_vlaquitar.Text; end; if (parcelas_pagamento <> 2) then begin { variáveis novas } // if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, // length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) <> 0.00 // then // begin // p_juros := p_juros / (lv_fechamento.Items.Count); // p_multa := p_multa / (lv_fechamento.Items.Count); // p_encargos := p_encargos / (lv_fechamento.Items.Count); // p_desc := p_desc / (lv_fechamento.Items.Count); // end // else // begin // p_juros := p_juros / (lv_fechamento.Items.Count - 1); // p_multa := p_multa / (lv_fechamento.Items.Count - 1); // p_encargos := p_encargos / (lv_fechamento.Items.Count - 1); // p_desc := p_desc / (lv_fechamento.Items.Count - 1); // end; { variáveis novas } for p := 0 to lv_fechamento.Items.Count - 1 do begin if p = 0 then begin if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) <> 0.00 then begin dtmSystem.tblConteudoRecibo.Append; dtmSystem.tblConteudoReciboTX_NOME.AsString := 'Entrada'; if index_pagamento = 1 then begin vl_helper := StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])); p_juros := (vl_helper * t_juros) / t_cor; p_multa := (vl_helper * t_multa) / t_cor; p_encargos := (vl_helper * t_encargos) / t_cor; p_desc := (vl_helper * t_desc_prin) / t_cor; dtmSystem.tblConteudoReciboVL_PRINCIPAL.AsCurrency := vl_helper { variáveis novas } - p_juros - p_multa - p_encargos + p_desc { variáveis novas }; dtmSystem.tblConteudoReciboVL_EXTRAS.AsCurrency := (vl_helper * (dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100)); dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := vl_helper + (vl_helper * (dtmSystem.tblEmpresaPR_DEBITO.AsFloat / 100)); end else begin if index_pagamento = 3 then begin vl_helper := StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])); p_juros := (vl_helper * t_juros) / t_cor; p_multa := (vl_helper * t_multa) / t_cor; p_encargos := (vl_helper * t_encargos) / t_cor; p_desc := (vl_helper * t_desc_prin) / t_cor; dtmSystem.tblConteudoReciboVL_PRINCIPAL.AsCurrency := vl_helper { variáveis novas } - p_juros - p_multa - p_encargos + p_desc { variáveis novas }; dtmSystem.tblPrCartao.Locate('NR_PARCELA', 1, []); // dtmSystem.tblConteudoReciboVL_EXTRAS.AsCurrency := // (vl_helper * // (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100)); // dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := // vl_helper + // (vl_helper * // (dtmSystem.tblEmpresaPR_CREDVISTA.AsFloat / 100)); dtmSystem.tblConteudoReciboVL_EXTRAS.AsCurrency := (vl_helper * (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100)); dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := vl_helper + (vl_helper * (dtmSystem.tblPrCartaoPR_JUROS.AsFloat / 100)); end else begin vl_helper := StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])); p_juros := (vl_helper * t_juros) / t_cor; p_multa := (vl_helper * t_multa) / t_cor; p_encargos := (vl_helper * t_encargos) / t_cor; p_desc := (vl_helper * t_desc_prin) / t_cor; dtmSystem.tblConteudoReciboVL_PRINCIPAL.AsCurrency := vl_helper { variáveis novas } - p_juros - p_multa - p_encargos + p_desc { variáveis novas }; dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := vl_helper; end; end; dtmSystem.tblConteudoReciboDT_VENCIMENTO.AsDateTime := StrToDate(FormatDateTime('dd/mm/yyyy', data_parcelas[0])); { variáveis novas } dtmSystem.tblConteudoReciboVL_JUROS.AsCurrency := p_juros; dtmSystem.tblConteudoReciboVL_MULTA.AsCurrency := p_multa; dtmSystem.tblConteudoReciboVL_ENCARGOS.AsCurrency := p_encargos; dtmSystem.tblConteudoReciboVL_DESCONTOS.AsCurrency := p_desc; { variáveis novas } dtmSystem.tblConteudoRecibo.Post; end; end else begin case parcelas_pagamento of 3: // cheque begin dtmSystem.tblConteudoRecibo.Append; dtmSystem.tblConteudoReciboTX_NOME.AsString := lv_fechamento.Items[p].Caption; vl_helper := StrToCurr(stringreplace (copy(lv_fechamento.Items[p].SubItems[0], 4, length(lv_fechamento.Items[p].SubItems[0]) - 3), '.', '', [rfReplaceAll])); p_juros := (vl_helper * t_juros) / t_cor; p_multa := (vl_helper * t_multa) / t_cor; p_encargos := (vl_helper * t_encargos) / t_cor; p_desc := (vl_helper * t_desc_prin) / t_cor; dtmSystem.tblConteudoReciboVL_PRINCIPAL.AsCurrency := vl_helper { variáveis novas } - p_juros - p_multa - p_encargos + p_desc { variáveis novas }; dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := vl_helper; if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll] )) = 0.0 then begin dtmSystem.tblConteudoReciboDT_VENCIMENTO.AsDateTime := StrToDate(FormatDateTime('dd/mm/yyyy', data_parcelas[p - 1])); end else begin dtmSystem.tblConteudoReciboDT_VENCIMENTO.AsDateTime := StrToDate(FormatDateTime('dd/mm/yyyy', data_parcelas[p])); end; { variáveis novas } dtmSystem.tblConteudoReciboVL_JUROS.AsCurrency := p_juros; dtmSystem.tblConteudoReciboVL_MULTA.AsCurrency := p_multa; dtmSystem.tblConteudoReciboVL_ENCARGOS.AsCurrency := p_encargos; dtmSystem.tblConteudoReciboVL_DESCONTOS.AsCurrency := p_desc; { variáveis novas } dtmSystem.tblConteudoRecibo.Post; end; 2: // parcelas no crédito begin dtmSystem.tblConteudoRecibo.Append; dtmSystem.tblConteudoReciboTX_NOME.AsString := lv_fechamento.Items[p].Caption; vl_helper := StrToCurr(stringreplace (copy(lv_fechamento.Items[p].SubItems[0], 4, length(lv_fechamento.Items[p].SubItems[0]) - 3), '.', '', [rfReplaceAll])); dtmSystem.tblConteudoReciboVL_PRINCIPAL.AsCurrency := vl_helper; dtmSystem.tblConteudoReciboVL_CORRIGIDO.AsCurrency := vl_helper; if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll] )) = 0.0 then begin dtmSystem.tblConteudoReciboDT_VENCIMENTO.AsDateTime := StrToDate(FormatDateTime('dd/mm/yyyy', data_parcelas[p - 1])); end else begin dtmSystem.tblConteudoReciboDT_VENCIMENTO.AsDateTime := StrToDate(FormatDateTime('dd/mm/yyyy', data_parcelas[p])); end; dtmSystem.tblConteudoRecibo.Post; end; end; end; end; if somatotal <> 0 then begin edt_vltotal.Text := CurrToStrF(somatotal, ffCurrency, 2, dtmSystem.CusFmt); end else begin edt_vltotal.Text := edt_vlaquitar.Text; end; end; end; end; end; fez_recibo := false; end; procedure TfrmAtendimento.btn_pesquisarClick(Sender: TObject); var string_query, tx_pesquisa, help_cpfcnpj: string; begin try if edt_campop.Text <> '' then begin tx_pesquisa := Ansiuppercase(stringreplace(edt_campop.Text, ' ', '%', [rfReplaceAll])); string_query := 'select tx_nome, tx_pai, tx_mae, case when TP_CLIENTE = ''F'' ' + 'then CD_CPF when TP_CLIENTE = ''J'' then CD_CNPJ end as TX_DOCUMENTO from chg_devedores where '; case cbx_tiponome.ItemIndex of 0: begin string_query := string_query + 'upper(TX_NOME COLLATE WIN_PTBR) LIKE ' + QuotedStr(tx_pesquisa + '%') + ' ORDER BY TX_NOME '; end; 1: begin string_query := string_query + 'upper(TX_PAI) LIKE ' + QuotedStr(tx_pesquisa + '%') + ' ORDER BY TX_NOME '; end; 2: begin string_query := string_query + 'upper(TX_MAE) LIKE ' + QuotedStr(tx_pesquisa + '%') + ' ORDER BY TX_NOME '; end; 3: begin tx_pesquisa := stringreplace(tx_pesquisa, '.', '', [rfReplaceAll]); tx_pesquisa := stringreplace(tx_pesquisa, '-', '', [rfReplaceAll]); tx_pesquisa := stringreplace(tx_pesquisa, '/', '', [rfReplaceAll]); if length(tx_pesquisa) < 14 then begin help_cpfcnpj := copy(tx_pesquisa, 1, 3) + '.' + copy(tx_pesquisa, 4, 3) + '.' + copy(tx_pesquisa, 7, 3) + '-' + RightStr(tx_pesquisa, 2); string_query := string_query + 'CD_CPF like ' + QuotedStr(help_cpfcnpj) + ' order by tx_nome '; end else if length(tx_pesquisa) >= 14 then begin help_cpfcnpj := copy(tx_pesquisa, 1, 2) + '.' + copy(tx_pesquisa, 3, 3) + '.' + copy(tx_pesquisa, 6, 3) + '/' + copy(tx_pesquisa, 9, 4) + '-' + RightStr(tx_pesquisa, 2); string_query := string_query + 'CD_CNPJ like ' + QuotedStr(help_cpfcnpj) + ' order by tx_nome '; end; end; 4: begin string_query := string_query + 'ID_DEVEDOR in (select id_devedor from chg_titulos where cd_devedor like ' + QuotedStr('%' + tx_pesquisa + '%') + ')'; end; 5: begin if copy(tx_pesquisa, 1, 1) <> '(' then begin tx_pesquisa := '(' + tx_pesquisa; end; if copy(tx_pesquisa, 4, 1) <> ')' then begin tx_pesquisa := copy(tx_pesquisa, 1, 3) + ')' + copy(tx_pesquisa, 4, 15); end; if copy(tx_pesquisa, 9, 1) <> '-' then begin tx_pesquisa := copy(tx_pesquisa, 1, 8) + '-' + copy(tx_pesquisa, 9, 15); end; if (length(tx_pesquisa) < 13) or (length(tx_pesquisa) > 14) then begin Messagedlg('Número de telefone inválido.', mtWarning, [mbok], 0); exit; end; string_query := string_query + 'ID_DEVEDOR in (SELECT ID_DEVEDOR FROM CHG_TELEFONES WHERE NR_NUMERO like ' + QuotedStr(tx_pesquisa) + ')'; end; end; end; with qryPesquisa do begin Close; SQL.Text := string_query; Open; end; dbgrd_pesquisar.Columns[0].FieldName := 'tx_nome'; dbgrd_pesquisar.Columns[0].Title.Caption := 'Nome do Devedor'; dbgrd_pesquisar.Columns[1].FieldName := 'tx_pai'; dbgrd_pesquisar.Columns[1].Title.Caption := 'Nome do Pai'; dbgrd_pesquisar.Columns[2].FieldName := 'tx_mae'; dbgrd_pesquisar.Columns[2].Title.Caption := 'Nome da Mãe'; except end; end; procedure TfrmAtendimento.btn_protocoloClick(Sender: TObject); begin if edt_protocolo.Text = '' then begin edt_protocolo.Text := dtmSystem.gerarProtocolo (dtmSystem.tblDevedoresID_DEVEDOR.AsString); edt_protocolo1.Text := edt_protocolo.Text; btn_protocolo.Enabled := false; end; end; procedure TfrmAtendimento.btn_verprotocoloClick(Sender: TObject); begin // CarregaProtocolo; end; procedure TfrmAtendimento.btn_verrecibosClick(Sender: TObject); var old_nr: Integer; tot: double; begin Screen.Cursor := crHourGlass; with dtmSystem do begin tot := 0; log_recibo := TStringList.Create; if not(FileExists(ExtractFilePath(Application.ExeName) + 'log_recibo' + inttostr(dtmSystem.id_usuario) + '.txt')) then begin log_recibo.Add('###############'); log_recibo.Add(DateTimeToStr(Now)); end else begin log_recibo.LoadFromFile(ExtractFilePath(Application.ExeName) + 'log_recibo' + inttostr(dtmSystem.id_usuario) + '.txt'); log_recibo.Add('###############'); log_recibo.Add(DateTimeToStr(Now)); end; if not tblRecibo.Active then begin tblRecibo.Open; log_recibo.Add('Open na tabela'); end else begin tblRecibo.Refresh; log_recibo.Add('Refresh na tabela'); end; tblRecibo.Last; log_recibo.Add('Last na tabela'); old_nr := tblReciboNR_RECIBO.AsInteger; log_recibo.Add('Nº do último recibo: ' + tblReciboNR_RECIBO.AsString); tblConteudoRecibo.Open; if tblConteudoRecibo.IsEmpty then begin Messagedlg('Não há recibos a serem gerados atualmente.', mtWarning, [mbok], 0); end else begin tblConteudoRecibo.Filtered := false; tblConteudoRecibo.RecNo := 1; while not tblConteudoRecibo.Eof do begin tot := tot + tblConteudoReciboVL_CORRIGIDO.AsCurrency; tblConteudoRecibo.Next; end; tblConteudoRecibo.RecNo := 1; // zroqryRecibos.SQL.Clear; // zroqryRecibos.SQL.Text := 'select * from sys_recibos'; // zroqryRecibos.Open; // if zroqryRecibos.RecordCount = 0 then // begin // tblRecibo.Append; // tblReciboNR_RECIBO.AsString := '000001'; // tblReciboTX_NOME.AsString := 'temp'; // tblRecibo.Post; // end; // if not zroqryRecibos.Locate('TX_NOME', 'temp', []) then // begin // zroqryRecibos.SQL.Clear; // zroqryRecibos.SQL.Text := // 'select nr_recibo from sys_recibos where id_recibo = (select MAX(id_recibo) from sys_recibos)'; // zroqryRecibos.Open; // end; zroqryRecibos.Open; zroqryRecibos.Refresh; // old_nr := zroqryRecibos.FieldByName('NR_RECIBO').AsInteger; if (forma_pagamento = 'Q') or (parcelas_pagamento = 2) then begin { if tblReciboTX_NOME.AsString <> 'temp' then begin } // nr_recibo := Format('%.*d', [6, old_nr + 1]); nr_recibo := Format('%.*d', [6, seqRecibos.GetCurrentValue + 1]); log_recibo.Add('Nº do novo recibo: ' + nr_recibo); tblRecibo.Append; tblReciboDT_IMPRESSAO.AsDateTime := Date; tblReciboTX_CPF.AsString := tblDevedoresCD_CPF.AsString; tblReciboTX_CNPJ.AsString := tblDevedoresCD_CNPJ.AsString; tblReciboNR_RECIBO.AsString := nr_recibo; tblReciboTX_NOME.AsString := dtsDevedores.DataSet.FieldByName('TX_NOME') .AsString + '- Quitação'; // tblRecibo.Post; // new_nr := tblReciboID_RECIBO.AsInteger; // tblRecibo.RecNo := tblRecibo.RecordCount; { end else begin tblRecibo.Edit; tblReciboDT_IMPRESSAO.AsDateTime := Date; tblReciboTX_CPF.AsString := tblDevedoresCD_CPF.AsString; tblReciboTX_CNPJ.AsString := tblDevedoresCD_CNPJ.AsString; tblReciboTX_NOME.AsString := dtsDevedores.DataSet.FieldByName ('TX_NOME').AsString + '- Quitação'; tblRecibo.Post; new_nr := tblReciboID_RECIBO.AsInteger; end; } // tblRecibo.Filter := 'ID_RECIBO = ' + inttostr(tblRecibo.RecNo); { tblRecibo.Filter := 'ID_RECIBO = ' + inttostr(new_nr); tblRecibo.Filtered := true; id_recibo := tblReciboNR_RECIBO.AsString; tblRecibo.Edit; } tblReciboID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger; tblReciboVL_TOTAL.AsCurrency := StrToCurr(stringreplace(copy(edt_vltotal.Text, 4, length(edt_vltotal.Text) - 3), '.', '', [rfReplaceAll])); while not(tblConteudoRecibo.Eof) do begin tblReciboVL_PRINCIPAL.AsCurrency := tblReciboVL_PRINCIPAL.AsCurrency + tblConteudoReciboVL_PRINCIPAL.AsCurrency; tblReciboVL_JUROS.AsCurrency := tblReciboVL_JUROS.AsCurrency + tblConteudoReciboVL_JUROS.AsCurrency; tblReciboVL_MULTA.AsCurrency := tblReciboVL_MULTA.AsCurrency + tblConteudoReciboVL_MULTA.AsCurrency; tblReciboVL_ENCARGOS.AsCurrency := tblReciboVL_ENCARGOS.AsCurrency + tblConteudoReciboVL_ENCARGOS.AsCurrency; tblReciboVL_DESCONTOS.AsCurrency := tblReciboVL_DESCONTOS.AsCurrency + tblConteudoReciboVL_DESCONTOS.AsCurrency; tblReciboVL_CORRIGIDO.AsCurrency := tblReciboVL_CORRIGIDO.AsCurrency + tblConteudoReciboVL_CORRIGIDO.AsCurrency; tblConteudoRecibo.Next; end; if index_pagamento = 2 then begin tblReciboTP_RECEBIMENTO.AsInteger := 3; end else begin tblReciboTP_RECEBIMENTO.AsInteger := index_pagamento; end; tblReciboID_USUARIO.AsInteger := id_usuario; tblRecibo.Post; relRecibo := TrelRecibo.Create(self); with relRecibo do begin nr_recibo_print := dtmSystem.tblReciboNR_RECIBO.AsString; frlbl_nr_reciboprimeiravia.Caption := nr_recibo_print; frlbl_nr_recibosegundavia.Caption := nr_recibo_print; if dtsDevedor.DataSet.FieldByName('CD_CPF').AsString = '' then begin frdblbl_cpf.Text := ' CPNJ: '; frdblbl_cpf.DataField := 'CD_CNPJ'; frdblbl_cpf2v.Text := ' CPNJ: '; frdblbl_cpf2v.DataField := 'CD_CNPJ'; end; dtmSystem.tblCHGEmpresa.Locate('ID_EMPRESA', id_emp, []); frlbl_empresatit.Caption := frlbl_empresatit.Caption + dtmSystem.tblCHGEmpresaTX_NOME.AsString + ' '; frlbl_empresatit2v.Caption := frlbl_empresatit2v.Caption + dtmSystem.tblCHGEmpresaTX_NOME.AsString + ' '; frdblbl_nome.left := frlbl_recebemos.left + frlbl_recebemos.Width + 5; frdblbl_nome2v.left := frdblbl_nome.left; frlbl_valortot.Caption := frlbl_valortot.Caption + CurrToStrF(tot, ffCurrency, 2); frlbl_valortot2v.Caption := frlbl_valortot.Caption; frlbl_vlextenso.left := frlbl_valortot.Width + 5; frlbl_vlextenso2v.left := frlbl_vlextenso.left; frlbl_dtpag.Caption := frlbl_dtpag.Caption + DateToStr(dtp_atrasorecalc.Date); frlbl_dtpag2v.Caption := frlbl_dtpag2v.Caption + DateToStr(dtp_atrasorecalc.Date); frlbl_vlextenso.Caption := '(' + valorPorExtenso(tot) + ')'; frlbl_vlextenso2v.Caption := frlbl_vlextenso.Caption; frlbl_formarecebimento.Caption := frlbl_formarecebimento.Caption + edt_formarecebimento.Text; frlbl_formarecebimento2v.Caption := frlbl_formarecebimento.Caption; if mem_obsrecibo.Lines.Text <> '' then begin fr_membobs.Lines.Add('Observações: ' + mem_obsrecibo.Lines.Text); fr_membobs2v.Lines.Add('Observações: ' + mem_obsrecibo.Lines.Text); end; if index_pagamento = 2 then begin frpnl_cheque.Visible := true; frpnl_cheque2v.Visible := true; if edt_nrchequerecibo.Text <> '' then begin frlbl_nrcheque.Caption := frlbl_nrcheque.Caption + edt_nrchequerecibo.Text; frlbl_nrcheque2v.Caption := frlbl_nrcheque.Caption; end; if edt_bancorecibo.Text <> '' then begin frlbl_banco.Caption := frlbl_banco.Caption + edt_bancorecibo.Text; frlbl_banco2v.Caption := frlbl_banco.Caption; end; if edt_pracarecibo.Text <> '' then begin frlbl_praca.Caption := frlbl_praca.Caption + edt_pracarecibo.Text; frlbl_praca2v.Caption := frlbl_praca.Caption; end; end; dtmSystem.tblEstados.Locate('ID_ESTADO', dtmSystem.tblEmpresaID_ESTADO.AsString, []); dtmSystem.tblCidades.Locate('ID_CIDADE', dtmSystem.tblEmpresaID_CIDADE.AsString, []); frlbl_headerbot.Caption := UpperCase(dtmSystem.tblEmpresaTX_ENDERECO.AsString + ' ' + dtmSystem.tblEmpresaNR_NUMERO.AsString + ' ' + dtmSystem.tblEmpresaTX_COMPLEMENTO.AsString + ' - ' + dtmSystem.tblEmpresaTX_BAIRRO.AsString + ' - ' + dtmSystem.tblCidadesTX_NOME.AsString + ' - ' + dtmSystem.tblEstadosTX_SIGLA.AsString + ' - TEL: ' + dtmSystem.tblEmpresaTX_TELEFONE.AsString); frlbl_headerbot2v.Caption := frlbl_headerbot.Caption; frlbl_headertop.Caption := UpperCase(dtmSystem.tblEmpresaTX_TITULO.AsString + ' - CNPJ: ' + dtmSystem.tblEmpresaTX_CNPJ.AsString); frlbl_headertop2v.Caption := frlbl_headertop.Caption; if frdbimg_logo.Picture.Height > frdbimg_logo.Picture.Width then begin frpnl_logo.Height := 100; frpnl_logo.Width := 75; frpnl_logo2v.Height := 100; frpnl_logo2v.Width := 75; end; if frdbimg_logo.Picture.Height < frdbimg_logo.Picture.Width then begin frpnl_logo.Height := 75; frpnl_logo.Width := 100; frpnl_logo2v.Height := 75; frpnl_logo2v.Width := 100; end; if frdbimg_logo.Picture.Height = frdbimg_logo.Picture.Width then begin frpnl_logo.Height := 100; frpnl_logo.Width := 100; frpnl_logo2v.Height := 100; frpnl_logo2v.Width := 100; end; Screen.Cursor := crDefault; frRecibo.PreviewModal; end; end else begin // if tipo_parcelamento = 'P' then // begin // if tblReciboTX_NOME.AsString <> 'temp' then // begin // tblRecibo.Append; // tblReciboDT_IMPRESSAO.AsDateTime := Date; // tblReciboTX_CPF.AsString := tblDevedoresCD_CPF.AsString; // tblReciboTX_CNPJ.AsString := tblDevedoresCD_CNPJ.AsString; // // tblReciboNR_RECIBO.AsString := // // Format('%.*d', [6, strtoint(old_nr) + 1]); // tblReciboNR_RECIBO.AsString := Format('%.*d', [6, old_nr + 1]); // tblReciboTX_NOME.AsString := dtsDevedores.DataSet.FieldByName // ('TX_NOME').AsString + '- Parcelamento'; // tblRecibo.Post; // // tblRecibo.RecNo := tblRecibo.RecordCount; // new_nr := tblReciboID_RECIBO.AsInteger; // end // else // begin // tblRecibo.Edit; // tblReciboDT_IMPRESSAO.AsDateTime := Date; // tblReciboTX_CPF.AsString := tblDevedoresCD_CPF.AsString; // tblReciboTX_CNPJ.AsString := tblDevedoresCD_CNPJ.AsString; // tblReciboTX_NOME.AsString := dtsDevedores.DataSet.FieldByName // ('TX_NOME').AsString + '- Parcelamento'; // tblRecibo.Post; // new_nr := tblReciboID_RECIBO.AsInteger; // end; // end // else // begin // if tblReciboTX_NOME.AsString <> 'temp' then // begin tblRecibo.Append; tblReciboDT_IMPRESSAO.AsDateTime := Date; tblReciboTX_CPF.AsString := tblDevedoresCD_CPF.AsString; tblReciboTX_CNPJ.AsString := tblDevedoresCD_CNPJ.AsString; // tblReciboNR_RECIBO.AsString := // Format('%.*d', [6, strtoint(old_nr) + 1]); // nr_recibo := Format('%.*d', [6, old_nr + 1]); nr_recibo := Format('%.*d', [6, seqRecibos.GetCurrentValue + 1]); log_recibo.Add('Nº do novo recibo: ' + nr_recibo); tblReciboNR_RECIBO.AsString := nr_recibo; tblReciboTX_NOME.AsString := dtsDevedores.DataSet.FieldByName('TX_NOME') .AsString + '- Financiamento'; // tblRecibo.Post; // new_nr := tblReciboID_RECIBO.AsInteger; // tblRecibo.RecNo := tblRecibo.RecordCount; // end // else // begin // tblRecibo.Edit; // tblReciboDT_IMPRESSAO.AsDateTime := Date; // tblReciboTX_CPF.AsString := tblDevedoresCD_CPF.AsString; // tblReciboTX_CNPJ.AsString := tblDevedoresCD_CNPJ.AsString; // tblReciboTX_NOME.AsString := dtsDevedores.DataSet.FieldByName // ('TX_NOME').AsString + '- Financiamento'; // tblRecibo.Post; // new_nr := tblReciboID_RECIBO.AsInteger; // end; // end; // tblRecibo.Edit; tblReciboID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger; tblReciboVL_TOTAL.AsCurrency := StrToCurr(stringreplace(copy(edt_vltotal.Text, 4, length(edt_vltotal.Text) - 3), '.', '', [rfReplaceAll])); while not tblConteudoRecibo.Eof do begin tblReciboVL_PRINCIPAL.AsCurrency := tblReciboVL_PRINCIPAL.AsCurrency + tblConteudoReciboVL_PRINCIPAL.AsCurrency; tblReciboVL_JUROS.AsCurrency := tblReciboVL_JUROS.AsCurrency + tblConteudoReciboVL_JUROS.AsCurrency; tblReciboVL_MULTA.AsCurrency := tblReciboVL_MULTA.AsCurrency + tblConteudoReciboVL_MULTA.AsCurrency; tblReciboVL_ENCARGOS.AsCurrency := tblReciboVL_ENCARGOS.AsCurrency + tblConteudoReciboVL_ENCARGOS.AsCurrency; tblReciboVL_DESCONTOS.AsCurrency := tblReciboVL_DESCONTOS.AsCurrency + tblConteudoReciboVL_DESCONTOS.AsCurrency; tblReciboVL_CORRIGIDO.AsCurrency := tblReciboVL_CORRIGIDO.AsCurrency + tblConteudoReciboVL_CORRIGIDO.AsCurrency; tblConteudoRecibo.Next; end; if index_pagamento = 2 then begin tblReciboTP_RECEBIMENTO.AsInteger := 3; end else begin tblReciboTP_RECEBIMENTO.AsInteger := index_pagamento; end; tblReciboID_USUARIO.AsInteger := id_usuario; tblRecibo.Post; if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) <> -1 then begin // tblRecibo.Filter := 'ID_RECIBO = ' + recibos_parcelas[i]; // tblRecibo.Filtered := true; { tblConteudoRecibo.Filter := 'ID_CONTEUDO = ' + inttostr(i + 1); tblConteudoRecibo.Filtered := true; } // id_recibo := tblReciboNR_RECIBO.AsString; relRecibo := TrelRecibo.Create(self); with relRecibo do begin nr_recibo_print := dtmSystem.tblReciboNR_RECIBO.AsString; frlbl_nr_reciboprimeiravia.Caption := nr_recibo_print; frlbl_nr_recibosegundavia.Caption := nr_recibo_print; if dtsDevedor.DataSet.FieldByName('CD_CPF').AsString = '' then begin frdblbl_cpf.Text := ' CPNJ: '; frdblbl_cpf.DataField := 'CD_CNPJ'; frdblbl_cpf2v.Text := ' CPNJ: '; frdblbl_cpf2v.DataField := 'CD_CNPJ'; end; if acordo_fora then begin dtmSystem.tblCHGEmpresa.Locate('ID_EMPRESA', acordo_emp, []); end else begin dtmSystem.tblCHGEmpresa.Locate('ID_EMPRESA', id_emp, []); end; frlbl_empresatit.Caption := frlbl_empresatit.Caption + dtmSystem.tblCHGEmpresaTX_NOME.AsString + ' '; frlbl_empresatit2v.Caption := frlbl_empresatit2v.Caption + dtmSystem.tblCHGEmpresaTX_NOME.AsString + ' '; frdblbl_nome.left := frlbl_recebemos.left + frlbl_recebemos.Width + 5; frdblbl_nome2v.left := frdblbl_nome.left; // frdblbl_cpf.left := frdblbl_nome.left + frdblbl_nome.Width + 10; // frdblbl_cpf2v.left := frdblbl_cpf.left; // frlbl_valortot.Caption := frlbl_valortot.Caption + edt_vltotal.Text; frlbl_valortot.Caption := frlbl_valortot.Caption + CurrToStrF(tot, ffCurrency, 2); frlbl_valortot2v.Caption := frlbl_valortot.Caption; frlbl_vlextenso.left := frlbl_valortot.Width + 5; frlbl_vlextenso2v.left := frlbl_vlextenso.left; // frlbl_vlextenso.Caption := '(' + // valorPorExtenso(strtofloat(copy(stringreplace(edt_vltotal.Text, '.', // '', []), 4, length(edt_vltotal.Text) - 3))) + ')'; frlbl_vlextenso.Caption := '(' + valorPorExtenso(tot) + ')'; frlbl_vlextenso2v.Caption := frlbl_vlextenso.Caption; frlbl_formarecebimento.Caption := frlbl_formarecebimento.Caption + edt_formarecebimento.Text; frlbl_dtpag.Caption := frlbl_dtpag.Caption + DateToStr(dtp_atrasorecalc.Date); frlbl_dtpag2v.Caption := frlbl_dtpag2v.Caption + DateToStr(dtp_atrasorecalc.Date); frlbl_formarecebimento2v.Caption := frlbl_formarecebimento.Caption; // fr_membobs.Lines.Clear; // fr_membobs2v.Lines.Clear; if cbx_despesas.Checked then begin if mem_obsrecibo.Lines.Text <> '' then begin fr_membobs.Lines.Add('Observações: ' + obs_despesas + ' ' + mem_obsrecibo.Lines.Text); fr_membobs2v.Lines.Add('Observações: ' + obs_despesas + ' ' + mem_obsrecibo.Lines.Text); end; end else begin if mem_obsrecibo.Lines.Text <> '' then begin fr_membobs.Lines.Add('Observações: ' + mem_obsrecibo.Lines.Text); fr_membobs2v.Lines.Add('Observações: ' + mem_obsrecibo.Lines.Text); end; end; if index_pagamento = 3 then begin frpnl_cheque.Visible := true; // frlbl_obscheque.Visible := true; frpnl_cheque2v.Visible := true; // frlbl_obscheque2v.Visible := true; if edt_nrchequerecibo.Text <> '' then begin frlbl_nrcheque.Caption := frlbl_nrcheque.Caption + edt_nrchequerecibo.Text; frlbl_nrcheque2v.Caption := frlbl_nrcheque.Caption; end; if edt_bancorecibo.Text <> '' then begin frlbl_banco.Caption := frlbl_banco.Caption + edt_bancorecibo.Text; frlbl_banco2v.Caption := frlbl_banco.Caption; end; if edt_pracarecibo.Text <> '' then begin frlbl_praca.Caption := frlbl_praca.Caption + edt_pracarecibo.Text; frlbl_praca2v.Caption := frlbl_praca.Caption; end; end; dtmSystem.tblEstados.Locate('ID_ESTADO', dtmSystem.tblEmpresaID_ESTADO.AsString, []); dtmSystem.tblCidades.Locate('ID_CIDADE', dtmSystem.tblEmpresaID_CIDADE.AsString, []); frlbl_headerbot.Caption := UpperCase(dtmSystem.tblEmpresaTX_ENDERECO.AsString + ' ' + dtmSystem.tblEmpresaNR_NUMERO.AsString + ' ' + dtmSystem.tblEmpresaTX_COMPLEMENTO.AsString + ' - ' + dtmSystem.tblEmpresaTX_BAIRRO.AsString + ' - ' + dtmSystem.tblCidadesTX_NOME.AsString + ' - ' + dtmSystem.tblEstadosTX_SIGLA.AsString + ' - TEL: ' + dtmSystem.tblEmpresaTX_TELEFONE.AsString); frlbl_headerbot2v.Caption := frlbl_headerbot.Caption; frlbl_headertop.Caption := UpperCase(dtmSystem.tblEmpresaTX_TITULO.AsString + ' - CNPJ: ' + dtmSystem.tblEmpresaTX_CNPJ.AsString); frlbl_headertop2v.Caption := frlbl_headertop.Caption; if frdbimg_logo.Picture.Height > frdbimg_logo.Picture.Width then begin frpnl_logo.Height := 100; frpnl_logo.Width := 75; frpnl_logo2v.Height := 100; frpnl_logo2v.Width := 75; end; if frdbimg_logo.Picture.Height < frdbimg_logo.Picture.Width then begin frpnl_logo.Height := 75; frpnl_logo.Width := 100; frpnl_logo2v.Height := 75; frpnl_logo2v.Width := 100; end; if frdbimg_logo.Picture.Height = frdbimg_logo.Picture.Width then begin frpnl_logo.Height := 100; frpnl_logo.Width := 100; frpnl_logo2v.Height := 100; frpnl_logo2v.Width := 100; end; Screen.Cursor := crDefault; frRecibo.PreviewModal; end; end; if parcelas_pagamento = 4 then begin // OpenOfficeDocument(ExtractFilePath(Application.ExeName) + 'ACORDOS\' + // 'teste.docx'); OpenOfficeDocument(dtmSystem.path_executavel + '\ACORDOS\' + 'teste.docx'); end; end; log_recibo.Add('Close na tabela.'); tblRecibo.Close; fez_recibo := true; end; end; log_recibo.SaveToFile(ExtractFilePath(Application.ExeName) + 'log_recibo' + inttostr(dtmSystem.id_usuario) + '.txt'); btn_concluir.Enabled := true; btn_verrecibos.Enabled := false; if FileExists(ExtractFilePath(Application.ExeName) + '000001.pdf') then begin Showmessage('Erro ao gerar recibo. Por favor contate o suporte.'); end; Screen.Cursor := crDefault; end; procedure TfrmAtendimento.btn_acordoinClick(Sender: TObject); begin Screen.Cursor := crHourGlass; // OpenOfficeDocument(ExtractFilePath(Application.ExeName) + 'ACORDOS\' + // 'acordo_financ.doc'); OpenOfficeDocument(dtmSystem.path_executavel + '\ACORDOS\' + 'acordo_financ.doc'); Screen.Cursor := crDefault; btn_verrecibos.Enabled := true; end; procedure TfrmAtendimento.btn_acordooutClick(Sender: TObject); var strFolder: string; begin // strFolder := ExtractFilePath(Application.ExeName) + 'ACORDOS'; strFolder := dtmSystem.path_executavel + '\ACORDOS'; if not DirectoryExists(strFolder) then begin CreateDir(strFolder); end; ShellExecute(Application.Handle, PChar('explore'), PChar(strFolder), nil, nil, SW_SHOWNORMAL); btn_verrecibos.Enabled := true; end; procedure TfrmAtendimento.btn_amostraClick(Sender: TObject); var // i: Integer; // id_titulos: string; // nao_select: Boolean; 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) 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 := 'atendimento'; 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 TfrmAtendimento.btn_closeClick(Sender: TObject); begin Close; end; procedure TfrmAtendimento.btn_concluirClick(Sender: TObject); var i, j, ç, id_acordo, id_histo, Count, atraso, cont, atraso_original, cont_rep, h: Integer; string_helper, id_titulos, str_titulos, vencs, mes, ano: string; ent_help: double; { variáveis novas } ac_pr, ac_j, ac_m, ac_enc, ac_cor, hac_pr, hac_j, hac_m, hac_enc, hac_cor: array of currency; help_pr, help_j, help_m, help_enc, help_cor, p_juros, p_multa, p_encargos, p_desc, rep_prin, rep_jur, rep_mul, rep_enc, rep_cor, vl_pr, vl_j, vl_m, vl_enc, vl_cor, vl_desc, pr_pr, pr_j, pr_m, pr_enc, pr_cor, help_rep_cor, cor_antigo { variáveis novas } : currency; l: Integer; error_criar_titulo: Boolean; a: double; begin if not cdsTitulos.Active then begin cdsTitulos.Open; while not cdsTitulos.IsEmpty do begin cdsTitulos.Delete; end; end; if not cdsParcelas.Active then begin cdsParcelas.Open; while not cdsParcelas.IsEmpty do begin cdsParcelas.Delete; end; end; string_helper := ''; str_titulos := ''; vencs := ''; if not dtmSystem.tblProvidencias.Active then begin dtmSystem.tblProvidencias.Open; end; if edt_prov.Text = '' then begin Messagedlg('Por favor selecione uma providência.', mtWarning, [mbok], 0); abort; end; if dblucb_agatend.KeyValue < 1 then begin Messagedlg('Por favor selecione um cobrador para ser agendado.', mtWarning, [mbok], 0); abort; end else begin if Messagedlg ('Por favor verifique corretamente a data, hora e o cobrador do agendamento antes de realizá-lo.' + ' Deseja continuar?', mtWarning, [mbYes, mbNo], 0) = mrNo then begin abort; end; end; Screen.Cursor := crHourGlass; Messagedlg('Este processo pode demorar. Por favor aguarde.', mtWarning, [mbok], 0); Application.ProcessMessages; btn_protocolo.Enabled := true; dtmSystem.tblProvidencias.Locate('TX_NOME', edt_prov.Text, []); pb_atendimento.Position := 0; lbl_processo.Caption := 'Baixando Títulos...'; if (forma_pagamento = 'Q') or (parcelas_pagamento = 2) then begin if index_pagamento = 3 then begin try dtmSystem.tblPrCartao.Locate('NR_PARCELA', 1, []); // ent_help := // (((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, // length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) + // ((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, // length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) * // (dtmSystem.tblEmpresaPR_BANCO_CREDVISTA.AsFloat / 100))) - // (StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, // length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])))) / // quant_titulos; ent_help := (((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) + ((StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll]))) * (dtmSystem.tblPrCartaoPR_REPASSE.AsFloat / 100))) - (StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])))) / quant_titulos; ent_help := entrada_credvista - ent_help; except ent_help := 0; end; end else begin ent_help := 0; end; pb_atendimento.Step := Ceil(100 / quant_titulos); Count := 0; for i := 0 to lv_titulos.Items.Count - 1 do begin Application.ProcessMessages; if lv_titulos.Items[i].Checked then begin lbl_processo.Caption := 'Baixando Títulos... Título ' + inttostr(Count + 1); // string_helper := ''; queryListaTitulos.RecNo := i + 1; str_titulos := str_titulos + queryListaTitulosID_TITULO.AsString + ';'; with dtmSystem do begin Inc(Count, 1); tblTitulos.Locate('ID_TITULO', queryListaTitulosID_TITULO.AsInteger, []); GuardaTitulos; tblTitulos.Edit; tblTitulosTP_PRESTACAO.AsString := 'N'; if tblTitulosTP_SITUACAO.AsString = 'AC' then // arrumei aqui ########################## begin tblAcordos.Open; tblAcordos.Filtered := false; tblAcordos.Filter := 'ID_PARCELA = ' + tblTitulosID_TITULO.AsString; tblAcordos.Filtered := true; help_rep_cor := 0; cont_rep := 0; setlength(ac_pr, tblAcordos.RecordCount); setlength(ac_j, tblAcordos.RecordCount); setlength(ac_m, tblAcordos.RecordCount); setlength(ac_enc, tblAcordos.RecordCount); setlength(ac_cor, tblAcordos.RecordCount); tblAcordos.First; while not tblAcordos.Eof do begin zroqryHelpRepasse.SQL.Text := 'select * from chg_titulos where id_titulo = ' + tblAcordosID_ORIGINAL.AsString; zroqryHelpRepasse.Open; help_rep_cor := help_rep_cor + zroqryHelpRepasse.FieldByName ('VL_CORRIGIDO').AsCurrency; atraso_original := DaysBetween(zroqryHelpRepasse.FieldByName('DT_PAGAMENTO') .AsDateTime, zroqryHelpRepasse.FieldByName('DT_VENCIMENTO') .AsDateTime); mes := inttostr (strtoint(copy(FormatDateTime('yyyy-mm-dd', zroqryHelpRepasse.FieldByName('DT_PAGAMENTO') .AsDateTime), 6, 2))); ano := copy(FormatDateTime('yyyy-mm-dd', zroqryHelpRepasse.FieldByName('DT_PAGAMENTO') .AsDateTime), 1, 4); // tblCHGEmpresa.Locate('ID_EMPRESA', // zroqryHelpRepasse.FieldByName('ID_EMPRESA').AsInteger, []); tblCHGEmpresa.Locate('ID_EMPRESA', tblTitulosID_EMPRESA.AsInteger, []); tblEmpresaRepasse.Locate('ID_MES;ID_ANO', VarArrayOf([mes, ano]), []); rotblRepasseFase.Close; rotblRepasseFase.SQL.Text := 'select * from sys_repasses_fases where id_repasse = ' + QuotedStr(tblEmpresaRepasseID_ITEM.AsString) + ' and min_atraso <= ' + inttostr(atraso_original) + ' and ' + inttostr(atraso_original) + ' <= max_atraso'; rotblRepasseFase.Open; if not rotblRepasseFase.IsEmpty then begin ac_pr[cont_rep] := (rotblRepasseFasePR_PRINCIPAL.AsCurrency / 100); ac_j[cont_rep] := (rotblRepasseFasePR_JUROS.AsCurrency / 100); ac_m[cont_rep] := (rotblRepasseFasePR_MULTA.AsCurrency / 100); ac_enc[cont_rep] := (rotblRepasseFasePR_ENCARGOS.AsCurrency / 100); ac_cor[cont_rep] := (rotblRepasseFasePR_CORRIGIDO.AsCurrency / 100); end else begin ac_pr[cont_rep] := (dtmSystem.tblEmpresaRepassePR_PRINCIPAL.AsCurrency / 100); ac_j[cont_rep] := (dtmSystem.tblEmpresaRepassePR_JUROS.AsCurrency / 100); ac_m[cont_rep] := (dtmSystem.tblEmpresaRepassePR_MULTA.AsCurrency / 100); ac_enc[cont_rep] := (dtmSystem.tblEmpresaRepassePR_ENCARGOS.AsCurrency / 100); ac_cor[cont_rep] := (dtmSystem.tblEmpresaRepassePR_CORRIGIDO.AsCurrency / 100); end; Inc(cont_rep, 1); Application.ProcessMessages; tblAcordos.Next; end; tblAcordos.First; cont_rep := 0; help_pr := 0; help_j := 0; help_m := 0; help_enc := 0; help_cor := 0; while not tblAcordos.Eof do begin zroqryHelpRepasse.SQL.Text := 'select * from chg_titulos where id_titulo = ' + tblAcordosID_ORIGINAL.AsString; zroqryHelpRepasse.Open; help_pr := help_pr + ((((zroqryHelpRepasse.FieldByName('VL_CORRIGIDO').AsCurrency * 100) / help_rep_cor) * ac_pr[cont_rep] / 100)); help_j := help_j + ((((zroqryHelpRepasse.FieldByName('VL_CORRIGIDO').AsCurrency * 100) / help_rep_cor) * ac_j[cont_rep] / 100)); help_m := help_m + ((((zroqryHelpRepasse.FieldByName('VL_CORRIGIDO').AsCurrency * 100) / help_rep_cor) * ac_m[cont_rep] / 100)); help_enc := help_enc + ((((zroqryHelpRepasse.FieldByName('VL_CORRIGIDO').AsCurrency * 100) / help_rep_cor) * ac_enc[cont_rep] / 100)); help_cor := help_cor + ((((zroqryHelpRepasse.FieldByName('VL_CORRIGIDO').AsCurrency * 100) / help_rep_cor) * ac_cor[cont_rep] / 100)); Inc(cont_rep, 1); Application.ProcessMessages; tblAcordos.Next; end; tblTitulosVL_MULTA.AsCurrency := tblTitulosVL_MULTA.AsCurrency + queryListaTitulosVL_MULTA.AsCurrency - (queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency); tblTitulosVL_DESC_MULTA.AsCurrency := tblTitulosVL_DESC_MULTA.AsCurrency + (queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency); tblTitulosVL_INDICADOR.AsCurrency := tblTitulosVL_INDICADOR.AsCurrency + queryListaTitulosVL_INDICADOR.AsCurrency - (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); tblTitulosVL_DESC_INDICADOR.AsCurrency := tblTitulosVL_DESC_INDICADOR.AsCurrency + (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); tblTitulosVL_JUROS.AsCurrency := tblTitulosVL_JUROS.AsCurrency + queryListaTitulosVL_JUROS.AsCurrency - (queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency); tblTitulosVL_DESC_JUROS.AsCurrency := tblTitulosVL_DESC_JUROS.AsCurrency + (queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency); tblTitulosVL_DESC_PRINCIPAL.AsCurrency := tblTitulosVL_DESC_PRINCIPAL.AsCurrency + queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency + queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency; tblTitulosVL_ENCARGOS.AsCurrency := tblTitulosVL_ENCARGOS.AsCurrency + queryListaTitulosVL_INDICADOR.AsCurrency + // queryListaTitulosVL_RETIRADA_TAXA.AsCurrency + ent_help - (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); cor_antigo := tblTitulosVL_CORRIGIDO.AsCurrency; if index_pagamento = 3 then begin tblTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency + ent_help; end else begin tblTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency; end; { tblTitulosVL_TITULO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - tblTitulosVL_MULTA.AsCurrency - tblTitulosVL_JUROS.AsCurrency - tblTitulosVL_ENCARGOS.AsCurrency; } // AQUI tblTitulosVL_REPASSE_PRIN.AsCurrency := tblTitulosVL_REPASSE_PRIN.AsCurrency + ((tblTitulosVL_TITULO.AsCurrency - tblTitulosVL_DESC_PRINCIPAL.AsCurrency) * (help_pr)); tblTitulosVL_REPASSE_JUROS.AsCurrency := tblTitulosVL_REPASSE_JUROS.AsCurrency + ((queryListaTitulosVL_JUROS.AsCurrency - (queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency)) * (help_j)); tblTitulosVL_REPASSE_MULTA.AsCurrency := tblTitulosVL_REPASSE_MULTA.AsCurrency + ((queryListaTitulosVL_MULTA.AsCurrency - (queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency)) * (help_m)); tblTitulosVL_REPASSE_ENCARGOS.AsCurrency := tblTitulosVL_REPASSE_ENCARGOS.AsCurrency + ((queryListaTitulosVL_INDICADOR.AsCurrency + // queryListaTitulosVL_RETIRADA_TAXA.AsCurrency + ent_help - (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency)) * (help_enc)); tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency := tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency + ((tblTitulosVL_CORRIGIDO.AsCurrency - cor_antigo) * (help_cor)); if index_pagamento = 3 then begin tblTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency + ent_help; end else begin tblTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency; end; if parcelas_pagamento = 2 then begin if dateof(dtp_atrasorecalc.Date) <> dateof(Date) then begin tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end else begin tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end; end else begin // if index_pagamento <> 3 then // begin if index_pagamento <> 2 then begin if dateof(dtp_atrasorecalc.Date) <> dateof(Date) then begin tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end else begin tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end; end else begin if dateof(dtp_atrasorecalc.Date) <> dateof(Date) then begin tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); end; end; end; end else begin tblTitulosVL_MULTA.AsCurrency := queryListaTitulosVL_MULTA.AsCurrency - (queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency); tblTitulosVL_DESC_MULTA.AsCurrency := (queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency); tblTitulosVL_INDICADOR.AsCurrency := queryListaTitulosVL_INDICADOR.AsCurrency - (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); tblTitulosVL_DESC_INDICADOR.AsCurrency := (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); tblTitulosVL_JUROS.AsCurrency := queryListaTitulosVL_JUROS.AsCurrency - (queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency); tblTitulosVL_DESC_JUROS.AsCurrency := (queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency); tblTitulosVL_DESC_PRINCIPAL.AsCurrency := queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency + queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency; tblTitulosVL_ENCARGOS.AsCurrency := queryListaTitulosVL_INDICADOR.AsCurrency + // queryListaTitulosVL_RETIRADA_TAXA.AsCurrency + ent_help - (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); if index_pagamento = 3 then begin tblTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency + ent_help; end else begin tblTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency; end; if parcelas_pagamento = 2 then begin if dateof(dtp_atrasorecalc.Date) <> dateof(Date) then begin tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end else begin tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end; end else begin // if index_pagamento <> 3 then // begin if index_pagamento <> 2 then begin if dateof(dtp_atrasorecalc.Date) <> dateof(Date) then begin tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end else begin tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end; end else begin if dateof(dtp_atrasorecalc.Date) <> dateof(Date) then begin tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); end; end; end; atraso := DaysBetween(tblTitulosDT_PAGAMENTO.AsDateTime, tblTitulosDT_VENCIMENTO.AsDateTime); mes := inttostr(strtoint(copy(FormatDateTime('yyyy-mm-dd', tblTitulosDT_PAGAMENTO.AsDateTime), 6, 2))); ano := copy(FormatDateTime('yyyy-mm-dd', tblTitulosDT_PAGAMENTO.AsDateTime), 1, 4); tblEmpresaRepasse.Locate('ID_MES;ID_ANO', VarArrayOf([mes, ano]), []); rotblRepasseFase.Close; rotblRepasseFase.SQL.Text := 'select * from sys_repasses_fases where id_repasse = ' + QuotedStr(tblEmpresaRepasseID_ITEM.AsString) + ' and min_atraso <= ' + inttostr(atraso) + ' and ' + inttostr(atraso) + ' <= max_atraso'; rotblRepasseFase.Open; if not rotblRepasseFase.IsEmpty then begin help_pr := (rotblRepasseFasePR_PRINCIPAL.AsCurrency / 100); help_j := (rotblRepasseFasePR_JUROS.AsCurrency / 100); help_m := (rotblRepasseFasePR_MULTA.AsCurrency / 100); help_enc := (rotblRepasseFasePR_ENCARGOS.AsCurrency / 100); help_cor := (rotblRepasseFasePR_CORRIGIDO.AsCurrency / 100); end else begin help_pr := (dtmSystem.tblEmpresaRepassePR_PRINCIPAL.AsCurrency / 100); help_j := (dtmSystem.tblEmpresaRepassePR_JUROS.AsCurrency / 100); help_m := (dtmSystem.tblEmpresaRepassePR_MULTA.AsCurrency / 100); help_enc := (dtmSystem.tblEmpresaRepassePR_ENCARGOS.AsCurrency / 100); help_cor := (dtmSystem.tblEmpresaRepassePR_CORRIGIDO.AsCurrency / 100); end; tblTitulosVL_REPASSE_PRIN.AsCurrency := (tblTitulosVL_TITULO.AsCurrency - tblTitulosVL_DESC_PRINCIPAL.AsCurrency) * help_pr; tblTitulosVL_REPASSE_JUROS.AsCurrency := tblTitulosVL_JUROS.AsCurrency * help_j; tblTitulosVL_REPASSE_MULTA.AsCurrency := tblTitulosVL_MULTA.AsCurrency * help_m; tblTitulosVL_REPASSE_ENCARGOS.AsCurrency := tblTitulosVL_ENCARGOS.AsCurrency * help_enc; tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency := tblTitulosVL_CORRIGIDO.AsCurrency * help_cor; end; if parcelas_pagamento = 2 then begin tblTitulosTP_SITUACAO.AsString := 'QC'; end else begin if index_pagamento <> 2 then begin tblTitulosTP_SITUACAO.AsString := 'QC'; end else begin tblTitulosTP_SITUACAO.AsString := 'A'; end; end; // end; if multi_form_pag then begin tblTitulosTP_MOTIVO.AsString := 'Q'; end; if acordo_fora then begin tblCHGEmpresa.Locate('ID_EMPRESA', acordo_emp, []); end else begin tblCHGEmpresa.Locate('ID_EMPRESA', tblTitulosID_EMPRESA.AsInteger, []); end; tblTitulos.Post; if index_pagamento <> 3 then begin string_helper := string_helper + 'O título ' + tblTitulosTX_PRODUTO.AsString + ' - ' + tblTitulosCD_DEVEDOR.AsString + ' da empresa ' + tblCHGEmpresaTX_NOME.AsString + ', pertencente ao devedor ' + tblDevedoresTX_NOME.AsString + ' com vencimento original de ' + DateToStr(dateof(tblTitulosDT_VENCIMENTO.AsDateTime)) + ' foi quitado no dia ' + DateToStr(Date) + ' na empresa ' + tblEmpresaTX_NOME.AsString + '.' + sLineBreak + sLineBreak + 'Valor corrigido: ' + CurrToStrF(queryListaTitulosVL_CORRIGIDO.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.' + sLineBreak + sLineBreak + 'Valor nominal: ' + CurrToStrF(queryListaTitulosVL_TITULO.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.'; vencs := vencs + DateToStr(dateof(tblTitulosDT_VENCIMENTO.AsDateTime)) + sLineBreak; if cb_nmulta.Checked then begin string_helper := string_helper + sLineBreak + 'Não foi cobrado multa.'; end else begin string_helper := string_helper + sLineBreak + 'Valor da multa: ' + CurrToStrF(queryListaTitulosVL_MULTA.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.'; end; string_helper := string_helper + sLineBreak + 'Valor do juros: ' + CurrToStrF(queryListaTitulosVL_JUROS.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.' + sLineBreak + 'Valor de encargos: ' + // CurrToStrF(queryListaTitulosVL_INDICADOR.AsCurrency, ffCurrency, CurrToStrF(queryListaTitulosVL_INDICADOR.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.'; string_helper := string_helper + sLineBreak; end else begin string_helper := string_helper + 'Aguardando abate de cheque para baixa do título : ' + tblTitulosTX_PRODUTO.AsString + sLineBreak; end; end; end; Application.ProcessMessages; pb_atendimento.StepIt; end; lbl_processo.Caption := 'Títulos Baixados.'; if cbx_txextra.Checked then begin string_helper := string_helper + sLineBreak + 'Taxa de pagamento em múltiplas formas: ' + edt_txextra.Text; end; if cb_descquit.Checked then begin string_helper := string_helper + sLineBreak + 'Foi concedido descontos conforme a seguir:' + sLineBreak + 'Porcentagem sobre principal: ' + edt_principalquitar.Text + '%.' + sLineBreak + 'Porcentagem sobre multa: ' + edt_multasquitar.Text + '%.' + sLineBreak + 'Porcentagem sobre juros: ' + edt_jurosquitar.Text + '%.' + sLineBreak + 'Porcentagem sobre encargos: ' + edt_indquitar.Text + '%.' + sLineBreak + 'Porcentagem sobre corrigido: ' + edt_corquitar.Text + '%.'; end; string_helper := string_helper + sLineBreak + 'Forma de Pagamento: ' + cb_formapag.Text; string_helper := string_helper + sLineBreak + 'Recibo referente: ' + nr_recibo; string_helper := string_helper + sLineBreak + 'Vencimentos: '; string_helper := string_helper + sLineBreak + vencs; string_helper := string_helper + sLineBreak + 'Observações: ' + mem_obsrecibo.Lines.Text; // with dtmSystem do // begin // tblHistorico.Append; // tblHistoricoID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger; // tblHistoricoID_COBRADOR.AsInteger := dtmSystem.id_usuario; // tblHistoricoID_PROVIDENCIA.AsInteger := // tblProvidenciasID_PROVIDENCIA.AsInteger; // tblHistoricoDT_CONTATO.AsDateTime := Now; // tblHistoricoTL_MEMO.AsString := string_helper; // tblHistorico.Post; // id_histo := tblHistoricoID_HISTORICO.AsInteger; // end; end; if (forma_pagamento = 'P') and (not(parcelas_pagamento = 2)) then begin pb_atendimento.Step := floor(50 / quant_titulos); id_titulos := ''; id_acordo := dtmSystem.NovoCodigo('SYS_ACORDOS', 'ID_ACORDO'); { variáveis novas } // p_juros := 0; // p_multa := 0; // p_encargos := 0; // p_desc := 0; rep_prin := 0; rep_jur := 0; rep_mul := 0; rep_enc := 0; rep_cor := 0; cont := 0; vl_pr := 0; vl_j := 0; vl_m := 0; vl_enc := 0; vl_cor := 0; vl_desc := 0; pr_pr := 0; pr_j := 0; pr_m := 0; pr_enc := 0; pr_cor := 0; { variáveis novas } Count := 0; for i := 0 to lv_titulos.Items.Count - 1 do begin Application.ProcessMessages; if lv_titulos.Items[i].Checked then begin str_titulos := str_titulos + queryListaTitulosID_TITULO.AsString + ';'; queryListaTitulos.RecNo := i + 1; lbl_processo.Caption := 'Baixando Títulos... Título ' + inttostr(Count + 1); Inc(Count); with dtmSystem do begin tblTitulos.Locate('ID_TITULO', queryListaTitulosID_TITULO.AsInteger, []); GuardaTitulos; id_titulos := id_titulos + tblTitulosID_TITULO.AsString + ';'; tblTitulos.Edit; tblTitulosTP_PRESTACAO.AsString := 'N'; tblTitulosTP_SITUACAO.AsString := 'QC'; tblTitulosVL_MULTA.AsCurrency := queryListaTitulosVL_MULTA.AsCurrency - (queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency); tblTitulosVL_DESC_MULTA.AsCurrency := (queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency + queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency); tblTitulosVL_INDICADOR.AsCurrency := queryListaTitulosVL_INDICADOR.AsCurrency - (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); tblTitulosVL_DESC_INDICADOR.AsCurrency := (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); tblTitulosVL_JUROS.AsCurrency := queryListaTitulosVL_JUROS.AsCurrency - (queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency); tblTitulosVL_DESC_JUROS.AsCurrency := (queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency + queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency); tblTitulosVL_DESC_PRINCIPAL.AsCurrency := queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency + queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency; tblTitulosVL_ENCARGOS.AsCurrency := queryListaTitulosVL_INDICADOR.AsCurrency + // queryListaTitulosVL_RETIRADA_TAXA.AsCurrency + ent_help - (queryListaTitulosVL_DESC_QUIT_IND.AsCurrency + queryListaTitulosVL_DESC_PAR_IND.AsCurrency); tblTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency; tblTitulosQTDE_PARCELAS.AsInteger := strtoint(edt_nrparcelas.Text); // { variáveis novas } vl_pr := vl_pr + tblTitulosVL_TITULO.AsCurrency; vl_j := vl_j + tblTitulosVL_JUROS.AsCurrency; vl_m := vl_m + tblTitulosVL_MULTA.AsCurrency; vl_enc := vl_enc + tblTitulosVL_ENCARGOS.AsCurrency; vl_cor := vl_cor + tblTitulosVL_CORRIGIDO.AsCurrency; vl_desc := vl_desc + tblTitulosVL_DESC_PRINCIPAL.AsCurrency; // p_juros := p_juros + tblTitulosVL_JUROS.AsCurrency; // p_multa := p_multa + tblTitulosVL_MULTA.AsCurrency; // p_encargos := p_encargos + tblTitulosVL_ENCARGOS.AsCurrency; // p_desc := p_desc + tblTitulosVL_DESC_PRINCIPAL.AsCurrency; { variáveis novas } if multi_form_pag then begin tblTitulosTP_MOTIVO.AsString := 'Q'; end; tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); if acordo_fora then begin tblCHGEmpresa.Locate('ID_EMPRESA', acordo_emp, []); end else begin tblCHGEmpresa.Locate('ID_EMPRESA', tblTitulosID_EMPRESA.AsInteger, []); end; atraso := DaysBetween(tblTitulosDT_PAGAMENTO.AsDateTime, tblTitulosDT_VENCIMENTO.AsDateTime); mes := inttostr(strtoint(copy(FormatDateTime('yyyy-mm-dd', tblTitulosDT_PAGAMENTO.AsDateTime), 6, 2))); ano := copy(FormatDateTime('yyyy-mm-dd', tblTitulosDT_PAGAMENTO.AsDateTime), 1, 4); tblEmpresaRepasse.Locate('ID_MES;ID_ANO', VarArrayOf([mes, ano]), []); rotblRepasseFase.Close; rotblRepasseFase.SQL.Text := 'select * from sys_repasses_fases where id_repasse = ' + QuotedStr(tblEmpresaRepasseID_ITEM.AsString) + ' and min_atraso <= ' + inttostr(atraso) + ' and ' + inttostr(atraso) + ' <= max_atraso'; rotblRepasseFase.Open; if not rotblRepasseFase.IsEmpty then begin help_pr := (rotblRepasseFasePR_PRINCIPAL.AsCurrency / 100); help_j := (rotblRepasseFasePR_JUROS.AsCurrency / 100); help_m := (rotblRepasseFasePR_MULTA.AsCurrency / 100); help_enc := (rotblRepasseFasePR_ENCARGOS.AsCurrency / 100); help_cor := (rotblRepasseFasePR_CORRIGIDO.AsCurrency / 100); end else begin help_pr := (dtmSystem.tblEmpresaRepassePR_PRINCIPAL.AsCurrency / 100); help_j := (dtmSystem.tblEmpresaRepassePR_JUROS.AsCurrency / 100); help_m := (dtmSystem.tblEmpresaRepassePR_MULTA.AsCurrency / 100); help_enc := (dtmSystem.tblEmpresaRepassePR_ENCARGOS.AsCurrency / 100); help_cor := (dtmSystem.tblEmpresaRepassePR_CORRIGIDO.AsCurrency / 100); end; tblTitulosVL_REPASSE_PRIN.AsCurrency := (tblTitulosVL_TITULO.AsCurrency - tblTitulosVL_DESC_PRINCIPAL.AsCurrency) * help_pr; tblTitulosVL_REPASSE_JUROS.AsCurrency := tblTitulosVL_JUROS.AsCurrency * help_j; tblTitulosVL_REPASSE_MULTA.AsCurrency := tblTitulosVL_MULTA.AsCurrency * help_m; tblTitulosVL_REPASSE_ENCARGOS.AsCurrency := tblTitulosVL_ENCARGOS.AsCurrency * help_enc; tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency := tblTitulosVL_CORRIGIDO.AsCurrency * help_cor; // rep_prin := rep_prin + tblTitulosVL_REPASSE_PRIN.AsCurrency; // rep_jur := rep_jur + tblTitulosVL_REPASSE_JUROS.AsCurrency; // rep_mul := rep_mul + tblTitulosVL_REPASSE_MULTA.AsCurrency; // rep_enc := rep_enc + tblTitulosVL_REPASSE_ENCARGOS.AsCurrency; // rep_cor := rep_cor + tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency; tblTitulos.Post; string_helper := string_helper + 'O título ' + tblTitulosTX_PRODUTO.AsString + ' - ' + tblTitulosCD_DEVEDOR.AsString + ' da empresa ' + tblCHGEmpresaTX_NOME.AsString + ', pertencente ao devedor ' + tblDevedoresTX_NOME.AsString + ' com vencimento original de ' + DateToStr(dateof(tblTitulosDT_VENCIMENTO.AsDateTime)) + ' foi parcelado no dia ' + DateToStr(Date) + ' na empresa ' + tblEmpresaTX_NOME.AsString + '.'; if acordo_fora then begin string_helper := string_helper + sLineBreak + 'As parcelas foram vinculadas com a empresa ' + acordo_fantasia; end; string_helper := string_helper + sLineBreak + 'Valor corrigido: ' + CurrToStrF(queryListaTitulosVL_CORRIGIDO.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.' + sLineBreak + 'Valor nominal: ' + CurrToStrF(queryListaTitulosVL_TITULO.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.' + sLineBreak + 'Quantidade de parcelas: ' + edt_nrparcelas.Text + '.' + sLineBreak + 'Valor da entrada: ' + CurrToStrF(queryListaTitulosVL_ENTRADA.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.' + sLineBreak + 'Valor da parcela: ' + CurrToStrF(queryListaTitulosVL_PARCELA.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.'; vencs := vencs + DateToStr(dateof(tblTitulosDT_VENCIMENTO.AsDateTime)) + sLineBreak; if cb_nmulta.Checked then begin string_helper := string_helper + sLineBreak + 'Não foi cobrado multa.'; end else begin string_helper := string_helper + sLineBreak + 'Valor da multa: ' + CurrToStrF(queryListaTitulosVL_MULTA.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.'; end; string_helper := string_helper + sLineBreak + 'Valor do juros: ' + CurrToStrF(queryListaTitulosVL_JUROS.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.' + sLineBreak + 'Valor de encargos: ' + CurrToStrF(queryListaTitulosVL_INDICADOR.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '.'; string_helper := string_helper + sLineBreak; end; pb_atendimento.StepIt; end; end; for i := 0 to lv_titulos.Items.Count - 1 do begin Application.ProcessMessages; if lv_titulos.Items[i].Checked then begin queryListaTitulos.RecNo := i + 1; cont := cont + 1; setlength(ac_pr, cont); setlength(ac_j, cont); setlength(ac_m, cont); setlength(ac_enc, cont); setlength(ac_cor, cont); with dtmSystem do begin tblTitulos.Locate('ID_TITULO', queryListaTitulosID_TITULO.AsInteger, []); if acordo_fora then begin tblCHGEmpresa.Locate('ID_EMPRESA', acordo_emp, []); end else begin tblCHGEmpresa.Locate('ID_EMPRESA', tblTitulosID_EMPRESA.AsInteger, []); end; atraso := DaysBetween(tblTitulosDT_PAGAMENTO.AsDateTime, tblTitulosDT_VENCIMENTO.AsDateTime); mes := inttostr(strtoint(copy(FormatDateTime('yyyy-mm-dd', tblTitulosDT_PAGAMENTO.AsDateTime), 6, 2))); ano := copy(FormatDateTime('yyyy-mm-dd', tblTitulosDT_PAGAMENTO.AsDateTime), 1, 4); tblEmpresaRepasse.Locate('ID_MES;ID_ANO', VarArrayOf([mes, ano]), []); rotblRepasseFase.Close; rotblRepasseFase.SQL.Text := 'select * from sys_repasses_fases where id_repasse = ' + QuotedStr(tblEmpresaRepasseID_ITEM.AsString) + ' and min_atraso <= ' + inttostr(atraso) + ' and ' + inttostr(atraso) + ' <= max_atraso'; rotblRepasseFase.Open; if not rotblRepasseFase.IsEmpty then begin help_pr := (rotblRepasseFasePR_PRINCIPAL.AsCurrency / 100); help_j := (rotblRepasseFasePR_JUROS.AsCurrency / 100); help_m := (rotblRepasseFasePR_MULTA.AsCurrency / 100); help_enc := (rotblRepasseFasePR_ENCARGOS.AsCurrency / 100); help_cor := (rotblRepasseFasePR_CORRIGIDO.AsCurrency / 100); end else begin help_pr := (dtmSystem.tblEmpresaRepassePR_PRINCIPAL.AsCurrency / 100); help_j := (dtmSystem.tblEmpresaRepassePR_JUROS.AsCurrency / 100); help_m := (dtmSystem.tblEmpresaRepassePR_MULTA.AsCurrency / 100); help_enc := (dtmSystem.tblEmpresaRepassePR_ENCARGOS.AsCurrency / 100); help_cor := (dtmSystem.tblEmpresaRepassePR_CORRIGIDO.AsCurrency / 100); end; ac_pr[cont - 1] := tblTitulosVL_REPASSE_PRIN.AsCurrency; ac_j[cont - 1] := tblTitulosVL_REPASSE_JUROS.AsCurrency; ac_m[cont - 1] := tblTitulosVL_REPASSE_MULTA.AsCurrency; ac_enc[cont - 1] := tblTitulosVL_REPASSE_ENCARGOS.AsCurrency; ac_cor[cont - 1] := tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency; if vl_pr <> 0 then begin pr_pr := pr_pr + ((ac_pr[cont - 1] * 100) / vl_pr); end; if vl_j <> 0 then begin pr_j := pr_j + ((ac_j[cont - 1] * 100) / vl_j); end; if vl_m <> 0 then begin pr_m := pr_m + ((ac_m[cont - 1] * 100) / vl_m); end; if vl_enc <> 0 then begin pr_enc := pr_enc + ((ac_enc[cont - 1] * 100) / vl_enc); end; if vl_cor <> 0 then begin pr_cor := pr_cor + ((ac_cor[cont - 1] * 100) / vl_cor); end; end; end; end; if cbx_txextra.Checked then begin string_helper := string_helper + sLineBreak + 'Taxa de pagamento em múltiplas formas: ' + edt_txextra.Text; end; if cb_descpar.Checked then begin string_helper := string_helper + sLineBreak + 'Foi concedido descontos conforme a seguir:' + sLineBreak + 'Porcentagem sobre principal: ' + edt_principalparcelas.Text + '%.' + sLineBreak + 'Porcentagem sobre multa: ' + edt_multasparcelas.Text + '%.' + sLineBreak + 'Porcentagem sobre juros: ' + edt_jurosparcelas.Text + '%.' + sLineBreak + 'Porcentagem sobre encargos: ' + edt_indparcelas.Text + '%.' + sLineBreak + 'Porcentagem sobre corrigido: ' + edt_corpar.Text + '%.'; end; string_helper := string_helper + sLineBreak + 'Forma de Pagamento: ' + cb_formapag.Text; string_helper := string_helper + sLineBreak + 'Recibo referente: ' + nr_recibo; string_helper := string_helper + sLineBreak + 'Vencimentos: '; string_helper := string_helper + sLineBreak + vencs; string_helper := string_helper + sLineBreak + 'Observações: ' + mem_obsrecibo.Lines.Text; // with dtmSystem do // begin // tblHistorico.Append; // tblHistoricoID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger; // tblHistoricoID_COBRADOR.AsInteger := dtmSystem.id_usuario; // tblHistoricoID_PROVIDENCIA.AsInteger := // tblProvidenciasID_PROVIDENCIA.AsInteger; // tblHistoricoDT_CONTATO.AsDateTime := Now; // tblHistoricoTL_MEMO.AsString := string_helper; // tblHistorico.Post; // id_histo := tblHistoricoID_HISTORICO.AsInteger; // end; pb_atendimento.StepBy(50 - pb_atendimento.Position); lbl_processo.Caption := 'Criando Títulos do Financiamento...'; pb_atendimento.Step := Ceil(50 / lv_fechamento.Items.Count); { variáveis novas } { if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) <> 0.00 then begin p_juros := p_juros / lv_fechamento.Items.Count; p_multa := p_multa / lv_fechamento.Items.Count; p_encargos := p_encargos / lv_fechamento.Items.Count; p_desc := p_desc / lv_fechamento.Items.Count; // rep_prin := rep_prin / lv_fechamento.Items.Count; // rep_jur := rep_jur / lv_fechamento.Items.Count; // rep_mul := rep_mul / lv_fechamento.Items.Count; // rep_enc := rep_enc / lv_fechamento.Items.Count; // rep_cor := rep_cor / lv_fechamento.Items.Count; end else begin p_juros := p_juros / (lv_fechamento.Items.Count - 1); p_multa := p_multa / (lv_fechamento.Items.Count - 1); p_encargos := p_encargos / (lv_fechamento.Items.Count - 1); p_desc := p_desc / (lv_fechamento.Items.Count - 1); // rep_prin := rep_prin / (lv_fechamento.Items.Count - 1); // rep_jur := rep_jur / (lv_fechamento.Items.Count - 1); // rep_mul := rep_mul / (lv_fechamento.Items.Count - 1); // rep_enc := rep_enc / (lv_fechamento.Items.Count - 1); // rep_cor := rep_cor / (lv_fechamento.Items.Count - 1); end; } { variáveis novas } error_criar_titulo := false; for j := 0 to lv_fechamento.Items.Count - 1 do begin Application.ProcessMessages; try with dtmSystem do begin lbl_processo.Caption := 'Criando Títulos do Financiamento... Título ' + inttostr(j + 1) + ' de ' + inttostr(lv_fechamento.Items.Count); tblTitulos.Append; if (j = 0) and (StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) <> 0) then begin tblTitulosTX_PRODUTO.AsString := 'Entrada'; if acordo_fora then begin tblTitulosID_EMPRESA.AsInteger := acordo_emp; end else begin tblTitulosID_EMPRESA.AsInteger := id_emp; end; tblTitulosDT_VENCIMENTO.AsDateTime := Date; tblTitulosDT_ENTRADA.AsDateTime := Date; tblTitulosVL_TITULO.AsCurrency := StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) { variáveis novas } { - p_juros - p_multa - p_encargos + p_desc }{ variáveis novas }; tblTitulosVL_CORRIGIDO.AsCurrency := tblTitulosVL_TITULO.AsCurrency { variáveis novas } { + p_juros + p_multa + p_encargos - p_desc }{ variáveis novas }; if index_pagamento <> 2 then begin tblTitulosTP_SITUACAO.AsString := 'QC'; tblTitulosTP_PRESTACAO.AsString := 'N'; // tblTitulosVL_REPASSE_PRIN.AsCurrency := rep_prin; // tblTitulosVL_REPASSE_JUROS.AsCurrency := rep_jur; // tblTitulosVL_REPASSE_MULTA.AsCurrency := rep_mul; // tblTitulosVL_REPASSE_ENCARGOS.AsCurrency := rep_enc; // tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency := rep_cor - tblTitulosVL_CORRIGIDO.AsCurrency; // tblTitulosDT_PAGAMENTO.AsDateTime := dateof(Date); // tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); if dateof(dtp_atrasorecalc.Date) <> dateof(Date) then begin tblTitulosDT_EMISSAO_RECIBO.AsDateTime := dateof(Date); tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end else begin tblTitulosDT_PAGAMENTO.AsDateTime := dateof(dtp_atrasorecalc.Date); end; end else begin tblTitulosTP_SITUACAO.AsString := 'AC'; end; { variáveis novas } tblTitulosVL_JUROS.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_j) / vl_cor; tblTitulosVL_MULTA.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_m) / vl_cor; tblTitulosVL_ENCARGOS.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_enc) / vl_cor; tblTitulosVL_DESC_PRINCIPAL.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_desc) / vl_cor; tblTitulosVL_REPASSE_PRIN.AsCurrency := ((tblTitulosVL_TITULO.AsCurrency - tblTitulosVL_DESC_PRINCIPAL.AsCurrency) * pr_pr) / 100; tblTitulosVL_REPASSE_JUROS.AsCurrency := (tblTitulosVL_JUROS.AsCurrency * pr_j) / 100; tblTitulosVL_REPASSE_MULTA.AsCurrency := (tblTitulosVL_MULTA.AsCurrency * pr_m) / 100; tblTitulosVL_REPASSE_ENCARGOS.AsCurrency := (tblTitulosVL_ENCARGOS.AsCurrency * pr_enc) / 100; tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * pr_cor) / 100; // tblTitulosVL_JUROS.AsCurrency := p_juros; // tblTitulosVL_MULTA.AsCurrency := p_multa; // tblTitulosVL_ENCARGOS.AsCurrency := p_encargos; // tblTitulosVL_DESC_PRINCIPAL.AsCurrency := p_desc; { variáveis novas } end else begin tblTitulosTX_PRODUTO.AsString := 'Parcela nº ' + inttostr(j); if acordo_fora then begin tblTitulosID_EMPRESA.AsInteger := acordo_emp; end else begin tblTitulosID_EMPRESA.AsInteger := id_emp; end; tblTitulosDT_VENCIMENTO.AsDateTime := StrToDate(lv_fechamento.Items[j].SubItems[1]); tblTitulosDT_ENTRADA.AsDateTime := Date; tblTitulosVL_TITULO.AsCurrency := StrToCurr(stringreplace(copy(lv_fechamento.Items[j].SubItems[0], 4, length(lv_fechamento.Items[j].SubItems[1]) - 3), '.', '', [rfReplaceAll])) { variáveis novas } { - p_juros - p_multa - p_encargos + p_desc } { variáveis novas }; tblTitulosVL_CORRIGIDO.AsCurrency := tblTitulosVL_TITULO.AsCurrency { variáveis novas } { + p_juros + p_multa + p_encargos - p_desc } { variáveis novas }; // if parcelas_pagamento = 2 then // begin // tblTitulosTP_SITUACAO.AsString := 'QC'; // end // else // begin tblTitulosTP_SITUACAO.AsString := 'AC'; // end; end; tblTitulosTX_OBS.AsString := 'Títulos relacionados: ' + id_titulos; tblTitulosQTDE_PARCELAS.AsInteger := qtde_parcelas; { variáveis novas } tblTitulosVL_JUROS.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_j) / vl_cor; tblTitulosVL_MULTA.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_m) / vl_cor; tblTitulosVL_ENCARGOS.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_enc) / vl_cor; tblTitulosVL_DESC_PRINCIPAL.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * vl_desc) / vl_cor; tblTitulosVL_REPASSE_PRIN.AsCurrency := ((tblTitulosVL_TITULO.AsCurrency - tblTitulosVL_DESC_PRINCIPAL.AsCurrency) * pr_pr) / 100; tblTitulosVL_REPASSE_JUROS.AsCurrency := (tblTitulosVL_JUROS.AsCurrency * pr_j) / 100; tblTitulosVL_REPASSE_MULTA.AsCurrency := (tblTitulosVL_MULTA.AsCurrency * pr_m) / 100; tblTitulosVL_REPASSE_ENCARGOS.AsCurrency := (tblTitulosVL_ENCARGOS.AsCurrency * pr_enc) / 100; tblTitulosVL_REPASSE_CORRIGIDO.AsCurrency := (tblTitulosVL_CORRIGIDO.AsCurrency * pr_cor) / 100; // tblTitulosVL_JUROS.AsCurrency := p_juros; // tblTitulosVL_MULTA.AsCurrency := p_multa; // tblTitulosVL_ENCARGOS.AsCurrency := p_encargos; // tblTitulosVL_DESC_PRINCIPAL.AsCurrency := p_desc; { variáveis novas } if multi_form_pag then begin tblTitulosTP_MOTIVO.AsString := 'Q'; end; tblTitulos.Post; cdsParcelas.Append; cdsParcelasid_parcela.AsInteger := tblTitulosID_TITULO.AsInteger; cdsParcelas.Post; for ç := 0 to lv_titulos.Items.Count - 1 do begin if lv_titulos.Items[ç].Checked then begin queryListaTitulos.RecNo := ç + 1; tblAcordos.Append; tblAcordosID_ACORDO.AsInteger := id_acordo; tblAcordosID_PARCELA.AsInteger := tblTitulosID_TITULO.AsInteger; tblAcordosID_ORIGINAL.AsInteger := queryListaTitulosID_TITULO.AsInteger; tblAcordosID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger; tblAcordos.Post; Application.ProcessMessages; end; end; end; pb_atendimento.StepIt; Application.ProcessMessages; except on E: Exception do begin error_criar_titulo := true; Showmessage ('Houve um erro na criação dos títulos do financiamento. Voltando estado dos títulos para antes do acordo. ' + E.Message); lbl_processo.Caption := 'Quebrando acordo...'; while dtmSystem.tblAcordos.Locate('id_acordo', id_acordo, []) do begin dtmSystem.tblAcordos.Delete; Application.ProcessMessages; end; lbl_processo.Caption := 'Apagando títulos gerados do acordo...'; while not cdsParcelas.IsEmpty do begin Application.ProcessMessages; lbl_processo.Caption := 'Apagando títulos gerados do acordo... Parcelas Restantes: ' + inttostr(cdsParcelas.RecordCount); dtmSystem.tblTitulos.Locate('ID_TITULO', cdsParcelasid_parcela.AsInteger, []); dtmSystem.tblTitulos.Delete; cdsParcelas.Delete; end; cdsParcelas.Close; lbl_processo.Caption := 'Retornando Títulos aos seus estados originais...'; while not cdsTitulos.IsEmpty do begin Application.ProcessMessages; lbl_processo.Caption := 'Retornando Títulos aos seus estados originais... Títulos Restantes: ' + inttostr(cdsTitulos.RecordCount); dtmSystem.tblTitulos.Locate('ID_TITULO', cdsTitulosID_TITULO.AsInteger, []); dtmSystem.tblTitulos.Edit; for l := 1 to cdsTitulos.Fields.Count - 1 do begin dtmSystem.tblTitulos.FieldByName(cdsTitulos.Fields[l].FieldName) .AsVariant := cdsTitulos.Fields[l].AsVariant; end; dtmSystem.tblTitulos.Post; cdsTitulos.Delete; end; Showmessage('Processo terminado!'); Screen.Cursor := crDefault; lbl_processo.Caption := 'Processo revertido.'; end; end; end; end; if not error_criar_titulo then begin try with dtmSystem do begin tblCampanhaDevedores.Filtered := false; while tblCampanhaDevedores.Locate('ID_DEVEDOR', tblDevedoresID_DEVEDOR.AsInteger, []) do begin if tblCampanhaDevedoresTP_ESTADO.AsString = 'A' then begin tblCampanhaDevedores.Edit; tblCampanhaDevedoresTP_ESTADO.AsString := 'B'; tblCampanhaDevedores.Post; end; end; // tblCampanhaDevedores.Filtered := true; if not(tblAgenda.Active) then begin tblAgenda.Open; end; 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; Application.ProcessMessages; end; end; if not(dtmSystem.tblAgenda.Active) then begin dtmSystem.tblAgenda.Open; end; dtmSystem.tblAgenda.Append; dtmSystem.tblAgendaID_COBRADOR.AsInteger := dblucb_agatend.KeyValue; dtmSystem.tblAgendaID_DEVEDOR.AsInteger := dtmSystem.tblDevedoresID_DEVEDOR.AsInteger; dtmSystem.tblAgendaDT_AGENDADA.AsDateTime := dtp_agatend.Date; dtmSystem.tblAgendaHR_AGENDADA.AsDateTime := dtph_agatend.Time; dtmSystem.tblAgendaDT_QUE_AGENDOU.AsDateTime := Now; dtmSystem.tblAgendaQUEM_AGENDOU.AsInteger := dtmSystem.id_usuario; dtmSystem.tblAgenda.Post; string_helper := string_helper + sLineBreak + 'Agendado para: ' + dblucb_agatend.Text + sLineBreak + 'Dia: ' + DateToStr(dtp_agatend.Date) + sLineBreak + 'Hora: ' + TimeToStr(dtph_agatend.Time); except Messagedlg('Erro ao tentar gerar agendamento.', mtError, [mbok], 0); end; try with dtmSystem do begin tblHistorico.Append; tblHistoricoID_DEVEDOR.AsInteger := tblDevedoresID_DEVEDOR.AsInteger; tblHistoricoID_COBRADOR.AsInteger := dtmSystem.id_usuario; tblHistoricoID_PROVIDENCIA.AsInteger := tblProvidenciasID_PROVIDENCIA.AsInteger; tblHistoricoDT_CONTATO.AsDateTime := Now; tblHistoricoTL_MEMO.AsString := string_helper; tblHistorico.Post; end; except Messagedlg('Erro ao tentar gerar histórico.', mtError, [mbok], 0); end; // if dtmSystem.tblHistoricoID_HISTORICO.AsInteger <> id_histo then // begin // dtmSystem.tblHistorico.Locate('ID_HISTORICO', id_histo, []); // end; // dtmSystem.tblHistorico.Edit; // dtmSystem.tblHistoricoTL_MEMO.AsString := // dtmSystem.tblHistoricoTL_MEMO.AsString + sLineBreak + 'Agendado para: ' + // dblucb_agatend.Text + sLineBreak + 'Dia: ' + DateToStr(dtp_agatend.Date) + // sLineBreak + 'Hora: ' + TimeToStr(dtph_agatend.Time); // dtmSystem.tblHistorico.Post; // cb_agendaatend.Checked := false; // dtp_agatend.Enabled := false; dtp_agatend.Date := Date; // dtph_agatend.Enabled := false; dtph_agatend.Time := Now; // dblucb_agatend.Enabled := false; dblucb_agatend.KeyValue := 0; lbl_processo.Caption := 'Terminou!'; Screen.Cursor := crDefault; atendimento := 'atendendo'; pcDevedor.TabIndex := 0; btn_concluir.Enabled := false; edt_prov.Text := ''; Messagedlg('Processo terminado!', mtWarning, [mbok], 0); btn_verrecibos.Enabled := true; setlength(ids_tits_calc, 0); setlength(str_tit, 0); fez_recibo := false; // Close; end; end; procedure TfrmAtendimento.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; procedure TfrmAtendimento.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); 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 TfrmAtendimento.CarregaProtocolo; var qnt_titulos: Integer; i: Integer; list_titulos: TStringList; h: Integer; formapag: string; begin list_titulos := TStringList.Create; list_titulos.Clear; list_titulos.Delimiter := ';'; qnt_titulos := dtmSystem.tblProtocoloQNT_TITULOS.AsInteger; list_titulos.DelimitedText := dtmSystem.tblProtocoloID_TITULOS.AsString; queryListaTitulos.First; dtmSystem.tblCHGEmpresa.Locate('ID_EMPRESA', dtmSystem.tblProtocoloID_EMPRESA.AsInteger, []); for h := 0 to clb_beneficiarioscalculo.Items.Count - 1 do begin if clb_beneficiarioscalculo.Items[h] = dtmSystem.tblCHGEmpresaTX_NOME.AsString then begin clb_beneficiarioscalculo.Checked[h] := true; end; end; for i := 0 to qnt_titulos - 1 do begin while not queryListaTitulos.Eof do begin if list_titulos[i] = queryListaTitulosID_TITULO.AsString then begin lv_titulos.Items[queryListaTitulos.RecNo - 1].Checked := true; end; queryListaTitulos.Next; end; end; if dtmSystem.tblProtocoloTP_DESC_QUIT.AsString = 'S' then begin cb_descquit.Checked; cb_descquitClick(self); edt_indquitar.Text := dtmSystem.tblProtocoloPR_QUIT_INDICADOR.AsString; edt_jurosquitar.Text := dtmSystem.tblProtocoloPR_QUIT_JUROS.AsString; edt_multasquitar.Text := dtmSystem.tblProtocoloPR_QUIT_MULTA.AsString; edt_corquitar.Text := dtmSystem.tblProtocoloPR_QUIT_COR.AsString; edt_principalquitar.Text := dtmSystem.tblProtocoloPR_QUIT_PRINCIPAL.AsString; if dtmSystem.tblProtocoloTP_DESC_QUIT_COR.AsString = 'S' then begin cb_desc_quit_cor.Enabled := true; edt_corquitar.Text := dtmSystem.tblProtocoloPR_QUIT_COR.AsString; end; end; if dtmSystem.tblProtocoloTP_DESC_PAR.AsString = 'S' then begin cb_descpar.Checked; cb_descparClick(self); edt_indparcelas.Text := dtmSystem.tblProtocoloPR_PARCELAR_INDICADOR.AsString; edt_jurosparcelas.Text := dtmSystem.tblProtocoloPR_PARCELAR_JUROS.AsString; edt_multasparcelas.Text := dtmSystem.tblProtocoloPR_PARCELAR_MULTA.AsString; edt_corpar.Text := dtmSystem.tblProtocoloPR_PARCELAR_COR.AsString; edt_principalparcelas.Text := dtmSystem.tblProtocoloPR_PARCELAR_PRINCIPAL.AsString; if dtmSystem.tblProtocoloTP_DESC_PAR_COR.AsString = 'S' then begin cb_desc_par_cor.Enabled := true; edt_corpar.Text := dtmSystem.tblProtocoloPR_PARCELAR_COR.AsString; end; end; edt_prentrada.Text := formatfloat('#,00', dtmSystem.tblProtocoloPR_ENTRADA.AsFloat); if dtmSystem.tblProtocoloTP_PAG.AsString = 'DI' then begin formapag := 'Dinheiro'; end; if dtmSystem.tblProtocoloTP_PAG.AsString = 'CQ' then begin formapag := 'Cheque'; end; if dtmSystem.tblProtocoloTP_PAG.AsString = 'DB' then begin formapag := 'Débito'; end; if dtmSystem.tblProtocoloTP_PAG.AsString = 'CR' then begin formapag := 'Crédito'; end; cb_formapag.ItemIndex := cb_formapag.Items.IndexOf(formapag); CalcValorParcelas; Att_campos; end; } procedure TfrmAtendimento.cbx_acrfixoClick(Sender: TObject); begin Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.cbx_descfixoClick(Sender: TObject); begin Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.cbx_despesasClick(Sender: TObject); begin queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.cbx_excentradaClick(Sender: TObject); begin edt_excentrada.Enabled := cbx_excentrada.Enabled; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.cbx_exjurosparcelarClick(Sender: TObject); begin edt_excjurosparcela.Enabled := cbx_exjurosparcelar.Enabled; queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.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 TfrmAtendimento.cb_agendaatendClick(Sender: TObject); begin // dtp_agatend.Enabled := cb_agendaatend.Checked; // dtph_agatend.Enabled := cb_agendaatend.Checked; // dblucb_agatend.Enabled := cb_agendaatend.Checked; end; procedure TfrmAtendimento.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 TfrmAtendimento.cb_descindicesextrasChange(Sender: TObject); begin edt_descindextras.Text := desc_indices_extras[cb_descindicesextras.ItemIndex]; end; procedure TfrmAtendimento.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; queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.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; queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.cb_formapagChange(Sender: TObject); begin if (cb_formapag.ItemIndex = 1) then begin edt_nrparcelas.Text := '0'; // edt_nrparcelas.OnChange; end; queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.cb_nmultaClick(Sender: TObject); begin Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.ChecaPermissoes; begin with dtmSystem do begin navdevedor.Enabled := VerificarPermissao('CBR.01.03.01.01'); navEmail.Enabled := VerificarPermissao('CBR.01.03.01.06'); if not VerificarPermissao('CBR.01.03.01.06.01') then navEmail.VisibleButtons := navEmail.VisibleButtons - [nbInsert]; if not VerificarPermissao('CBR.01.03.01.06.02') then navEmail.VisibleButtons := navEmail.VisibleButtons - [nbEdit]; if not VerificarPermissao('CBR.01.03.01.06.03') then navEmail.VisibleButtons := navEmail.VisibleButtons - [nbDelete]; navenderecos.Enabled := VerificarPermissao('CBR.01.03.01.02'); if not VerificarPermissao('CBR.01.03.01.02.01') then navenderecos.VisibleButtons := navenderecos.VisibleButtons - [nbInsert]; if not VerificarPermissao('CBR.01.03.01.02.02') then navenderecos.VisibleButtons := navenderecos.VisibleButtons - [nbEdit]; if not VerificarPermissao('CBR.01.03.01.02.03') then navenderecos.VisibleButtons := navenderecos.VisibleButtons - [nbDelete]; navtelefones.Enabled := VerificarPermissao('CBR.01.03.01.03'); if not VerificarPermissao('CBR.01.03.01.03.01') then navtelefones.VisibleButtons := navtelefones.VisibleButtons - [nbInsert]; if not VerificarPermissao('CBR.01.03.01.03.02') then navtelefones.VisibleButtons := navtelefones.VisibleButtons - [nbEdit]; if not VerificarPermissao('CBR.01.03.01.03.03') then navtelefones.VisibleButtons := navtelefones.VisibleButtons - [nbDelete]; navtitulos.Enabled := VerificarPermissao('CBR.01.03.01.04'); if not VerificarPermissao('CBR.01.03.01.04.01') then navtitulos.VisibleButtons := navtitulos.VisibleButtons - [nbInsert]; if not VerificarPermissao('CBR.01.03.01.04.02') then navtitulos.VisibleButtons := navtitulos.VisibleButtons - [nbEdit]; if not VerificarPermissao('CBR.01.03.01.04.03') then navtitulos.VisibleButtons := navtitulos.VisibleButtons - [nbDelete]; navhistorico.Enabled := VerificarPermissao('CBR.01.03.01.05'); if not VerificarPermissao('CBR.01.03.01.05.01') then navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbInsert]; if not VerificarPermissao('CBR.01.03.01.05.02') then navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbEdit]; if not VerificarPermissao('CBR.01.03.01.05.03') then navhistorico.VisibleButtons := navhistorico.VisibleButtons - [nbDelete]; tabQuitar.Enabled := VerificarPermissao('CBR.01.03.02.01.01'); tabParcelar.Enabled := VerificarPermissao('CBR.01.03.02.01.02'); cbx_descindextras.Enabled := VerificarPermissao('CBR.01.03.02.01.03'); cb_nmulta.Enabled := VerificarPermissao('CBR.01.03.02.02'); cbx_txextra.Enabled := VerificarPermissao('CBR.01.03.02.03'); cbx_excentrada.Enabled := VerificarPermissao('CBR.01.03.02.04'); clb_indices.Enabled := VerificarPermissao('CBR.01.03.02.05'); end; end; procedure TfrmAtendimento.cbx_descindextrasClick(Sender: TObject); begin edt_descindextras.Enabled := cbx_descindextras.Checked; end; procedure TfrmAtendimento.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 TfrmAtendimento.clb_empresasClickCheck(Sender: TObject); var i: Integer; begin inherited; // 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 TfrmAtendimento.clb_indicesClickCheck(Sender: TObject); begin queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.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 TfrmAtendimento.CriarLista; var h: 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; if not dtmSystem.tblCHGEmpresa.Active then begin dtmSystem.tblCHGEmpresa.Open; end; qtde_titulos := 0; for h := 0 to clb_beneficiarioscalculo.Items.Count - 1 do begin if clb_beneficiarioscalculo.Checked[h] then begin dtmSystem.tblCHGEmpresa.Locate('ID_EMPRESA', id_emps_dev[h], []); achou := true; end; 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 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; queryListaTitulos.Next; end; btn_fechamento.Enabled := true; btn_amostra.Enabled := true; 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; btn_fechamento.Enabled := false; btn_amostra.Enabled := false; end; queryListaTitulos.EnableControls; Screen.Cursor := crDefault; end; procedure TfrmAtendimento.dbedt_cpfcnpjcKeyPress(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 TfrmAtendimento.dbgrd_despesasTitleClick(Column: TColumn); begin dtmSystem.OrganizaPorColuna(dtmSystem.tblDespesasTitulos, Column); end; procedure TfrmAtendimento.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 TfrmAtendimento.dbgrd_enderecosTitleClick(Column: TColumn); begin dtmSystem.OrganizaPorColuna(dtmSystem.tblEnderecos, Column); end; procedure TfrmAtendimento.dbgrd_historicoTitleClick(Column: TColumn); begin dtmSystem.OrganizaPorColuna(dtmSystem.tblHistorico, Column); end; procedure TfrmAtendimento.dbgrd_listtitulosTitleClick(Column: TColumn); begin dtmSystem.OrganizaPorColuna(queryListaTitulos, Column); end; procedure TfrmAtendimento.dbgrd_pesquisarDblClick(Sender: TObject); begin if length(qryPesquisa.FieldByName('TX_DOCUMENTO').AsString) = 14 then begin dtmSystem.tblDevedores.Locate('CD_CPF', qryPesquisa.FieldByName('TX_DOCUMENTO').AsString, []) end else begin dtmSystem.tblDevedores.Locate('CD_CNPJ', qryPesquisa.FieldByName('TX_DOCUMENTO').AsString, []) end; dtsDevedor.DataSet := dtmSystem.tblDevedores; pcDevedor.Enabled := true; // CriarLista; AdjustCheckListBox; end; procedure TfrmAtendimento.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 edt_prov.Text := dtmSystem.tblProvidenciasTX_NOME.AsString; end; end; procedure TfrmAtendimento.dbgrd_telDrawColumnCell(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_tel.Canvas.Brush.Color := clGreen; 1: dbgrd_tel.Canvas.Brush.Color := $0000FF; end; // end; dbgrd_tel.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; procedure TfrmAtendimento.dbgrd_telTitleClick(Column: TColumn); begin dtmSystem.OrganizaPorColuna(dtmSystem.tblTelefones, Column); end; procedure TfrmAtendimento.dbgrd_titCellClick(Column: TColumn); var i: Integer; begin inherited; // 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 TfrmAtendimento.dbgrd_titDrawColumnCell(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_tit.Canvas.Brush.Color := clWhite; 1: dbgrd_tit.Canvas.Brush.Color := $0000D7FF; 2: dbgrd_tit.Canvas.Brush.Color := $002FFFAD; 3: dbgrd_tit.Canvas.Brush.Color := clMoneyGreen; 4: dbgrd_tit.Canvas.Brush.Color := clRed; 5: dbgrd_tit.Canvas.Brush.Color := $00EBCE87; 6: dbgrd_tit.Canvas.Brush.Color := $00E16941; end; // end; dbgrd_tit.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; procedure TfrmAtendimento.dbgrd_titTitleClick(Column: TColumn); begin dtmSystem.OrganizaPorColuna(dtmSystem.tblTitulos, Column); end; procedure TfrmAtendimento.dbrg_tipotelClick(Sender: TObject); begin if dbrg_tipotel.ItemIndex = 1 then begin DBRadioGroup1.Enabled := true; end else begin DBRadioGroup1.Enabled := false; DBRadioGroup1.ItemIndex := -1; end; end; procedure TfrmAtendimento.DevolverTtulos1Click(Sender: TObject); var i: Integer; begin if Messagedlg('Deseja devolver os títulos selecionados?', mtInformation, [mbYes, mbNo], 0) = mrYes then begin Screen.Cursor := crHourGlass; for i := 0 to lv_titulos.Items.Count - 1 do begin if lv_titulos.Items[i].Checked then begin queryListaTitulos.RecNo := i + 1; with dtmSystem do begin tblTitulos.Locate('ID_TITULO', queryListaTitulosID_TITULO.AsInteger, []); tblTitulos.Edit; tblTitulosTP_SITUACAO.AsString := 'AJ'; tblTitulos.Post; end; end; end; CriarLista; Screen.Cursor := crDefault; end; end; procedure TfrmAtendimento.dtp_atrasorecalcChange(Sender: TObject); var mes, ano: string; begin if id_emp_calc <> -1 then begin if dtmSystem.tblEmpresaRepasse.IsEmpty then begin Showmessage('Esta empresa não possui nenhum repasse cadastrado.' + ' Por favor contate a administração e interrompa a baixa de qualquer título ' + 'relacionado a empresa em questão.'); end else begin mes := copy(FormatDateTime('yyyy-mm-dd', dtp_atrasorecalc.Date), 6, 2); ano := copy(FormatDateTime('yyyy-mm-dd', dtp_atrasorecalc.Date), 1, 4); if not dtmSystem.tblEmpresaRepasse.Locate('ID_MES;ID_ANO', VarArrayOf([mes, ano]), []) then begin Showmessage ('Esta empresa não possui repasse para o mês da data de pagamento escolhida cadastrado.' + ' Por favor contate a administração e interrompa a baixa de qualquer título ' + 'relacionado a empresa em questão.'); end; end; end; queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.dtsDespesasStateChange(Sender: TObject); begin dbgrd_despesas.ReadOnly := not(dtsDespesas.State in [dsInsert, dsEdit]); navtitulos.Enabled := not(dtsDespesas.State in [dsInsert, dsEdit]); end; procedure TfrmAtendimento.dtsDevedorDataChange(Sender: TObject; Field: TField); var new_id, i: Integer; begin if qryConsulta.Connection = nil then begin exit; end; if dtsDevedor.DataSet.FieldByName('TP_CLIENTE').AsString = 'F' then begin dbedt_cpfcnpj.DataField := 'CD_CPF'; dbedt_cpfcnpjc.DataField := 'CD_CPF'; end else begin dbedt_cpfcnpj.DataField := 'CD_CNPJ'; dbedt_cpfcnpjc.DataField := 'CD_CNPJ'; end; new_id := dtmSystem.tblDevedoresID_DEVEDOR.AsInteger; if (old_id <> new_id) and not(dtsDevedor.State in [dsInsert]) then begin setlength(ids_tits_calc, 0); setlength(str_tit, 0); lv_titulos.Clear; id_emp_calc := -1; mem_obsrecibo.Clear; atendimento := 'atendendo'; pcDevedor.TabIndex := 0; for i := 0 to length(ids_tits_calc) - 1 do begin ids_tits_calc[i] := false; end; old_id := new_id; btn_protocolo.Enabled := true; edt_protocolo.Text := ''; edt_protocolo1.Text := ''; 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; 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; setlength(id_emps_dev, qryConsulta.RecordCount); while not qryConsulta.Eof do begin clb_beneficiarioscalculo.Items.Add(qryConsulta.FieldByName('TX_NOME') .AsString); id_emps_dev[qryConsulta.RecNo - 1] := qryConsulta.FieldByName('ID_EMPRESA').AsInteger; qryConsulta.Next; end; ChecaPermissoes; // clb_beneficiarioscalculo.Checked[0] := True; end; end; procedure TfrmAtendimento.dtsDevedorStateChange(Sender: TObject); begin if Assigned(dtsDevedor.DataSet) then begin dtmSystem.AlterReadOnly(pnl_cadastro, dtsDevedor.DataSet); dbedt_nomec.ReadOnly := (dtsDevedor.State in [dsBrowse]); dbedt_cpfcnpjc.ReadOnly := (dtsDevedor.State in [dsBrowse]); dbmb_obsc.ReadOnly := (dtsDevedor.State in [dsBrowse]); end; end; procedure TfrmAtendimento.dtsEmailStateChange(Sender: TObject); begin dbedt_email.ReadOnly := dtsEmail.State in [dsBrowse]; end; procedure TfrmAtendimento.dtsEnderecosStateChange(Sender: TObject); begin dtmSystem.AlterReadOnly(pnl_enderecos, dtsEnderecos.DataSet); end; procedure TfrmAtendimento.dtsHistoricoStateChange(Sender: TObject); begin dblucb_providencia.Enabled := dtsHistorico.State in [dsEdit, dsInsert]; dbgrd_historico.ReadOnly := dtsHistorico.State in [dsEdit, dsInsert]; dbmemo_box.ReadOnly := not(dtsHistorico.State in [dsInsert, dsEdit]); if dtsHistorico.State in [dsInsert] then begin dtsHistorico.DataSet.FieldByName('CD_PROTOCOLO').AsString := dtmSystem.gerarProtocolo(dtsDevedor.DataSet.FieldByName('ID_DEVEDOR') .AsString); edt_protocolo.Text := dtmSystem.gerarProtocolo (dtsDevedor.DataSet.FieldByName('ID_DEVEDOR').AsString); edt_protocolo1.Text := edt_protocolo.Text; btn_protocolo.Enabled := false; end; end; procedure TfrmAtendimento.dtsTelefonesDataChange(Sender: TObject; Field: TField); begin if dbrg_tipotel.ItemIndex = 1 then begin DBRadioGroup1.Enabled := true; end else begin DBRadioGroup1.Enabled := false; DBRadioGroup1.ItemIndex := -1; end; end; procedure TfrmAtendimento.dtsTitulosDataChange(Sender: TObject; Field: TField); var i, old_id_tit: Integer; begin // if (Field = dtmSystem.tblTitulosVL_DESPESA) or // (Field = dtmSystem.tblTitulosTP_DESPESA) then // begin // queryListaTitulos.Refresh; // Att_campos; // CalcValorParcelas; // 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; 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; // if dtmSystem.tblTitulosID_EMPRESA.AsString = '' then // begin // selected_id_chg_empresa := -1; // end // else // begin // 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; 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 TfrmAtendimento.dtsTitulosStateChange(Sender: TObject); begin dtmSystem.AlterReadOnly(pnl_titulos, dtsTitulos.DataSet); dtmSystem.AlterReadOnly(pnl_cheque, dtsTitulos.DataSet); navDespesas.Enabled := not(dtsTitulos.State in [dsInsert, dsEdit]); dbmem_titobs.ReadOnly := not(dtsTitulos.State in [dsEdit, dsInsert]); end; procedure TfrmAtendimento.edt_txextraChange(Sender: TObject); begin if length(edt_txextra.Text) < 1 then begin edt_txextra.Text := '0'; end; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.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 TfrmAtendimento.edt_descfixoKeyPress(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_descfixo.Text) > 0) then // begin // Key := #0; // end; end; procedure TfrmAtendimento.edt_descindextrasExit(Sender: TObject); begin try if edt_descindextras.Text <> '' then begin desc_indices_extras[cb_descindicesextras.ItemIndex] := edt_descindextras.Text; queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; except end; end; procedure TfrmAtendimento.edt_descindextrasKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin SelectNext(ActiveControl as TWinControl, true, true); end; end; procedure TfrmAtendimento.edt_excentradaChange(Sender: TObject); begin if length(edt_excentrada.Text) < 1 then begin edt_excentrada.Text := '0'; end; Att_campos; CalcValorParcelas; end; procedure TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.edt_campopKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if edt_campop.Text <> '' then begin btn_pesquisar.Click; end; end; end; procedure TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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; except end; end; procedure TfrmAtendimento.edt_nrparcelasExit(Sender: TObject); begin if edt_nrparcelas.Text = '' then begin edt_nrparcelas.Text := '0'; queryListaTitulos.Refresh; Att_campos; CalcValorParcelas; end; end; procedure TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.edt_reciboobsChange(Sender: TObject); begin // if length(mem_obsrecibo.Lines.Text) > edt_reciboobs.MaxLength then // begin // edt_reciboobs.Text := copy(edt_reciboobs.Text, 1, edt_reciboobs.MaxLength); // end; end; procedure TfrmAtendimento.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 TfrmAtendimento.FormClose(Sender: TObject; var Action: TCloseAction); begin if fez_recibo then begin if Messagedlg ('Você está prestes a fechar um acionamento em andamento COM RECIBO JÁ GERADO. Alterações neste devedor podem não ser salvas, mas o RECIBO CONTINUARÁ EXISTINDO. Deseja continuar?', mtWarning, mbYesNo, 0) = mrNo then begin abort; end; end; Screen.Cursor := crDefault; Action := caFree; frmAtendimento := nil; end; procedure TfrmAtendimento.FormCreate(Sender: TObject); var Pos: Integer; begin cdsTitulos.Close; cdsParcelas.Close; cdsTitulos.CreateDataSet; cdsParcelas.CreateDataSet; Pos := 0; ficha_dev := false; id_emp_calc := -1; old_id := -1; setlength(ids_tits_calc, 0); atendimento := 'atendendo'; dtp_atrasorecalc.Date := Date; dtp_agendadatahist.MinDate := Date; after_show := false; dtsDevedor.DataSet := nil; fez_recibo := false; // tabCadastro.Enabled := false; 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 tblEnderecos.Active then begin tblEnderecos.Open; end else begin tblEnderecos.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 tblTelefones.Active then begin tblTelefones.Open; end else begin tblTelefones.Refresh; end; // tblTitulos.Close; if not tblTitulos.Active then begin tblTitulos.Open; end else begin tblTitulos.Refresh; end; // if not tblProtocolo.Active then // begin // tblProtocolo.Open; // end; if not tblEmpresa.Active then begin tblEmpresa.Open; end else begin tblEmpresa.Refresh; end; tblEmpresa.First; if not tblCHGEmpresa.Active then begin tblCHGEmpresa.Open; end else begin tblCHGEmpresa.Refresh; end; if not tblEmpresaRepasse.Active then begin tblEmpresaRepasse.Open; end; tblCHGEmpresa.First; if not tblDespesasTitulos.Active then begin tblDespesasTitulos.Open; end; if not tblIndicadorFinanceiro.Active then begin tblIndicadorFinanceiro.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 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 tblAcordos.Active then begin tblAcordos.Open; end else begin tblAcordos.Refresh; end; // 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; tblIndices.Open; tblIndices.First; cb_descindicesextras.Items.Clear; desc_indices_extras := TStringList.Create; while not tblIndices.Eof do begin cb_descindicesextras.Items.Add(tblIndicesTX_NOME.AsString); desc_indices_extras.Add('0,00'); clb_indices.Items.Add(tblIndicesTX_NOME.AsString); tblIndices.Next; end; cb_descindicesextras.ItemIndex := 0; tblHistorico.Open; if not tblPrCartao.Active then begin tblPrCartao.Open; end else begin tblPrCartao.Refresh; end; end; if dtmSystem.id_grupo <> 1 then begin dbgrd_tit.Columns[9].Visible := false; dbgrd_tit.Columns[10].Visible := false; DBGrid1.PopupMenu := nil; end; dbgrd_enderecos.DataSource.DataSet.First; gb_descontosquit.Enabled := cb_descquit.Checked; gb_descontospar.Enabled := cb_descpar.Checked; FListViewOldWndProc := lv_titulos.WindowProc; lv_titulos.WindowProc := ListViewNewWndProc; FlistViewOldWndProc2 := lv_parcelas.WindowProc; lv_parcelas.WindowProc := ListViewNewWndProc2; // FListViewOldWndProc3 := lv_prevtitulos.WindowProc; // lv_prevtitulos.WindowProc := ListViewNewWndProc3; // FlistViewOldWndProc4 := lv_fechamento.WindowProc; // lv_fechamento.WindowProc := ListViewNewWndProc4; SetupHackedNavigator(navdevedor, ImageList1, 's', 8); SetupHackedNavigator(navEmail, ImageList1, 's', 8); SetupHackedNavigator(navenderecos, ImageList1, 's', 8); SetupHackedNavigator(navtelefones, ImageList1, 's', 8); SetupHackedNavigator(navtitulos, ImageList1, 's', 8); SetupHackedNavigator(navhistorico, ImageList1, 's', 8); SetupHackedNavigator(navDespesas, ImageList1, 's', 8); pcDevedor.ActivePageIndex := 0; pcDevedor.Enabled := false; ChecaPermissoes; dtp_agatend.Date := Date; dtph_agatend.Time := Now; // dtsDevedor.DataSet.Refresh; // cb_descquit.Enabled := dtmSystem.VerificarPermissao('ACBR.01.01'); // cb_descpar.Enabled := dtmSystem.VerificarPermissao('ACBR.01.02'); // cb_nmulta.Enabled := dtmSystem.VerificarPermissao('ACBR.01.03'); // cbx_excentrada.Enabled := dtmSystem.VerificarPermissao('ACBR.01.04'); // clb_indices.Enabled := dtmSystem.VerificarPermissao('ACBR.01.05'); // ECBR.02.01 // navdevedor.Enabled := dtmSystem.VerificarPermissao('ACBR.02.01'); // navenderecos.Enabled := dtmSystem.VerificarPermissao('ACBR.02.02'); // navtelefones.Enabled := dtmSystem.VerificarPermissao('ACBR.02.03'); // navtitulos.Enabled := dtmSystem.VerificarPermissao('ACBR.02.04'); // navhistorico.Enabled := dtmSystem.VerificarPermissao('ACBR.02.05'); end; procedure TfrmAtendimento.FormDestroy(Sender: TObject); begin lv_titulos.WindowProc := FListViewOldWndProc; FListViewOldWndProc := nil; end; procedure TfrmAtendimento.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 pcDevedor.TabIndex = 6 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.03.01.01'); string_permissoes.Add('CBR.01.03.01.06'); string_permissoes.Add('CBR.01.03.01.06.01'); string_permissoes.Add('CBR.01.03.01.06.02'); string_permissoes.Add('CBR.01.03.01.06.03'); string_permissoes.Add('CBR.01.03.01.02'); string_permissoes.Add('CBR.01.03.01.02.01'); string_permissoes.Add('CBR.01.03.01.02.02'); string_permissoes.Add('CBR.01.03.01.02.03'); string_permissoes.Add('CBR.01.03.01.03'); string_permissoes.Add('CBR.01.03.01.03.01'); string_permissoes.Add('CBR.01.03.01.03.02'); string_permissoes.Add('CBR.01.03.01.03.03'); string_permissoes.Add('CBR.01.03.01.04'); string_permissoes.Add('CBR.01.03.01.04.01'); string_permissoes.Add('CBR.01.03.01.04.02'); string_permissoes.Add('CBR.01.03.01.04.03'); string_permissoes.Add('CBR.01.03.01.05'); string_permissoes.Add('CBR.01.03.01.05.01'); string_permissoes.Add('CBR.01.03.01.05.02'); string_permissoes.Add('CBR.01.03.01.05.03'); string_permissoes.Add('CBR.01.03.02.01.01'); string_permissoes.Add('CBR.01.03.02.01.02'); string_permissoes.Add('CBR.01.03.02.01.03'); string_permissoes.Add('CBR.01.03.02.02'); string_permissoes.Add('CBR.01.03.02.03'); string_permissoes.Add('CBR.01.03.02.04'); string_permissoes.Add('CBR.01.03.02.05'); ShowModal; if ModalResult = mrOk then begin case dtmSystem.cod_liberapermissao of 0: navdevedor.Enabled := true; 1: navEmail.Enabled := true; 2: navEmail.VisibleButtons := navEmail.VisibleButtons + [nbInsert]; 3: navEmail.VisibleButtons := navEmail.VisibleButtons + [nbEdit]; 4: navEmail.VisibleButtons := navEmail.VisibleButtons + [nbDelete]; 5: navenderecos.Enabled := true; 6: navenderecos.VisibleButtons := navenderecos.VisibleButtons + [nbInsert]; 7: navenderecos.VisibleButtons := navenderecos.VisibleButtons + [nbEdit]; 8: navenderecos.VisibleButtons := navenderecos.VisibleButtons + [nbDelete]; 9: navtelefones.Enabled := true; 10: navtelefones.VisibleButtons := navtelefones.VisibleButtons + [nbInsert]; 11: navtelefones.VisibleButtons := navtelefones.VisibleButtons + [nbEdit]; 12: navtelefones.VisibleButtons := navtelefones.VisibleButtons + [nbDelete]; 13: navtitulos.Enabled := true; 14: navtitulos.VisibleButtons := navtitulos.VisibleButtons + [nbInsert]; 15: navtitulos.VisibleButtons := navtitulos.VisibleButtons + [nbEdit]; 16: navtitulos.VisibleButtons := navtitulos.VisibleButtons + [nbDelete]; 17: navhistorico.Enabled := true; 18: navhistorico.VisibleButtons := navhistorico.VisibleButtons + [nbInsert]; 19: navhistorico.VisibleButtons := navhistorico.VisibleButtons + [nbEdit]; 20: navhistorico.VisibleButtons := navhistorico.VisibleButtons + [nbDelete]; 21: tabQuitar.Enabled := true; 22: tabParcelar.Enabled := true; 23: cbx_descindextras.Enabled := true; 24: cb_nmulta.Enabled := true; 25: cbx_txextra.Enabled := true; 26: cbx_excentrada.Enabled := true; 27: clb_indices.Enabled := true; end; end; end; end; end; procedure TfrmAtendimento.FormShow(Sender: TObject); begin after_show := true; if dtmSystem.tblUsuarios.RecordCount > 0 then begin queryCobradores.SQL.Text := 'select id_usuario, tx_nome from sys_usuarios where tp_ativo = ' + QuotedStr('S') + ' order by tx_nome'; queryCobradores.Open; end; end; procedure TfrmAtendimento.GuardaTitulos; var i: Integer; begin cdsTitulos.Append; for i := 0 to cdsTitulos.Fields.Count - 1 do begin cdsTitulos.Fields[i].AsVariant := dtmSystem.tblTitulos.FieldByName (cdsTitulos.Fields[i].FieldName).AsVariant; end; cdsTitulos.Post; end; procedure TfrmAtendimento.ListViewNewWndProc(var Msg: TMessage); var hdn: ^THDNotify; begin if Msg.Msg = WM_NOTIFY then begin hdn := Pointer(Msg.lParam); if (hdn.hdr.code = HDN_BeginTrackW) or (hdn.hdr.code = HDN_BeginTrackA) then begin Msg.result := 1 end else begin FListViewOldWndProc(Msg); end; end else begin FListViewOldWndProc(Msg); end; end; procedure TfrmAtendimento.ListViewNewWndProc2(var Msg: TMessage); var hdn: ^THDNotify; begin if Msg.Msg = WM_NOTIFY then begin hdn := Pointer(Msg.lParam); if (hdn.hdr.code = HDN_BeginTrackW) or (hdn.hdr.code = HDN_BeginTrackA) then begin Msg.result := 1 end else begin FlistViewOldWndProc2(Msg); end; end else begin FlistViewOldWndProc2(Msg); end; end; procedure TfrmAtendimento.lv_titulosChange(Sender: TObject; Item: TListItem; Change: TItemChange); begin // Att_campos; // CalcValorParcelas; end; procedure TfrmAtendimento.lv_titulosItemChecked(Sender: TObject; Item: TListItem); var i, k: Integer; begin qtde_titulos := 0; 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; setlength(str_tit, k + 1); str_tit[k] := queryListaTitulosID_TITULO.AsInteger; Inc(k, 1); end; end; 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 TfrmAtendimento.mnuQuebraAcordoClick(Sender: TObject); var str_help: string; i: Integer; begin inherited; if Messagedlg('Deseja realmente quebrar o acordo selecionado?' + ' Esta opção ira apenas desvincular os títulos originais aos parcelamentos.', mtWarning, [mbYes, mbNo], 0) = mrYes then begin ZReadOnlyQuery1.SQL.Text := 'SELECT * FROM SYS_ACORDOS WHERE ID_ACORDO = ' + dtmSystem.zroQryAcordosID_ACORDO.AsString; ZReadOnlyQuery1.Open; ZReadOnlyQuery1.First; str_help := 'Antes de deletar:' + sLineBreak; while not ZReadOnlyQuery1.Eof do begin for i := 0 to ZReadOnlyQuery1.Fields.Count - 1 do begin str_help := str_help + ZReadOnlyQuery1.Fields[i].FieldName + ': ' + ZReadOnlyQuery1.Fields[i].AsString + sLineBreak; end; ZReadOnlyQuery1.Next; end; dtmSystem.tblLog.Append; dtmSystem.tblLogTX_TABELA.AsString := 'SYS_ACORDOS'; dtmSystem.tblLogID_REGISTRO.AsInteger := dtmSystem.zroQryAcordosID_ITEM.AsInteger; dtmSystem.tblLogTX_ACAO.AsString := 'delete'; dtmSystem.tblLogTL_ACAO.AsString := str_help; dtmSystem.tblLog.Post; dtmSystem.ZSQLProcessorAcordos.Script.Text := 'DELETE FROM SYS_ACORDOS WHERE ID_ACORDO = ' + dtmSystem.zroQryAcordosID_ACORDO.AsString; dtmSystem.ZSQLProcessorAcordos.Execute; dtmSystem.zroQryAcordos.Refresh; end; end; procedure TfrmAtendimento.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 TfrmAtendimento.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 TfrmAtendimento.navhistoricoBeforeAction(Sender: TObject; Button: TNavigateBtn); var string_helper: string; 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 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; end; if dtp_agendahorahist.Time < Timeof(Now) then begin Messagedlg ('Você está selecionando um horário para agendamento menor que a hora atual.', mtWarning, mbYesNo, 0); abort; end; end; if Messagedlg ('Esta inclusão de histórico irá retirar este devedor de qualquer agendamento. Deseja continuar?', mtWarning, mbYesNo, 0) = mrNo then begin abort; end; Screen.Cursor := crHourGlass; with dtmSystem do begin if not(tblAgenda.Active) then begin tblAgenda.Open; end; 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 begin with dtmSystem do begin 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; 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; end else begin string_helper := ''; end; with dtmSystem do begin if not tblCampanhaDevedores.Active then begin tblCampanhaDevedores.Open; end; while tblCampanhaDevedores.Locate('ID_DEVEDOR', dtsDevedores.DataSet.FieldByName('ID_DEVEDOR').AsInteger, []) do begin tblCampanhaDevedores.Delete; end; tblCampanhaDevedores.Close; tblHistoricoID_DEVEDOR.AsInteger := dtsDevedores.DataSet.FieldByName ('ID_DEVEDOR').AsInteger; tblHistoricoDT_CONTATO.AsDateTime := Now; dtmSystem.tblHistoricoTL_MEMO.AsString := dtmSystem.tblHistoricoTL_MEMO.AsString + sLineBreak + string_helper; // tblHistorico.Post; end; Screen.Cursor := crDefault; // abort; 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 TfrmAtendimento.navtelefonesBeforeAction(Sender: TObject; Button: TNavigateBtn); begin case Button of nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh: if navtelefones.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_tel.Text = '' then begin Messagedlg('Por favor preencha um número para o telefone.', mtWarning, [mbok], 0); abort; end; try dbedt_tel.Text := dtmSystem.FormatTelefone(dbedt_tel.Text); except on E: Exception do begin Messagedlg(E.Message, mtWarning, [mbok], 0); abort; end; end; if dbrg_tipotel.ItemIndex = -1 then begin Messagedlg('Por favor escolha o tipo de telefone.', mtWarning, [mbok], 0); abort; end; if (length(dbedt_tel.Text) = 10) then begin dbrg_tipotel.ItemIndex := 1; end; if (length(dbedt_tel.Text) = 9) then begin dbrg_tipotel.ItemIndex := 0; end; SelectNext(ActiveControl as TWinControl, true, true); end; nbDelete: begin if navtelefones.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 TfrmAtendimento.navtitulosBeforeAction(Sender: TObject; Button: TNavigateBtn); begin case Button of nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbRefresh: if navtitulos.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 dbedit_produto.Text = '' then begin Messagedlg('Por favor insira um nome para o título.', mtWarning, [mbok], 0); abort; end; if dbedt_vltit.Text = '' then begin Messagedlg('Por favor insira um valor para o título.', mtWarning, [mbok], 0); abort; end; // 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; // if selected_id_chg_empresa <> -1 then // begin // dtmSystem.tblTitulosID_EMPRESA.AsInteger := selected_id_chg_empresa; // end; if DateToStr(rDBDateTimePicker1.Date) = '30/12/1899' then begin Messagedlg ('Por favor selecione uma data de vencimento para o título.', mtWarning, [mbok], 0); abort; end; if dtmSystem.tblTitulosID_EMPRESA.AsString = '' then begin Messagedlg('Por favor indique um Credor para o título.', mtWarning, [mbok], 0); abort; end; SelectNext(ActiveControl as TWinControl, true, true); 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; 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; end; end; procedure TfrmAtendimento.OpenOfficeDocument(path: string); var OpenOffice, OpenDesktop, LoadParams, OODoc, FileReplace, SaveParams, OOTableContainner, OOTable, OOTableRows, OOTableCell: Variant; path_file, ASearch, AReplace: string; ç: Integer; begin if VarIsEmpty(OpenOffice) then begin OpenOffice := CreateOleObject('com.sun.star.ServiceManager'); end; OpenDesktop := OpenOffice.CreateInstance('com.sun.star.frame.Desktop'); LoadParams := VarArrayCreate([0, -1], varVariant); // Param := OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue'); // Param.Name := 'Hidden'; // Param.Value := True; // LoadParams := Param; if path <> '' then begin path_file := 'file:///' + stringreplace(path, '\', '/', [rfReplaceAll]); end else begin path_file := 'private:factory/swriter'; end; OODoc := OpenDesktop.LoadComponentFromURL(path_file, '_default', 0, LoadParams); FileReplace := OODoc.CreateReplaceDescriptor; FileReplace.SearchCaseSensitive := false; // Nome do devedor ASearch := '“NOME_DEVEDOR”'; // alt+0147 e alt+0148 AReplace := dtsDevedor.DataSet.FieldByName('TX_NOME').AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // RG ASearch := '“CD_RG”'; // alt+0147 e alt+0148 AReplace := dtsDevedor.DataSet.FieldByName('CD_RG').AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // CPF ASearch := '“CD_CPF”'; // alt+0147 e alt+0148 AReplace := dtsDevedor.DataSet.FieldByName('CD_CPF').AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // INTERMEDIÁRIO // dtsCHGEmpresa.DataSet.Locate('ID_EMPRESA', id_emp, []); ASearch := '“EMPRESA_PROGRAMA”'; // alt+0147 e alt+0148 AReplace := UpperCase(dtsEmpresa.DataSet.FieldByName('TX_NOME').AsString) + ' - CNPJ: ' + dtsEmpresa.DataSet.FieldByName('TX_CNPJ').AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // INTERMEDIÁRIO dtsCHGEmpresa.DataSet.Locate('ID_EMPRESA', id_emp, []); ASearch := '“EMPRESA_TITULO”'; // alt+0147 e alt+0148 AReplace := UpperCase(dtsCHGEmpresa.DataSet.FieldByName('TX_NOME').AsString) + ' - CNPJ: ' + dtsCHGEmpresa.DataSet.FieldByName('TX_CNPJ').AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // vl_total_corrigido ASearch := '“VL_TOTAL_CORRIGIDO”'; // alt+0147 e alt+0148 AReplace := edt_vltotal.Text + ' (' + valorPorExtenso (strtofloat(copy(stringreplace(edt_vltotal.Text, '.', '', []), 4, length(edt_vltotal.Text) - 3))) + ')'; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // número de parcelas ASearch := '“NR_PARCELAS”'; // alt+0147 e alt+0148 AReplace := edt_nrparcelas.Text + '(' + Extenso(strtoint(edt_nrparcelas.Text), false) + ')'; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // Tabela do acordo OOTableContainner := OODoc.GetTextTables; OOTable := OOTableContainner.getByIndex(0); OOTableRows := OOTable.getRows; if StrToCurr(stringreplace(copy(edt_somaentrada.Text, 4, length(edt_somaentrada.Text) - 3), '.', '', [rfReplaceAll])) <> 0 then begin ASearch := '“ENTRADA”'; // alt+0147 e alt+0148 AReplace := 'UMA ENTRADA E '; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); for ç := 0 to (strtoint(edt_nrparcelas.Text)) do begin OOTableRows.insertByIndex(ç + 1, 1); OOTableCell := OOTable.getCellByName('A' + inttostr(ç + 2)); OOTableCell.setstring(lv_fechamento.Items[ç].SubItems[1]); OOTableCell := OOTable.getCellByName('B' + inttostr(ç + 2)); OOTableCell.setstring(lv_fechamento.Items[ç].SubItems[0]); end; end else begin ASearch := '“ENTRADA”'; // alt+0147 e alt+0148 AReplace := ''; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); for ç := 1 to (strtoint(edt_nrparcelas.Text)) do begin OOTableRows.insertByIndex(ç, 1); OOTableCell := OOTable.getCellByName('A' + inttostr(ç + 1)); OOTableCell.setstring(lv_fechamento.Items[ç].SubItems[1]); OOTableCell := OOTable.getCellByName('B' + inttostr(ç + 1)); OOTableCell.setstring(lv_fechamento.Items[ç].SubItems[0]); end; end; // Juros ASearch := '“PR_JUROS”'; // alt+0147 e alt+0148 // dtsCHGEmpresa.DataSet.First; AReplace := dtsCHGEmpresa.DataSet.FieldByName('PR_JUROS').AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); ASearch := '“EXTENSO_JUROS”'; // “ = alt+0147 e ” = alt+0148 AReplace := Extenso(dtsCHGEmpresa.DataSet.FieldByName('PR_JUROS').AsInteger, false) + ' por cento'; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // Multa ASearch := '“PR_MULTA”'; // alt+0147 e alt+0148 // dtsCHGEmpresa.DataSet.First; AReplace := dtsCHGEmpresa.DataSet.FieldByName('PR_MULTA').AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); ASearch := '“EXTENSO_MULTA”'; // alt+0147 e alt+0148 AReplace := Extenso(dtsCHGEmpresa.DataSet.FieldByName('PR_MULTA').AsInteger, false) + ' por cento'; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // CIDADE/UF empresa ASearch := '“CIDADE/UF_EMPRESA”'; // alt+0147 e alt+0148 dtmSystem.tblEstados.Locate('ID_ESTADO', dtmSystem.tblEmpresaID_ESTADO.AsString, []); dtmSystem.tblCidades.Locate('ID_CIDADE', dtmSystem.tblEmpresaID_CIDADE.AsString, []); AReplace := dtmSystem.tblCidadesTX_NOME.AsString + '/' + dtmSystem.tblEstadosTX_NOME.AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // CIDADE empresa ASearch := '“CIDADE_EMP”'; // alt+0147 e alt+0148 AReplace := dtmSystem.tblCidadesTX_NOME.AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // UF empresa ASearch := '“UF_EMP”'; // alt+0147 e alt+0148 AReplace := dtmSystem.tblEstadosTX_NOME.AsString; FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // Data do dia ASearch := '“DATA_DIA”'; // alt+0147 e alt+0148 AReplace := DateToStr(Date); FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); // Assinatura ASearch := '“NOME_EMP”'; // alt+0147 e alt+0148 AReplace := UpperCase(dtsEmpresa.DataSet.FieldByName('TX_NOME').AsString); FileReplace.SetSearchString(ASearch); FileReplace.SetReplaceString(AReplace); OODoc.ReplaceAll(FileReplace); path_file := stringreplace(path_file, 'acordo_financ', 'acordo_' + dtsCHGEmpresa.DataSet.FieldByName('TX_NOME').AsString + ' - ' + stringreplace(DateToStr(Date), '/', '-', [rfReplaceAll]), [rfReplaceAll]); SaveParams := VarArrayCreate([0, -1], varVariant); OODoc.StoreAsUrl(path_file, SaveParams); end; procedure TfrmAtendimento.pcDevedorChange(Sender: TObject); var i: Integer; begin if pcDevedor.TabIndex = 6 then begin if atendimento = 'atendendo' then begin pcDevedor.TabIndex := pagina; end; if (atendimento = 'fechamento') and (pcDevedor.TabIndex <> 6) then begin pcDevedor.TabIndex := 6; end; end; if (pagina = 5) then begin setlength(ids_tits_calc, queryListaTitulos.RecordCount); if length(ids_tits_calc) > 0 then begin 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; end; if pcDevedor.TabIndex = 5 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; setlength(id_emps_dev, qryConsulta.RecordCount); while not qryConsulta.Eof do begin clb_beneficiarioscalculo.Items.Add(qryConsulta.FieldByName('TX_NOME') .AsString); id_emps_dev[qryConsulta.RecNo - 1] := qryConsulta.FieldByName('ID_EMPRESA').AsInteger; qryConsulta.Next; end; if id_emp_calc <> -1 then begin clb_beneficiarioscalculo.Checked[id_emp_calc] := true; end; CriarLista; if pagina <> 5 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; end; if pcDevedor.TabIndex = 3 then begin pcTitDespesas.TabIndex := 0; end; end; procedure TfrmAtendimento.pcDevedorChanging(Sender: TObject; var AllowChange: Boolean); begin pagina := pcDevedor.TabIndex; end; procedure TfrmAtendimento.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, pr_banco: 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; // 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; 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; if ((dtp_atrasorecalc.Date) <= (queryListaTitulosDT_VENCIMENTO.AsDateTime)) or (cb_nmulta.Checked) then begin pl_multa := 0; end; // pl_multa := vl_nominal * (queryListaTitulosPR_MULTA.AsFloat / 100); queryListaTitulosVL_MULTA.AsCurrency := pl_multa; // if clb_indices.Items.Count > 0 then // begin // vl_indices := 0; // helper_indice := 0; // for g := 0 to clb_indices.Items.Count - 1 do // begin // if clb_indices.Checked[g] then // begin // dtmSystem.tblIndices.RecNo := g { + 1 }; // helper_indice := // (vl_nominal * (((dtmSystem.tblIndicesPR_INDICE.AsFloat / 30) / 100) // * queryListaTitulosDT_ATRASO.AsInteger)); // vl_indices := vl_indices + helper_indice; // end; // end; // end; // queryListaTitulosVL_INDICES.AsCurrency := vl_indices; queryListaTitulosVL_INDICES.AsCurrency := 0; pl_encargos := pl_multa + pl_juros + pl_indicador { + vl_indices }; // valor encargos queryListaTitulosVL_ENCARGOS.AsCurrency := pl_encargos; vl_corrigido := vl_nominal + pl_encargos; queryListaTitulosVL_CORRIGIDO.AsCurrency := vl_corrigido; vl_cor_antes_desc := vl_corrigido; // if cb_nmulta.Checked then // begin // pl_encargos := pl_encargos - pl_multa; // vl_corrigido := vl_nominal + pl_encargos; // queryListaTitulosVL_CORRIGIDO.AsCurrency := vl_corrigido; // end; // // // valor encargos // queryListaTitulosVL_ENCARGOS.AsCurrency := pl_encargos; // if cbx_descindextras.Checked then // begin // vl_indices := 0; // helper_indice := 0; // for g := 0 to clb_indices.Items.Count - 1 do // begin // if clb_indices.Checked[g] then // begin // dtmSystem.tblIndices.RecNo := g { + 1 }; // helper_indice := // (vl_nominal * (((dtmSystem.tblIndicesPR_INDICE.AsFloat / 30) / 100) // * queryListaTitulosDT_ATRASO.AsInteger)); // helper_indice := helper_indice - // (helper_indice * (strtofloat(desc_indices_extras[g]) / 100)); // vl_indices := vl_indices + helper_indice; // end; // end; // queryListaTitulosVL_INDICES.AsCurrency := vl_indices; // end; // porcentagem da entrada // queryListaTitulosPR_ENTRADA.AsFloat := dtsCHGEmpresa.DataSet.FieldByName // ('PR_ENTRADA').AsFloat; queryListaTitulosPR_ENTRADA_MIN.AsFloat := dtsCHGEmpresa.DataSet.FieldByName ('PR_ENTRADA_MIN').AsFloat; queryListaTitulosPR_ENTRADA_MAX.AsFloat := dtsCHGEmpresa.DataSet.FieldByName ('PR_ENTRADA_MAX').AsFloat; 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 := 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 queryListaTitulosVL_DESC_QUIT_IND.AsCurrency := 0; queryListaTitulosVL_DESC_QUIT_PRIN.AsCurrency := 0; queryListaTitulosVL_DESC_QUIT_MULTA.AsCurrency := 0; queryListaTitulosVL_DESC_QUIT_JUROS.AsCurrency := 0; 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 queryListaTitulosVL_DESC_PAR_IND.AsCurrency := 0; queryListaTitulosVL_DESC_PAR_PRIN.AsCurrency := 0; queryListaTitulosVL_DESC_PAR_MULTA.AsCurrency := 0; queryListaTitulosVL_DESC_PAR_JUROS.AsCurrency := 0; 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 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; 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; { dtmSystem.tblTitulos.Locate('ID_TITULO', queryListaTitulosID_TITULO.AsInteger, []); vl_despesa := 0.00; tx_despesa := ''; if not dtmSystem.tblDespesasTitulos.IsEmpty then begin dtmSystem.tblDespesasTitulos.First; while not dtmSystem.tblDespesasTitulos.Eof do begin if dtmSystem.tblDespesasTitulosTP_DESPESA.AsString = 'Adicionar' then begin vl_despesa := vl_despesa + dtmSystem.tblDespesasTitulosVL_DESPESA. AsCurrency; tx_despesa := dtmSystem.tblDespesasTitulosTX_DESCRICAO.AsString + '(' + CurrToStrF(dtmSystem.tblDespesasTitulosVL_DESPESA.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '),'; end else begin vl_despesa := vl_despesa - dtmSystem.tblDespesasTitulosVL_DESPESA. AsCurrency; tx_despesa := dtmSystem.tblDespesasTitulosTX_DESCRICAO.AsString + '(' + CurrToStrF(dtmSystem.tblDespesasTitulosVL_DESPESA.AsCurrency, ffCurrency, 2, dtmSystem.CusFmt) + '),'; end; dtmSystem.tblDespesasTitulos.Next; end; Delete(tx_despesa, length(tx_despesa), 1); end; queryListaTitulosTX_DESPESA.AsString := tx_despesa; queryListaTitulosVL_DESPESA.AsCurrency := vl_despesa; if cbx_despesas.Checked then begin queryListaTitulosVL_CORRIGIDO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency - queryListaTitulosVL_DESPESA.AsCurrency; 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; queryListaTitulosVL_EXTRAS.AsCurrency := 0; queryListaTitulosVL_REPASSE_BANCO.AsCurrency := 0; queryListaTitulosVL_RETIRADA_TAXA.AsCurrency := 0; if (strtoint(edt_nrparcelas.Text) = 0) and (cb_formapag.ItemIndex = 1) then // débito 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)); queryListaTitulosVL_REPASSE_BANCO.AsCurrency := queryListaTitulosVL_CORRIGIDO.AsCurrency * (dtsEmpresa.DataSet.FieldByName('PR_BANCO_DEBITO').AsFloat / 100); if queryListaTitulosVL_REPASSE_BANCO.AsCurrency > 0 then begin queryListaTitulosVL_RETIRADA_TAXA.AsCurrency := queryListaTitulosVL_EXTRAS.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency; end else begin queryListaTitulosVL_RETIRADA_TAXA.AsCurrency := 0; end; queryListaTitulosVL_INDICADOR.AsCurrency := queryListaTitulosVL_INDICADOR.AsCurrency + queryListaTitulosVL_RETIRADA_TAXA.AsCurrency; 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; // dtsCHGEmpresa.DataSet.Locate('ID_EMPRESA', // queryListaTitulosID_EMPRESA.AsString, []); if (strtoint(edt_nrparcelas.Text) > 0) then begin pr_banco := 0; 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; dtmSystem.tblPrCartao.Locate('NR_PARCELA', strtoint(edt_nrparcelas.Text), []); pr_banco := dtmSystem.tblPrCartaoPR_REPASSE.AsFloat / 100; { case (strtoint(edt_nrparcelas.Text)) of 1: begin pr_banco := dtsEmpresa.DataSet.FieldByName ('PR_BANCO_CREDVISTA').AsFloat / 100; end; 2, 3: begin pr_banco := dtsEmpresa.DataSet.FieldByName('PR_BANCO_CRED3') .AsFloat / 100; end; 4, 5, 6: begin pr_banco := dtsEmpresa.DataSet.FieldByName('PR_BANCO_CRED6') .AsFloat / 100; end; 7, 8, 9, 10, 11, 12: begin pr_banco := dtsEmpresa.DataSet.FieldByName('PR_BANCO_CRED12') .AsFloat / 100; end; 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)); 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; 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); // queryListaTitulosVL_REPASSE_BANCO.AsCurrency := // queryListaTitulosVL_EXTRAS.AsCurrency - // ((queryListaTitulosVL_CORRIGIDO.AsCurrency - // queryListaTitulosVL_ENTRADA.AsCurrency) * pr_banco); queryListaTitulosVL_REPASSE_BANCO.AsCurrency := ((strtoint(edt_nrparcelas.Text) * queryListaTitulosVL_PARCELA.AsCurrency) * pr_banco); queryListaTitulosVL_RETIRADA_TAXA.AsCurrency := queryListaTitulosVL_EXTRAS.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency; queryListaTitulosVL_INDICADOR.AsCurrency := queryListaTitulosVL_INDICADOR.AsCurrency + queryListaTitulosVL_RETIRADA_TAXA.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; dtmSystem.tblPrCartao.Locate('NR_PARCELA', strtoint(edt_nrparcelas.Text), []); pr_banco := dtmSystem.tblPrCartaoPR_REPASSE.AsFloat / 100; { case (strtoint(edt_nrparcelas.Text)) of 1: begin pr_banco := dtsEmpresa.DataSet.FieldByName ('PR_BANCO_CREDVISTA').AsFloat / 100; end; 2, 3: begin pr_banco := dtsEmpresa.DataSet.FieldByName('PR_BANCO_CRED3') .AsFloat / 100; end; 4, 5, 6: begin pr_banco := dtsEmpresa.DataSet.FieldByName('PR_BANCO_CRED6') .AsFloat / 100; end; 7, 8, 9, 10, 11, 12: begin pr_banco := dtsEmpresa.DataSet.FieldByName('PR_BANCO_CRED12') .AsFloat / 100; end; 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_EXTRAS.AsCurrency; queryListaTitulosVL_CORRIGIDO.AsCurrency := RoundTo(queryListaTitulosVL_ENTRADA.AsCurrency, -2) + (strtoint(edt_nrparcelas.Text) * queryListaTitulosVL_PARCELA.AsCurrency); // queryListaTitulosVL_REPASSE_BANCO.AsCurrency := // queryListaTitulosVL_EXTRAS.AsCurrency - // ((queryListaTitulosVL_CORRIGIDO.AsCurrency - // queryListaTitulosVL_ENTRADA.AsCurrency) * pr_banco); queryListaTitulosVL_REPASSE_BANCO.AsCurrency := ((strtoint(edt_nrparcelas.Text) * queryListaTitulosVL_PARCELA.AsCurrency) * pr_banco); queryListaTitulosVL_RETIRADA_TAXA.AsCurrency := queryListaTitulosVL_EXTRAS.AsCurrency - queryListaTitulosVL_REPASSE_BANCO.AsCurrency; queryListaTitulosVL_INDICADOR.AsCurrency := queryListaTitulosVL_INDICADOR.AsCurrency + queryListaTitulosVL_RETIRADA_TAXA.AsCurrency; end; end; end; procedure TfrmAtendimento.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 TfrmAtendimento.up_nrparcelasClick(Sender: TObject; Button: TUDBtnType); begin end; // procedure TfrmAtendimento.WMMoving(var Msg: TWMMoving); // var // workArea: TRect; // begin // workArea := Screen.WorkareaRect; // // with Msg.DragRect^ do // begin // if left < workArea.left then // OffsetRect(Msg.DragRect^, workArea.left - left, 0); // // if Top < workArea.Top then // OffsetRect(Msg.DragRect^, 0, workArea.Top - Top); // // if Right > workArea.Right then // OffsetRect(Msg.DragRect^, workArea.Right - Right, 0); // // if Bottom > workArea.Bottom then // OffsetRect(Msg.DragRect^, 0, workArea.Bottom - Bottom); // end; // // end; end.