unit ufrmCobranca; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.UITypes, Data.DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, Vcl.Menus, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.StdCtrls, Vcl.Controls, System.Classes, Vcl.Graphics, Vcl.Forms, Vcl.Dialogs, System.Math, Vcl.Grids, Vcl.DBGrids, IniFiles, RLPreview, RLPreviewForm, DateUtils, FireDAC.Stan.Def, FireDAC.Phys.IBWrapper, FireDAC.Phys.FBDef, FireDAC.UI.Intf, FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys, System.StrUtils, IoUtils, FireDAC.Phys.IBBase, FireDAC.Phys.FB, FireDAC.Stan.Intf, Datasnap.DBClient, Vcl.DBCtrls, Vcl.AppEvnts; const WM_STARTUP = WM_USER; type TfrmCobranca = class(TForm) tmr_login: TTimer; mnu_main: TMainMenu; mnuCadastros: TMenuItem; mnuCredores: TMenuItem; mnuUsuarios: TMenuItem; mnuOpcoes: TMenuItem; mnu_ajuda: TMenuItem; mnu_login: TMenuItem; mnu_altlogin: TMenuItem; pnl_principal: TPanel; N1: TMenuItem; mnuEmpresa: TMenuItem; mnuDevedores: TMenuItem; stsbar: TStatusBar; mnuProvidencias: TMenuItem; mnuFerramentas: TMenuItem; mnuCobrancaTel: TMenuItem; mnuPesquisa: TMenuItem; mnuGerCampanha: TMenuItem; timer_display: TTimer; dtsAgenda: TDataSource; queryagenda: TZQuery; Visualizar1: TMenuItem; Agenda1: TMenuItem; mnuAtendimento: TMenuItem; N2: TMenuItem; mnuIndices: TMenuItem; mnuRelatorios: TMenuItem; mnuEntrada: TMenuItem; mnuModeloRepasse: TMenuItem; mnuPrestacaoContas: TMenuItem; mnuAgendamento: TMenuItem; tmr_sessao: TTimer; mnu_RecibosEmitidos: TMenuItem; mnuBancoDados: TMenuItem; N3: TMenuItem; mnuConfLayout: TMenuItem; mnuRecibos: TMenuItem; mnuBackup: TMenuItem; mnuRestaurar: TMenuItem; N4: TMenuItem; mnuEnvBancoOnline: TMenuItem; N5: TMenuItem; mnuDigito9: TMenuItem; N6: TMenuItem; mnuTxtEmail: TMenuItem; pnl_alertaagenda: TPanel; mnuMandaEmail: TMenuItem; ConfiguraodoPopUpdeInicializao1: TMenuItem; N7: TMenuItem; mnuImptcc: TMenuItem; mnuCentralPlanilhamento: TMenuItem; PrestaodeContasTCC1: TMenuItem; mnuAgenda: TMenuItem; N8: TMenuItem; mnuVerrecibos: TMenuItem; mnuRankings: TMenuItem; RelatriodeGerncia1: TMenuItem; Departamentos1: TMenuItem; mnuLog: TMenuItem; mnuRelAcordos: TMenuItem; N9: TMenuItem; mnuBoletos: TMenuItem; memo_update: TMemo; tmr_update: TTimer; ImportaodeDevedores1: TMenuItem; mnuContas: TMenuItem; mnuRemessa: TMenuItem; appEvents: TApplicationEvents; procedure tmr_loginTimer(Sender: TObject); procedure mnu_altloginClick(Sender: TObject); procedure mnuCredoresClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure mnuEmpresaClick(Sender: TObject); procedure mnuUsuariosClick(Sender: TObject); procedure mnuDevedoresClick(Sender: TObject); procedure mnuProvidenciasClick(Sender: TObject); procedure mnuCobrancaTelClick(Sender: TObject); procedure mnuPesquisaClick(Sender: TObject); procedure mnuGerCampanhaClick(Sender: TObject); procedure stsbarDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); procedure timer_displayTimer(Sender: TObject); procedure Agenda1Click(Sender: TObject); procedure Panel2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel2MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure mnuAtendimentoClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure mnuIndicesClick(Sender: TObject); procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); procedure FormShow(Sender: TObject); procedure mnuEntradaClick(Sender: TObject); procedure mnuModeloRepasseClick(Sender: TObject); procedure mnuPrestacaoContasClick(Sender: TObject); procedure stsbarDblClick(Sender: TObject); procedure mnuAgendamentoClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure tmr_sessaoTimer(Sender: TObject); procedure mnu_RecibosEmitidosClick(Sender: TObject); procedure mnuContasClick(Sender: TObject); procedure mnuConfLayoutClick(Sender: TObject); procedure mnuRecibosClick(Sender: TObject); procedure mnuRestaurarClick(Sender: TObject); procedure mnuEnvBancoOnlineClick(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure mnuDigito9Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure mnuTxtEmailClick(Sender: TObject); procedure mnuMandaEmailClick(Sender: TObject); procedure ConfiguraodoPopUpdeInicializao1Click(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure mnuImptccClick(Sender: TObject); procedure mnuCentralPlanilhamentoClick(Sender: TObject); procedure PrestaodeContasTCC1Click(Sender: TObject); procedure mnuAgendaClick(Sender: TObject); procedure mnuVerrecibosClick(Sender: TObject); procedure mnuRankingsClick(Sender: TObject); procedure RelatriodeGerncia1Click(Sender: TObject); procedure Departamentos1Click(Sender: TObject); procedure mnuLogClick(Sender: TObject); procedure mnuRelAcordosClick(Sender: TObject); procedure mnuBoletosClick(Sender: TObject); procedure tmr_updateTimer(Sender: TObject); procedure ImportaodeDevedores1Click(Sender: TObject); procedure mnuRemessaClick(Sender: TObject); procedure appEventsException(Sender: TObject; E: Exception); private FValidKeyCombo: Boolean; procedure ChecaPermissoes; procedure WMStartup(var Msg: TMessage); message WM_STARTUP; { Private declarations } public { Public declarations } acesso: Boolean; dia_atrasado, tempo_atrasado, eh_hoje: Boolean; quanto_faltat: TTime; MouseDownSpot: TPoint; Capturing: bool; after_show: Boolean; campanha: Integer; pesquisa_camp: Boolean; importar: Boolean; procedure fecharformsabertas(name_form: string); procedure atualizaagenda(); end; var frmCobranca: TfrmCobranca; implementation {$R *.dfm} uses ufrmLogin, udtmSystem, ucadCredor, ucadEmpresa, ucadUsuarios, ucadDevedores, ufrmVerIE, ufrmProgressEC, ucadProvidencias, ufrmEfetuarCobranca, ufrmCampanha, ufrmPesquisa, ufrmEscolheCampanha, urelRecibo, ufrmAgenda, ufrmAtendimento, ucadIndices, uconfrelBordero, ucadModeloRepasse, uconfrelPrestacaoContas, ufrmAgendamento, uconfrelRecibosEmitidos, urelTeste, ucadContas, uconfLayouts, ufrmAchaRecibo, ufrmLiberaPermissao, ufrmDigito9, ucadTextEmail, ufrmMandaMensagem, ufrmPopUp, urelHistorico, ufrmCentralPlanilhamento, ufrmRankings, uimpDevedores, urelRelacaoAcordo, urelPrestacaoAnaSin, uconfRelGerencia, ufrmDepartamentos, ufrmLogActions, uconfrelAcordos, ufrmCentralBoletos, ufrmRemessa, uHelperFunctions; procedure TfrmCobranca.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); begin // método para impedir que a form seja redimensionada if after_show then begin Resize := false; end else begin Resize := true; end; end; procedure TfrmCobranca.FormClose(Sender: TObject; var Action: TCloseAction); begin // parte do método pra verificar a sessão do usuário // aqui a sessão dele é terminada se o programa foi fechado corretamente // desabilitada a pedido da Bruna // with dtmSystem do // begin // tblLogins.Open; // tblLogins.Filter := 'ID_USUARIO = ' + inttostr(id_usuario); // tblLogins.Filtered := true; // tblLogins.Last; // tblLogins.Edit; // tblLoginsDT_LOGOFF.AsDateTime := Date; // tblLoginsHR_LOGOFF.AsDateTime := now; // tblLogins.Post; // tblLogins.Filter := ''; // tblLogins.Filtered := false; // tblLogins.Close; // if not tblSessao.Active then // begin // tblSessao.Open; // end; // if tblSessao.Locate('ID_USUARIO', id_usuario, []) then // begin // tblSessao.Delete; // tblSessao.Close; // end; // end; // dtmSystem.LogaDC('mandou fechar programa ' + inttostr(dtmSystem.id_usuario)); // Application.Terminate; end; procedure TfrmCobranca.FormCreate(Sender: TObject); var logo: TImage; // hoje: string; begin // pnl_principal.visible := false; // Faz com que a janela ocupe a tela inteira Width := Screen.WorkAreaWidth; Height := Screen.WorkAreaHeight; BoundsRect := Screen.WorkAreaRect; dtmSystem.mostrar_senha := false; after_show := false; stsbar.Panels[3].Width := stsbar.Width - stsbar.Panels[0].Width - stsbar.Panels[1].Width - stsbar.Panels[2].Width - 150; // Carrega o logo do programa try logo := TImage.Create(pnl_principal); logo.Parent := pnl_principal; logo.Picture.LoadFromFile(ExtractFileDir(Application.ExeName) + '\nexverse-logo.jpg'); logo.Height := logo.Picture.Height; logo.Width := logo.Picture.Width; logo.Top := Round((logo.Parent.Height / 2) - (logo.Height / 2)); logo.Left := Round((logo.Parent.Width / 2) - (logo.Width / 2)); logo.Visible := true; except end; // inicializa o histórico da pesquisa dtmSystem.cdsHist.Close; dtmSystem.cdsHist.CreateDataSet; dtmSystem.tblDepartamentos.Open; dtmSystem.tx_formulario := TForm(Sender).Caption; importar := false; end; procedure TfrmCobranca.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); // var // i: Integer; begin // método para dar permissões "on the fly" if (Key = 75) and (Shift = [ssCtrl]) then begin frmLiberaPermissao := TfrmLiberaPermissao.Create(self); with frmLiberaPermissao do begin level := 0; string_permissoes.Add('CBR.01'); string_permissoes.Add('CBR.01.01'); string_permissoes.Add('CBR.01.02'); string_permissoes.Add('CBR.01.03'); string_permissoes.Add('CBR.01.04'); string_permissoes.Add('CBR.01.05'); string_permissoes.Add('CBR.01.06'); string_permissoes.Add('CBR.01.07'); string_permissoes.Add('CBR.01.08'); string_permissoes.Add('CBR.01.09'); string_permissoes.Add('CBR.01.10'); string_permissoes.Add('CBR.01.11'); string_permissoes.Add('CBR.02'); string_permissoes.Add('CBR.02.01'); string_permissoes.Add('CBR.02.02'); string_permissoes.Add('CBR.02.03'); string_permissoes.Add('CBR.02.04'); string_permissoes.Add('CBR.02.05'); string_permissoes.Add('CBR.02.06'); string_permissoes.Add('CBR.02.07'); string_permissoes.Add('CBR.03'); string_permissoes.Add('CBR.03.01'); string_permissoes.Add('CBR.03.02'); string_permissoes.Add('CBR.03.03'); string_permissoes.Add('CBR.03.04'); string_permissoes.Add('CBR.04'); string_permissoes.Add('CBR.04.01'); string_permissoes.Add('CBR.04.02'); string_permissoes.Add('CBR.04.03.01'); string_permissoes.Add('CBR.04.03.02'); string_permissoes.Add('CBR.04.04'); string_permissoes.Add('CBR.04.05'); string_permissoes.Add('CBR.04.06'); ShowModal; if ModalResult = mrOk then begin case dtmSystem.cod_liberapermissao of 0: mnuFerramentas.Visible := true; 1: begin mnuFerramentas.Visible := true; mnuCobrancaTel.Visible := true; end; 2: begin mnuFerramentas.Visible := true; mnuPesquisa.Visible := true; end; 3: begin mnuFerramentas.Visible := true; mnuAtendimento.Visible := true; end; 4: begin mnuFerramentas.Visible := true; mnuGerCampanha.Visible := true; end; 5: begin mnuFerramentas.Visible := true; mnuAgendamento.Visible := true; end; 6: begin mnuFerramentas.Visible := true; mnuMandaEmail.Visible := true; end; 7: begin mnuFerramentas.Visible := true; mnuDigito9.Visible := true; end; 8: begin mnuFerramentas.Visible := true; mnuImptcc.Visible := true; end; 9: begin mnuFerramentas.Visible := true; mnuCentralPlanilhamento.Visible := true; end; 10: begin mnuFerramentas.Visible := true; mnuVerrecibos.Visible := true; end; 11: begin mnuFerramentas.Visible := true; mnuRankings.Visible := true; end; 12: mnuCadastros.Visible := true; 13: begin mnuCadastros.Visible := true; mnuDevedores.Visible := true; end; 14: begin mnuCadastros.Visible := true; mnuCredores.Visible := true; end; 15: begin mnuCadastros.Visible := true; mnuUsuarios.Visible := true; end; 16: begin mnuCadastros.Visible := true; mnuProvidencias.Visible := true; end; 17: begin mnuCadastros.Visible := true; mnuEmpresa.Visible := true; end; 18: begin // mnuCadastros.Visible := true; // mnuContas.Visible := true; end; 19: begin mnuCadastros.Visible := true; mnuTxtEmail.Visible := true; end; 20: mnuRelatorios.Visible := true; 21: begin mnuRelatorios.Visible := true; mnuEntrada.Visible := true; end; 22: begin mnuRelatorios.Visible := true; mnuPrestacaoContas.Visible := true; end; 23: begin mnuRelatorios.Visible := true; mnu_RecibosEmitidos.Visible := true; end; 24: begin mnuRelatorios.Visible := true; // PrestaodeContasTCC1.Visible := true; end; 25: mnuOpcoes.Visible := true; 26: begin mnuOpcoes.Visible := true; mnuIndices.Visible := true; end; 27: begin mnuOpcoes.Visible := true; mnuModeloRepasse.Visible := true; end; 28: begin mnuOpcoes.Visible := true; // mnuBancoDados.Visible := true; mnuBackup.Visible := true; end; 29: begin mnuOpcoes.Visible := true; // mnuBancoDados.Visible := true; mnuRestaurar.Visible := true; end; 30: begin mnuOpcoes.Visible := true; mnuConfLayout.Visible := true; end; 31: begin mnuOpcoes.Visible := true; ConfiguraodoPopUpdeInicializao1.Visible := true; end; end; end; end; { // If (GetKeyState(Ord('Q'))<0) and (GetKeyState(Ord('N'))<0) and (GetKeyState(VK_CONTROL)<0) // Then ShowMessage('You did it :)'); // Função pra facilitar a troca de versão por hora. Rename no executável pra poder colocar um novo na pasta if (Key in [82, 78]) then begin if (Shift = [ssCtrl]) then begin FValidKeyCombo := true; end; end; if FValidKeyCombo and (Shift = [ssCtrl]) then begin case Key of // 82: // if GetKeyState(78) < 0 then // begin // RenameFile('Cobrança.exe', 'Cobrança_old.exe'); // end; 78: if GetKeyState(82) < 0 then begin if dtmSystem.id_usuario = 71 then begin if FileExists('Cobrança_old.exe') then begin i := 1; while FileExists('Cobrança_old' + inttostr(i) + '.exe') do begin Inc(i, 1); end; if (i - 1) = 0 then begin RenameFile('Cobrança_old.exe', 'Cobrança_old' + inttostr(i) + '.exe'); end else begin RenameFile('Cobrança_old' + inttostr(i - 1) + '.exe', 'Cobrança_old' + inttostr(i) + '.exe'); end; end else begin RenameFile('Cobrança.exe', 'Cobrança_old.exe'); end; end; end; end; end; // FValidKeyCombo := ((Shift = [ssCtrl]) and (Key in [82, 77])); // RenameFile('Cobrança.exe', 'Cobrança_old.exe'); } end; end; procedure TfrmCobranca.FormKeyPress(Sender: TObject; var Key: Char); begin FValidKeyCombo := false; end; procedure TfrmCobranca.FormShow(Sender: TObject); begin // saber que a form já foi mostrada para impedir o redimensionamento after_show := true; PostMessage(Handle, WM_STARTUP, 0, 0); end; procedure TfrmCobranca.ImportaodeDevedores1Click(Sender: TObject); begin impDevedores := TimpDevedores.Create(self); impDevedores.ShowModal; end; procedure TfrmCobranca.mnuAgendaClick(Sender: TObject); begin frmAgenda := TfrmAgenda.Create(self); frmAgenda.Show; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); end; procedure TfrmCobranca.mnuAgendamentoClick(Sender: TObject); begin frmAgendamento := TfrmAgendamento.Create(self); frmAgendamento.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuAgendamento.Visible := dtmSystem.VerificarPermissao('CBR.01.05'); end; procedure TfrmCobranca.mnuAtendimentoClick(Sender: TObject); begin // mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.04'); // mnuAtendimento.Visible := dtmSystem.VerificarPermissao('CBR.04.04'); // abertura da janela de atendimento dtmSystem.OpenOrRefresh(dtmSystem.tblDevedores); if dtmSystem.tblDevedores.RecordCount = 0 then begin MessageDlg ('Não há devedores cadastrados para que um atendimento possa ser feito.' + ' Não é possível abrir o atendimento.', mtWarning, [mbOK], 0); end else begin frmAtendimento := TfrmAtendimento.Create(self); frmAtendimento.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuAtendimento.Visible := dtmSystem.VerificarPermissao('CBR.01.03'); end; end; procedure TfrmCobranca.mnuEntradaClick(Sender: TObject); begin // chama janela de config do relatório de entrada confrelBordero := TconfrelBordero.Create(self); confrelBordero.ShowModal; mnuRelatorios.Visible := dtmSystem.VerificarPermissao('CBR.03'); mnuEntrada.Visible := dtmSystem.VerificarPermissao('CBR.03.01'); end; procedure TfrmCobranca.mnuEnvBancoOnlineClick(Sender: TObject); begin // primeiros testes pro envio do banco online para site de cobrança // with dtmSystem do // begin // try // JsonBuilderOnline(tblEstados, 'cobranca.estado', 'ID_ESTADO', // 'http://192.168.0.154:8000/api/cobranca/estados'); // Except // // end; // end; mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.04'); mnuEnvBancoOnline.Visible := dtmSystem.VerificarPermissao('CBR.04.06'); end; procedure TfrmCobranca.mnuIndicesClick(Sender: TObject); begin mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.04'); mnuIndices.Visible := dtmSystem.VerificarPermissao('CBR.04.01'); // chama janela de cadastro de índices cadIndices := TcadIndices.Create(self); cadIndices.ShowModal; end; procedure TfrmCobranca.mnuLogClick(Sender: TObject); begin frmLogActions := TfrmLogActions.Create(self); frmLogActions.ShowModal; end; procedure TfrmCobranca.mnuMandaEmailClick(Sender: TObject); begin frmMandaMensagem := TfrmMandaMensagem.Create(self); frmMandaMensagem.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuMandaEmail.Visible := dtmSystem.VerificarPermissao('CBR.01.06'); end; procedure TfrmCobranca.mnuModeloRepasseClick(Sender: TObject); begin mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.04'); mnuModeloRepasse.Visible := dtmSystem.VerificarPermissao('CBR.04.02'); // chama a janela de modelos de repasse cadModeloRepasse := TcadModeloRepasse.Create(self); cadModeloRepasse.ShowModal; end; procedure TfrmCobranca.mnuPrestacaoContasClick(Sender: TObject); begin // mnuRelatorios.Visible := dtmSystem.VerificarPermissao('CBR.03'); // mnuPrestacaoContas.Visible := dtmSystem.VerificarPermissao('CBR.03.02'); // chama a janela de config do relatório de prestação de contas confrelPrestacaoContas := TconfrelPrestacaoContas.Create(self); confrelPrestacaoContas.ShowModal; mnuRelatorios.Visible := dtmSystem.VerificarPermissao('CBR.03'); mnuPrestacaoContas.Visible := dtmSystem.VerificarPermissao('CBR.03.02'); end; procedure TfrmCobranca.mnu_altloginClick(Sender: TObject); var hoje: string; begin // Alterar o tipo de usuário logado // tmr_sessao.Enabled := false; with dtmSystem do begin // abre a tabela usuários OpenOrRefresh(tblUsuarios); if tblUsuarios.IsEmpty then begin // tmr_sessao.Enabled := true; exit; // se vazia, sai end; // parte do processo de controle de sessão de ususário // desabilitado a pedido da Bruna // with dtmSystem do // begin // tblLogins.Open; // tblLogins.Filter := 'ID_USUARIO = ' + inttostr(id_usuario); // tblLogins.Filtered := true; // tblLogins.Last; // tblLogins.Edit; // tblLoginsDT_LOGOFF.AsDateTime := Date; // tblLoginsHR_LOGOFF.AsDateTime := now; // tblLogins.Post; // tblLogins.Filter := ''; // tblLogins.Filtered := false; // tblLogins.Close; // if not tblSessao.Active then // begin // tblSessao.Open; // end; // if tblSessao.Locate('ID_USUARIO', id_usuario, []) then // begin // tblSessao.Delete; // tblSessao.Close; // end; // end; with TfrmLogin.Create(nil) do begin try ShowModal; // abre a janela login (frmLogin) finally Free; end; end; if acesso = false then begin Application.Terminate; // se o usuário não teve acesso (qualquer motivo), fecha o programa end; // abre as tabelas pra ver os acessos OpenOrRefresh(tblPermissoes); OpenOrRefresh(tblGrupos); OpenOrRefresh(tblGruposPermissoes); if acesso = true then begin // código de tratamento de usuário vem aqui a princípio stsbar.Panels[0].Text := 'Usuário: ' + dtmSystem.tx_usuario + ' Grupo: ' + dtmSystem.tx_grupo; stsbar.Panels[1].Text := 'Ctrl+k para conceder permissões'; stsbar.Panels[2].Text := 'Banco de dados: ' + dtmSystem.ZConnection.Database; stsbar.Panels[3].Text := 'Versão: ' + GetAppVersionStr; timer_display.Interval := 1; hoje := DateToStr(Date); hoje := RightStr(hoje, 4) + '-' + copy(hoje, 4, 2) + '-' + LeftStr(hoje, 2); with zroqryContatos.SQL do begin Clear; Add('select'); Add('h.id_cobrador,'); Add('case when u.tx_nome is not NULL then u.tx_nome when u.tx_nome is NULL then ' + Quotedstr('Usuário Inexistente') + ' end as NOME,'); Add('COUNT (DISTINCT h.ID_DEVEDOR) as qtde_acionamentos'); Add('from chg_historico h'); Add('left join sys_usuarios u on h.id_cobrador = u.id_usuario'); Add('where h.id_cobrador in (select id_usuario from sys_usuarios where tp_ativo = ' + Quotedstr('S') + ')'); Add('and CAST(h.dt_contato AS DATE) >= ' + Quotedstr(hoje) + ' and'); Add('CAST(h.dt_contato AS DATE) <= ' + Quotedstr(hoje)); Add('and h.id_cobrador = ' + inttostr(dtmSystem.id_usuario)); Add('group by h.id_cobrador, u.tx_nome'); Add('order by NOME, qtde_acionamentos desc'); end; zroqryContatos.Open; MakePermissoes; ChecaPermissoes; perm_caddev := true; perm_cobtel := true; atualizaagenda; with TIniFile.Create(ExtractFilePath(Application.ExeName) + 'sistema.ini') do begin dtmSystem.public_key := ReadString('cert', 'pub-key', ''); dtmSystem.private_key := ReadString('cert', 'priv-key', ''); dtmSystem.certificate_key := ReadString('cert', 'cert-key', ''); dtmSystem.conta_corrente := ReadString('cert', 'cc', ''); end; if (dtmSystem.public_key <> '') and (dtmSystem.id_grupo = 1) then begin mnuBoletos.Visible := true; end else begin mnuBoletos.Visible := false; end; // parte do processo de controle e sessão do usuário // desabilitado a pedido da Bruna // with dtmSystem do // begin // tblLogins.Open; // tblLogins.Append; // tblLoginsID_USUARIO.AsInteger := id_usuario; // tblLoginsDT_LOGIN.AsDateTime := Date; // tblLoginsHR_LOGIN.AsDateTime := now; // tblLogins.Post; // tblLogins.Close; // if not tblSessao.Active then // begin // tblSessao.Open; // end; // if not(tblSessao.Locate('ID_USUARIO', id_usuario, [])) then // begin // tblSessao.Append; // tblSessaoID_USUARIO.AsInteger := id_usuario; // tblSessaoTP_ATIVA.AsInteger := 1; // tblSessao.Post; // end; // end; // tmr_sessao.Enabled := true; end; end; end; procedure TfrmCobranca.mnuImptccClick(Sender: TObject); begin // frmImpTCC := TfrmImpTCC.Create(self); // frmImpTCC.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01.08'); end; procedure TfrmCobranca.mnu_RecibosEmitidosClick(Sender: TObject); begin confrelRecibosEmitidos := TconfrelRecibosEmitidos.Create(self); confrelRecibosEmitidos.ShowModal; mnuRelatorios.Visible := dtmSystem.VerificarPermissao('CBR.03'); mnu_RecibosEmitidos.Visible := dtmSystem.VerificarPermissao('CBR.03.03'); end; procedure TfrmCobranca.mnuDevedoresClick(Sender: TObject); begin // mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); // mnuDevedores.Visible := dtmSystem.VerificarPermissao('CBR.02.03'); // chamada da janela de devedores if not dtmSystem.tblCHGEmpresa.Active then begin dtmSystem.tblCHGEmpresa.Open; end; if dtmSystem.tblCHGEmpresa.IsEmpty then begin MessageDlg ('Por favor cadastre Beneficiários antes de cadastrar algum Devedor.', mtWarning, [mbOK], 0); end else begin Screen.Cursor := crHourGlass; cadDevedores := TcadDevedores.Create(self); // abre a janela devedores cadDevedores.pesquisa := 0; // sinaliza que não foi aberto através de pesquisa cadDevedores.ShowModal; if importar then begin with TimpDevedores.Create(self) do begin ShowModal; end; end; end; mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); mnuDevedores.Visible := dtmSystem.VerificarPermissao('CBR.02.01'); end; procedure TfrmCobranca.mnuDigito9Click(Sender: TObject); begin // Método para adicionar o dígito 9 aos telefones celulares e garantir que estão marcados como fixo/celular de forma correta if (MessageDlg ('Esta operação irá adicionar o dígito 9 a todos os números de celular que ainda não o possuam.' + ' Isso pode demorar alguns minutos. Deseja continuar?', mtConfirmation, mbYesNo, 0) = mrYes) then begin frmDigito9 := TfrmDigito9.Create(self); frmDigito9.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuDigito9.Visible := dtmSystem.VerificarPermissao('CBR.01.07'); end; end; procedure TfrmCobranca.mnuUsuariosClick(Sender: TObject); begin // mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); // mnuUsuarios.Visible := dtmSystem.VerificarPermissao('CBR.02.02'); // abrir a janela de usuários - é instânciado a classe numa variável para que possamos // acessar as variáveis dentro da classe cadUsuarios := TcadUsuarios.Create(self); cadUsuarios.ShowModal; mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); mnuUsuarios.Visible := dtmSystem.VerificarPermissao('CBR.02.03'); end; procedure TfrmCobranca.Panel2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // teste pra poder mover um componentes arrastanto com o mouse //SetCapture(Panel2.Handle); Capturing := true; MouseDownSpot.X := X; MouseDownSpot.Y := Y; end; procedure TfrmCobranca.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Left, Top: Integer; begin // teste pra poder mover um componentes arrastanto com o mouse if Capturing then begin //Left := Panel2.Left - (MouseDownSpot.X - X); //Top := Panel2.Top - (MouseDownSpot.Y - Y); if Left <= 1 then begin Left := 1; end; if Top <= 1 then begin Top := 1; end; // if Left >= (frmCobranca.ClientWidth - Panel2.Width) then // begin // Left := (frmCobranca.ClientWidth - Panel2.Width); // end; // if Top >= (frmCobranca.ClientHeight - Panel2.Height) then // begin // Top := (frmCobranca.ClientHeight - Panel2.Height); // end; // Panel2.Left := Left; // Panel2.Top := Top; end; end; procedure TfrmCobranca.Panel2MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Left, Top: Integer; begin // teste pra poder mover um componentes arrastanto com o mouse if Capturing then begin ReleaseCapture; Capturing := false; //Left := Panel2.Left - (MouseDownSpot.X - X); //Top := Panel2.Top - (MouseDownSpot.Y - Y); if Left <= 1 then begin Left := 1; end; if Top <= 1 then begin Top := 1; end; //Panel2.Left := Left; //Panel2.Top := Top; end; end; procedure TfrmCobranca.PrestaodeContasTCC1Click(Sender: TObject); begin // confrelRelatorioTCC := TconfrelRelatorioTCC.Create(self); // confrelRelatorioTCC.ShowModal; mnuRelatorios.Visible := dtmSystem.VerificarPermissao('CBR.03'); PrestaodeContasTCC1.Visible := dtmSystem.VerificarPermissao('CBR.03.04'); end; procedure TfrmCobranca.RelatriodeGerncia1Click(Sender: TObject); begin confRelGerencia := TconfRelGerencia.Create(self); confRelGerencia.ShowModal; end; procedure TfrmCobranca.mnuPesquisaClick(Sender: TObject); begin // abrir a pesquisa de devedores if frmPesquisa <> nil then begin frmPesquisa.SetFocus; abort; end; frmPesquisa := TfrmPesquisa.Create(self); frmPesquisa.Show; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuPesquisa.Visible := dtmSystem.VerificarPermissao('CBR.01.02'); end; procedure TfrmCobranca.mnuRankingsClick(Sender: TObject); begin frmRanking := TfrmRanking.Create(self); frmRanking.ShowModal; mnuRankings.Visible := dtmSystem.VerificarPermissao('CBR.01.11'); end; procedure TfrmCobranca.mnuRecibosClick(Sender: TObject); begin frmAchaRecibo := TfrmAchaRecibo.Create(self); frmAchaRecibo.ShowModal; end; procedure TfrmCobranca.mnuRelAcordosClick(Sender: TObject); begin confrelAcordos := TconfrelAcordos.Create(self); confrelAcordos.ShowModal; end; procedure TfrmCobranca.mnuRemessaClick(Sender: TObject); begin frmRemessa := TfrmRemessa.Create(self); frmRemessa.ShowModal; end; procedure TfrmCobranca.mnuProvidenciasClick(Sender: TObject); begin // mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); // mnuReferencias.Visible := dtmSystem.VerificarPermissao('CBR.02.04'); // chama a janela de providências/referências cadProvidencias := TcadProvidencias.Create(self); cadProvidencias.ShowModal; mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); mnuProvidencias.Visible := dtmSystem.VerificarPermissao('CBR.02.04'); end; procedure TfrmCobranca.mnuRestaurarClick(Sender: TObject); begin // Restauração de Banco de Dados // mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.01'); // mnuBancoDados.Visible := dtmSystem.VerificarPermissao('CBR.01.03'); // if MessageDlg // ('Você está prestes a restaurar o Banco de dados para uma versão mais antiga. Realmente deseja continuar? ' // + 'Esta ação se realizada incorretamente pode causar erros gravíssimos. ' + // 'Após a restauração o programa deve ser reiniciado.', mtWarning, // [mbYes, mbNo], 0) = mrYes then // begin // with odRestore do // begin // Execute; // if odRestore.FileName <> '' then // begin // try // dtmSystem.ZConnection.Disconnect; // dtmSystem.ZConnection.Connect; // // tmr_sessao.Enabled := false; // timer_display.Enabled := false; // with FDIBRestore do // begin // UserName := 'SYSDBA'; // Password := 'masterkey'; // Host := copy(dtmSystem.ZConnection.Database, 1, // pos(':', dtmSystem.ZConnection.Database) - 1); // Protocol := ipTCPIP; // Verbose := true; // Options := [roDeactivateIdx, roNoShadow, roNoValidity, roOneAtATime, // roReplace, roValidate]; // Database := stringreplace(copy(dtmSystem.ZConnection.Database, // pos(':', dtmSystem.ZConnection.Database) + 1, // length(dtmSystem.ZConnection.Database)), 'CHARGE.GDB', 'TEMP.GDB', // [rfReplaceAll, rfIgnoreCase]); // BackupFiles.Add(odRestore.FileName); // Restore; // end; // DeleteFile(ExtractFilePath(Application.ExeName) + 'CHARGE.GDB'); // RenameFile(ExtractFilePath(Application.ExeName) + 'TEMP.GDB', // ExtractFilePath(Application.ExeName) + 'CHARGE.GDB'); // MessageDlg('Banco de dados restaurado com sucesso!' + sLineBreak + // 'Fechando o programa.', mtInformation, [mbOK], 0); // Close; // except // on E: Exception do // begin // MessageDlg('Erro ao restaurar o banco de dados!' + sLineBreak + // E.message, mtError, [mbOK], 0); // atualizaagenda; // // tmr_sessao.Enabled := true; // timer_display.Enabled := true; // end; // end; // end; // // end; // end; // mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.04'); // mnuBancoDados.Visible := dtmSystem.VerificarPermissao('CBR.04.03'); // mnuRestaurar.Visible := dtmSystem.VerificarPermissao('CBR.04.03.02'); end; procedure TfrmCobranca.mnuTxtEmailClick(Sender: TObject); begin cadTextEmail := TcadTextEmail.Create(self); cadTextEmail.ShowModal; mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); mnuTxtEmail.Visible := dtmSystem.VerificarPermissao('CBR.02.07'); end; procedure TfrmCobranca.stsbarDblClick(Sender: TObject); var mouseInStatusBar: TPoint; pWidth, i: Integer; begin // dblclick da status bar para abrir a agenda with stsbar do begin if (SimplePanel) OR (stsbar.Panels.Count = 0) then i := 0 else begin mouseInStatusBar := ScreenToClient(Mouse.CursorPos); pWidth := 0; for i := 0 to stsbar.Panels.Count - 2 do begin pWidth := pWidth + Panels[i].Width; if mouseInStatusBar.X <= pWidth then Break; end; end; if i = 4 then begin if not Assigned(frmAgenda) then begin frmAgenda := TfrmAgenda.Create(self); frmAgenda.Show; end else begin if frmAgenda.WindowState = wsMinimized then begin frmAgenda.WindowState := wsNormal; end; end; end; end; end; procedure TfrmCobranca.stsbarDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); var tempo1, tempo2, tempo3: TTime; Text: string; begin // desenha os paineis da status bar conforme o atraso da agenda tempo1 := StrToTime('00:45:00'); tempo2 := StrToTime('00:15:00'); tempo3 := StrToTime('00:00:00'); if (Panel = stsbar.Panels[4]) then begin if dia_atrasado then begin StatusBar.Canvas.Brush.Color := clRed; StatusBar.Canvas.Font.Style := StatusBar.Canvas.Font.Style + [fsbold]; pnl_alertaagenda.Visible := false; Text := 'COBRANÇA ATRASADA'; end else if (tempo_atrasado) and (eh_hoje = true) then begin if CompareTime(quanto_faltat, tempo1) > 0 then begin StatusBar.Canvas.Brush.Color := clRed; StatusBar.Canvas.Font.Style := StatusBar.Canvas.Font.Style + [fsbold]; pnl_alertaagenda.Visible := false; Text := 'COBRANÇA ATRASADA'; end else if (CompareTime(quanto_faltat, tempo1) < 0) and (CompareTime(quanto_faltat, tempo2) >= 0) then begin StatusBar.Canvas.Brush.Color := clYellow; StatusBar.Canvas.Font.Style := StatusBar.Canvas.Font.Style + [fsbold]; pnl_alertaagenda.Visible := true; Text := 'COBRANÇA ATRASADA'; end else if (CompareTime(quanto_faltat, tempo2) < 0) and (CompareTime(quanto_faltat, tempo3) >= 0) then begin StatusBar.Canvas.Brush.Color := clGreen; StatusBar.Canvas.Font.Style := StatusBar.Canvas.Font.Style - [fsbold]; pnl_alertaagenda.Visible := true; Text := 'COBRAR AGENDADO'; end; end else begin StatusBar.Canvas.Brush.Color := clSkyBlue; pnl_alertaagenda.Visible := false; StatusBar.Canvas.Font.Style := StatusBar.Canvas.Font.Style - [fsbold]; if queryagenda.IsEmpty then begin StatusBar.Canvas.Brush.Color := clBtnFace; pnl_alertaagenda.Visible := false; StatusBar.Canvas.Font.Style := StatusBar.Canvas.Font.Style - [fsbold]; Text := ''; end else begin StatusBar.Canvas.Brush.Color := clSkyBlue; pnl_alertaagenda.Visible := false; StatusBar.Canvas.Font.Style := StatusBar.Canvas.Font.Style - [fsbold]; Text := 'DEVEDOR AGENDADO'; end; end; end; StatusBar.Canvas.FillRect(Rect); StatusBar.Canvas.TextOut(Rect.Left + 5, Rect.Top, Text); // StatusBar.Canvas.FrameRect(Rect); end; procedure TfrmCobranca.mnuBoletosClick(Sender: TObject); begin frmCentralBoletos := TfrmCentralBoletos.Create(self); frmCentralBoletos.ShowModal; end; procedure TfrmCobranca.mnuCredoresClick(Sender: TObject); begin // mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); // mnuBeneficiarios.Visible := dtmSystem.VerificarPermissao('CBR.02.01'); cadCredor := TcadCredor.Create(self); cadCredor.ShowModal; mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); mnuCredores.Visible := dtmSystem.VerificarPermissao('CBR.02.02'); // abre a janela de cadastro beneficiários end; procedure TfrmCobranca.timer_displayTimer(Sender: TObject); var hora_marcada, agorat: TTime; data_marcada, agorad: TDate; // quanto_faltad: Integer; begin // timer_display.Interval := 60000; // Cálculo do atraso da Agenda que é usado em outras partes do programa //Label1.Caption := inttostr(queryagenda.RecordCount); timer_display.Interval := 5000; queryagenda.Refresh; dia_atrasado := false; tempo_atrasado := false; eh_hoje := false; if not queryagenda.IsEmpty then begin // queryagenda.First; hora_marcada := StrToTime(FormatDateTime('t', queryagenda.FieldByName('HR_AGENDADA').AsDateTime)); agorat := StrToTime(FormatDateTime('t', now)); quanto_faltat := hora_marcada - agorat; data_marcada := queryagenda.FieldByName('DT_AGENDADA').AsDateTime; agorad := Date; // quanto_faltad := DaysBetween(data_marcada, agorad); if (agorad > data_marcada) then begin dia_atrasado := true; end; if (agorat > hora_marcada) then begin tempo_atrasado := true; end; if data_marcada = Date then begin eh_hoje := true; end; end; stsbar.Repaint; // if FileExists(ExtractFilePath(Application.ExeName) + 'Cobrança_old.exe') then // begin // try // DeleteFile(ExtractFilePath(Application.ExeName) + 'Cobrança_old.exe'); // except // end; // end; // Label1.Caption := inttostr(dtmSystem.id_usuario); end; procedure TfrmCobranca.tmr_loginTimer(Sender: TObject); var msg, hoje: string; data_termino: TDate; // hmin, hmax: TTime; // diff: Integer; begin // primeiro login ao abrir o programa // verificar alterar login para comentários na maioria das coisas aqui tmr_login.Enabled := false; // para o timer pra não ficar ocorrendo a cada segundo // abre o arquivo ini para ler o caminho do banco with dtmSystem do begin tblUsuarios.Open; if tblUsuarios.IsEmpty then begin exit; end; with TfrmLogin.Create(nil) do begin try ShowModal; finally Free; end; end; if dtmSystem.acesso_manager = true then begin exit; end; tblPermissoes.Open; tblGrupos.Open; tblGruposPermissoes.Open; if acesso = false then begin Application.Terminate; end; if acesso = true then begin if dtmSystem.VerificarVersao = true then begin MessageDlg('Este programa se encontra desatualizado.' + ' Ele será fechado para atualizar para a mais nova versão.', mtWarning, [mbOK], 0); CopyFile(PCHAR(StringReplace(dtmSystem.ZConnection.Database, '\Charge.gdb', '', [rfIgnoreCase]) + '\Cobrança.exe'), PCHAR(ExtractFilePath(Application.ExeName) + 'Cobrança__update.exe'), true); WinExec('Updater.exe', 0); Application.ShowMainForm := false; Application.Terminate; end; tmr_update.Enabled := true; memo_update.Left := memo_update.Parent.Width - memo_update.Width; dtmSystem.tblEstados.Open; dtmSystem.tblCidades.Open; if dtmSystem.tblEstados.IsEmpty then begin frmProgressEC := TfrmProgressEC.Create(self); frmProgressEC.ShowModal; end; // dtmSystem.tblEstados.Close; // dtmSystem.tblCidades.Close; stsbar.Panels[0].Text := 'Usuário: ' + dtmSystem.tx_usuario; stsbar.Panels[1].Text := 'Grupo: ' + dtmSystem.tx_grupo; stsbar.Panels[2].Text := 'Banco de dados: ' + dtmSystem.ZConnection.Database; stsbar.Panels[3].Text := 'Versão: ' + GetAppVersionStr; hoje := DateToStr(Date); hoje := RightStr(hoje, 4) + '-' + copy(hoje, 4, 2) + '-' + LeftStr(hoje, 2); with dtmSystem.zroqryContatos.SQL do begin Clear; Add('select'); Add('h.id_cobrador,'); Add('case when u.tx_nome is not NULL then u.tx_nome when u.tx_nome is NULL then ' + Quotedstr('Usuário Inexistente') + ' end as NOME,'); Add('COUNT (DISTINCT h.ID_DEVEDOR) as qtde_acionamentos'); Add('from chg_historico h'); Add('left join sys_usuarios u on h.id_cobrador = u.id_usuario'); Add('where h.id_cobrador in (select id_usuario from sys_usuarios where tp_ativo = ' + Quotedstr('S') + ')'); Add('and CAST(h.dt_contato AS DATE) >= ' + Quotedstr(hoje) + ' and'); Add('CAST(h.dt_contato AS DATE) <= ' + Quotedstr(hoje)); Add('and h.id_cobrador = ' + inttostr(dtmSystem.id_usuario)); Add('group by h.id_cobrador, u.tx_nome'); Add('order by NOME, qtde_acionamentos desc'); end; dtmSystem.zroqryContatos.Open; // verificação de permissão de acessos MakePermissoes; ChecaPermissoes; // showmessage(dtmSystem.path_executavel); // showmessage(dtmSystem.GetAppVersionStr + ' - ' + dtmSystem.version); // if id_usuario <> 71 then // begin // mnuRankings.Visible := false; // end; atualizaagenda; timer_display.Enabled := true; timer_display.Interval := 1; // Parte do processo de controle de sessão do usuário // Desabilitado a pedido da Bruna // with dtmSystem do // begin // tblLogins.Open; // tblLogins.Append; // tblLoginsID_USUARIO.AsInteger := id_usuario; // tblLoginsDT_LOGIN.AsDateTime := Date; // tblLoginsHR_LOGIN.AsDateTime := now; // tblLogins.Post; // tblLogins.Close; // if not tblSessao.Active then // begin // tblSessao.Open; // end; // if not(tblSessao.Locate('ID_USUARIO', id_usuario, [])) then // begin // tblSessao.Append; // tblSessaoID_USUARIO.AsInteger := id_usuario; // tblSessaoTP_ATIVA.AsInteger := 1; // tblSessao.Post; // end; // end; // tmr_sessao.Enabled := true; if not(tblEmpresa.Active) then begin tblEmpresa.Open; end; if tblEmpresa.IsEmpty then // gera a empresa padrão caso não tenha begin MessageDlg ('A empresa do programa não se encontra cadastrada. Por favor configure uma nova.', mtWarning, [mbOK], 0); with TcadEmpresa.Create(self) do begin ShowModal; end; end; if not(tblCHGEmpresa.Active) then begin tblCHGEmpresa.Open; end; if tblCHGEmpresa.IsEmpty then begin MessageDlg ('Para que o financiamento possa ser realizado de forma correta por' + ' favor cadastre o primeiro credor com os dados da empresa compradora do programa.', mtWarning, [mbOK], 0); with TcadCredor.Create(self) do begin ShowModal; end; end; // with TIniFile.Create(ExtractFilePath(Application.ExeName) + // 'popup.ini') do with TIniFile.Create(dtmSystem.path_executavel + '\popup.ini') do begin msg := ReadString('MENSAGEM', 'Texto', ''); try data_termino := StrToDate(ReadString('MENSAGEM', 'Data-Fim', '')); except data_termino := 0; end; end; if msg <> '' then begin if now < data_termino then begin MessageDlg(msg, mtInformation, [mbOK], 0); end; end; with TIniFile.Create(ExtractFilePath(Application.ExeName) + 'sistema.ini') do begin dtmSystem.public_key := ReadString('cert', 'pub-key', ''); dtmSystem.private_key := ReadString('cert', 'priv-key', ''); dtmSystem.certificate_key := ReadString('cert', 'cert-key', ''); dtmSystem.conta_corrente := ReadString('cert', 'cc', ''); end; if (dtmSystem.public_key <> '') and (dtmSystem.id_grupo = 1) then begin mnuBoletos.Visible := true; end else begin mnuBoletos.Visible := false; end; end; end; frmCobranca.BorderIcons := frmCobranca.BorderIcons - [biMaximize]; // desabilita o botão de maximizar end; procedure TfrmCobranca.tmr_sessaoTimer(Sender: TObject); var admin: string; begin // Timer de controle de sessão do usuário // Desabilitado a pedido da Bruna // Label1.Caption := TimeToStr(now); with TIniFile.Create(ExtractFilePath(Application.ExeName) + 'sistema.ini') do begin admin := ReadString('DEVELOPER', 'admin', ''); if admin = 'sim' then begin abort; end; end; with dtmSystem do begin if not tblSessao.Active then begin tblSessao.Open; end; tblSessao.Refresh; if tblSessao.Locate('ID_USUARIO', id_usuario, []) then begin if tblSessaoTP_ATIVA.AsInteger = 0 then begin // tmr_sessao.Enabled := false; MessageDlg ('Sua sessão acaba de ser terminada por um administrador. O programa irá terminar agora.', mtWarning, [mbOK], 0); tblSessao.Delete; tblSessao.Close; Close; end; end; end; end; procedure TfrmCobranca.tmr_updateTimer(Sender: TObject); begin with TMemIniFile.Create(dtmSystem.path_executavel + '\version_control.ini', TEncoding.UTF8) do begin dtmSystem.version := ReadString('Dados', 'version', ''); end; if dtmSystem.VerificarVersao = true then begin memo_update.Visible := true; end; end; procedure TfrmCobranca.WMStartup(var Msg: TMessage); var hoje: string; begin // primeiro login ao abrir o programa // verificar alterar login para comentários na maioria das coisas aqui tmr_login.Enabled := false; // para o timer pra não ficar ocorrendo a cada segundo // abre o arquivo ini para ler o caminho do banco with dtmSystem do begin OpenOrRefresh(tblUsuarios); if tblUsuarios.IsEmpty then begin exit; end; with TfrmLogin.Create(nil) do begin try ShowModal; finally Free; end; end; if acesso = false then begin Application.Terminate; end; if dtmSystem.acesso_manager = true then begin exit; end; //tblPermissoes.Open; OpenOrRefresh(tblGrupos); OpenOrRefresh(tblGruposPermissoes); if acesso = true then begin if VerificarVersao = true then begin MessageDlg('Este programa se encontra desatualizado.' + ' Ele será fechado para atualizar para a mais nova versão.', mtWarning, [mbOK], 0); TFile.copy(dtmSystem.path_att + '\' + dtmSystem.exe + '.exe', ExtractFilePath(Application.ExeName) + dtmSystem.exe + '__update.exe'); WinExec('Updater.exe', 0); Application.ShowMainForm := false; Application.Terminate; end; tmr_update.Enabled := true; memo_update.Left := memo_update.Parent.Width - memo_update.Width; {*if tblEstados.IsEmpty then begin frmProgressEC := TfrmProgressEC.Create(self); frmProgressEC.ShowModal; end;} // dtmSystem.tblEstados.Close; // dtmSystem.tblCidades.Close; stsbar.Panels[0].Text := 'Usuário: ' + dtmSystem.tx_usuario; stsbar.Panels[1].Text := 'Grupo: ' + dtmSystem.tx_grupo; stsbar.Panels[2].Text := 'Banco de dados: ' + dtmSystem.ZConnection.Database; stsbar.Panels[3].Text := 'Versão: ' + GetAppVersionStr; hoje := DateToStr(Date); hoje := RightStr(hoje, 4) + '-' + copy(hoje, 4, 2) + '-' + LeftStr(hoje, 2); with zroqryContatos.SQL do begin Clear; Add('select'); Add('h.id_cobrador,'); Add('case when u.tx_nome is not NULL then u.tx_nome when u.tx_nome is NULL then ' + Quotedstr('Usuário Inexistente') + ' end as NOME,'); Add('COUNT (DISTINCT h.ID_DEVEDOR) as qtde_acionamentos'); Add('from chg_historico h'); Add('left join sys_usuarios u on h.id_cobrador = u.id_usuario'); Add('where h.id_cobrador in (select id_usuario from sys_usuarios where tp_ativo = ' + Quotedstr('S') + ')'); Add('and CAST(h.dt_contato AS DATE) >= ' + Quotedstr(hoje) + ' and'); Add('CAST(h.dt_contato AS DATE) <= ' + Quotedstr(hoje)); Add('and h.id_cobrador = ' + inttostr(dtmSystem.id_usuario)); Add('group by h.id_cobrador, u.tx_nome'); Add('order by NOME, qtde_acionamentos desc'); end; zroqryContatos.Open; // verificação de permissão de acessos MakePermissoes; ChecaPermissoes; // showmessage(dtmSystem.path_executavel); // showmessage(dtmSystem.GetAppVersionStr + ' - ' + dtmSystem.version); // if id_usuario <> 71 then // begin // mnuRankings.Visible := false; // end; atualizaagenda; timer_display.Enabled := true; timer_display.Interval := 1; // Parte do processo de controle de sessão do usuário // Desabilitado a pedido da Bruna // with dtmSystem do // begin // tblLogins.Open; // tblLogins.Append; // tblLoginsID_USUARIO.AsInteger := id_usuario; // tblLoginsDT_LOGIN.AsDateTime := Date; // tblLoginsHR_LOGIN.AsDateTime := now; // tblLogins.Post; // tblLogins.Close; // if not tblSessao.Active then // begin // tblSessao.Open; // end; // if not(tblSessao.Locate('ID_USUARIO', id_usuario, [])) then // begin // tblSessao.Append; // tblSessaoID_USUARIO.AsInteger := id_usuario; // tblSessaoTP_ATIVA.AsInteger := 1; // tblSessao.Post; // end; // end; // tmr_sessao.Enabled := true; {*if tblEmpresa.IsEmpty then // gera a empresa padrão caso não tenha begin MessageDlg ('A empresa do programa não se encontra cadastrada. Por favor configure uma nova.', mtWarning, [mbOK], 0); with TcadEmpresa.Create(self) do begin ShowModal; end; end;} {*if not(tblCHGEmpresa.Active) then begin tblCHGEmpresa.Open; end; if tblCHGEmpresa.IsEmpty then begin MessageDlg ('Para que o financiamento possa ser realizado de forma correta por' + ' favor cadastre o primeiro credor com os dados da empresa compradora do programa.', mtWarning, [mbOK], 0); with TcadCredor.Create(self) do begin ShowModal; end; end;} // with TIniFile.Create(ExtractFilePath(Application.ExeName) + // 'popup.ini') do {*with TIniFile.Create(dtmSystem.path_executavel + '\popup.ini') do begin msg := ReadString('MENSAGEM', 'Texto', ''); try data_termino := StrToDate(ReadString('MENSAGEM', 'Data-Fim', '')); except data_termino := 0; end; end; if msg <> '' then begin if now < data_termino then begin MessageDlg(msg, mtInformation, [mbOK], 0); end; end;} with TIniFile.Create(ExtractFilePath(Application.ExeName) + 'sistema.ini') do begin dtmSystem.public_key := ReadString('cert', 'pub-key', ''); dtmSystem.private_key := ReadString('cert', 'priv-key', ''); dtmSystem.certificate_key := ReadString('cert', 'cert-key', ''); dtmSystem.conta_corrente := ReadString('cert', 'cc', ''); end; if (dtmSystem.public_key <> '') and (dtmSystem.id_grupo = 1) then begin mnuBoletos.Visible := true; end else begin mnuBoletos.Visible := false; end; end; end; frmCobranca.BorderIcons := frmCobranca.BorderIcons - [biMaximize]; // desabilita o botão de maximizar end; procedure TfrmCobranca.mnuVerrecibosClick(Sender: TObject); begin frmAchaRecibo := TfrmAchaRecibo.Create(self); frmAchaRecibo.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuVerrecibos.Visible := dtmSystem.VerificarPermissao('CBR.01.10'); end; // \[T]/ PRAISE THE SUN \[T]/ procedure TfrmCobranca.mnuEmpresaClick(Sender: TObject); begin // mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); // mnuEmpresa.Visible := dtmSystem.VerificarPermissao('CBR.02.05'); cadEmpresa := TcadEmpresa.Create(self); cadEmpresa.ShowModal; mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); mnuEmpresa.Visible := dtmSystem.VerificarPermissao('CBR.02.05'); // abre a janela de cadastro da empresa que comprou o programa end; procedure TfrmCobranca.mnuGerCampanhaClick(Sender: TObject); begin // mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.04'); // mnuGerCampanha.Visible := dtmSystem.VerificarPermissao('CBR.04.03'); frmCampanha := TfrmCampanha.Create(self); frmCampanha.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuGerCampanha.Visible := dtmSystem.VerificarPermissao('CBR.01.04'); end; procedure TfrmCobranca.mnuCentralPlanilhamentoClick(Sender: TObject); begin frmCentralPlanilhamento := TfrmCentralPlanilhamento.Create(self); frmCentralPlanilhamento.ShowModal; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuImptcc.Visible := dtmSystem.VerificarPermissao('CBR.01.09'); end; procedure TfrmCobranca.mnuCobrancaTelClick(Sender: TObject); begin pesquisa_camp := false; if not dtmSystem.tblDevedores.Active then begin dtmSystem.tblDevedores.Open; end; if dtmSystem.tblDevedores.RecordCount = 0 then begin MessageDlg ('Não há devedores cadastrados para que uma cobrança possa ser feita.' + ' Não é possível abrir a cobrança.', mtWarning, [mbOK], 0); end else begin Screen.Cursor := crHourGlass; with dtmSystem do begin // verifica as campanhas ativas para o usuário em questão qryConsulta.SQL.Text := 'select id_campanha, tx_nome from chg_campanhas where id_campanha in (select id_campanha from chg_campanhas_cobradores where id_cobrador = ' + inttostr(id_usuario) + ') and tp_ativa = ''1'' order by id_campanha'; qryConsulta.Open; end; if dtmSystem.qryConsulta.IsEmpty then begin MessageDlg ('Este usuário não se encontra inserido em nenhuma campanha ativa no momento.', mtInformation, [mbOK], 0); Screen.Cursor := crDefault; end else begin // janela de escolha de campanha a ser cobrada frmEscolheCampanha := TfrmEscolheCampanha.Create(self); frmEscolheCampanha.ShowModal; if frmEscolheCampanha.ModalResult = mrOk then begin Screen.Cursor := crHourGlass; if not dtmSystem.tblCampanhaDevedores.Active then begin dtmSystem.tblCampanhaDevedores.Open; end; frmEfetuarCobranca := TfrmEfetuarCobranca.Create(self); frmEfetuarCobranca.id_campanha := dtmSystem.qryConsulta.FieldByName ('ID_CAMPANHA').AsInteger; frmEfetuarCobranca.tx_campanha := dtmSystem.qryConsulta.FieldByName ('TX_NOME').AsString; with frmEfetuarCobranca do begin dtmSystem.tblCampanhaDevedores.Filtered := false; dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' + inttostr(id_campanha); dtmSystem.tblCampanhaDevedores.Filtered := true; queryagenda.Refresh; if (not queryagenda.IsEmpty) then begin if Dateof(frmCobranca.queryagenda.FieldByName('DT_AGENDADA') .AsDateTime) < Dateof(Date) then begin dtmSystem.tblDevedores.Locate('ID_DEVEDOR', frmCobranca.queryagenda.FieldByName('ID_DEVEDOR').AsString, []); atendimento := 'cobrando'; cb_agendar.Checked := false; edt_protocolo1.Text := ''; cb_descquit.Checked := false; cb_descquitClick(frmEfetuarCobranca.cb_descquit); cb_descpar.Checked := false; cb_descparClick(frmEfetuarCobranca.cb_descpar); cb_nmulta.Checked := false; cb_nmultaClick(frmEfetuarCobranca.cb_nmulta); pgCobranca.TabIndex := 0; btn_protocolo.Enabled := true; MessageDlg ('Você acaba de entrar na sua Agenda. Devedor agendado: ' + dtmSystem.tblDevedoresTX_NOME.AsString + '. Data agendada: ' + frmCobranca.queryagenda.FieldByName('DT_AGENDADA').AsString + '. Hora agendada: ' + frmCobranca.queryagenda.FieldByName ('HR_AGENDADA').AsString + '.', mtWarning, [mbOK], 0); entrou_agenda := true; end else begin if Dateof(frmCobranca.queryagenda.FieldByName('DT_AGENDADA') .AsDateTime) = Dateof(Date) then begin if Timeof(frmCobranca.queryagenda.FieldByName('HR_AGENDADA') .AsFloat) <= Timeof(now) then begin dtmSystem.tblDevedores.Locate('ID_DEVEDOR', frmCobranca.queryagenda.FieldByName('ID_DEVEDOR') .AsString, []); atendimento := 'cobrando'; cb_agendar.Checked := false; edt_protocolo1.Text := ''; cb_descquit.Checked := false; cb_descquitClick(frmEfetuarCobranca.cb_descquit); cb_descpar.Checked := false; cb_descparClick(frmEfetuarCobranca.cb_descpar); cb_nmulta.Checked := false; cb_nmultaClick(frmEfetuarCobranca.cb_nmulta); pgCobranca.TabIndex := 0; btn_protocolo.Enabled := true; MessageDlg ('Você acaba de entrar na sua Agenda. Devedor agendado: ' + dtmSystem.tblDevedoresTX_NOME.AsString + '. Data agendada: ' + frmCobranca.queryagenda.FieldByName('DT_AGENDADA') .AsString + '. Hora agendada: ' + frmCobranca.queryagenda.FieldByName('HR_AGENDADA').AsString + '.', mtWarning, [mbOK], 0); entrou_agenda := true; end else begin entrou_agenda := false; end; end else begin entrou_agenda := false; end; end; end else begin entrou_agenda := false; end; if not entrou_agenda then begin dtmSystem.tblCampanhaDevedores.Filtered := false; dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' + inttostr(id_campanha) + ' and TP_ESTADO = ''A'''; dtmSystem.tblCampanhaDevedores.Filtered := true; dtmSystem.tblCampanhaDevedores.First; dtmSystem.tblCampanhaDevedores.DisableControls; // Acha o devedor que deve ser cobrado while not(dtmSystem.tblCampanhaDevedores.Eof) do begin Application.ProcessMessages; if dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger <> -1 then // procura se tem um devedor que estava no meio do processo de ser cobrado pelo cobrador X begin if dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger = dtmSystem.id_usuario then begin dtmSystem.tblDevedores.Locate('ID_DEVEDOR', dtmSystem.tblCampanhaDevedoresID_DEVEDOR.AsInteger, []); dtmSystem.tblCampanhaDevedores.EnableControls; dtmSystem.tblCampanhaDevedores.Filtered := false; dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' + inttostr(id_campanha); dtmSystem.tblCampanhaDevedores.Filtered := true; Break; end else begin dtmSystem.tblCampanhaDevedores.Next; end; end else begin dtmSystem.tblCampanhaDevedores.Edit; dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger := dtmSystem.id_usuario; dtmSystem.tblCampanhaDevedores.Post; dtmSystem.tblDevedores.Locate('ID_DEVEDOR', dtmSystem.tblCampanhaDevedoresID_DEVEDOR.AsInteger, []); dtmSystem.tblCampanhaDevedores.EnableControls; dtmSystem.tblCampanhaDevedores.Filtered := false; dtmSystem.tblCampanhaDevedores.Filter := 'ID_CAMPANHA = ' + inttostr(id_campanha); dtmSystem.tblCampanhaDevedores.Filtered := true; Break; end; end; Screen.Cursor := crDefault; dtmSystem.tblCampanhaDevedores.EnableControls; if dtmSystem.tblCampanhaDevedores.Eof then begin MessageDlg ('Não há mais devedores nesta campanha que este usuário possa cobrar.', mtInformation, [mbOK], 0); Screen.Cursor := crDefault; abort; end; // dtmSystem.tblCampanhaDevedores.Filtered := false; end; end; Application.ProcessMessages; Screen.Cursor := crDefault; frmEfetuarCobranca.ShowModal; // if pesquisa_camp then // begin // frmPesquisa := TfrmPesquisa.Create(self); // frmPesquisa.Show; // end; mnuFerramentas.Visible := dtmSystem.VerificarPermissao('CBR.01'); mnuCobrancaTel.Visible := dtmSystem.VerificarPermissao('CBR.01.01'); end; end; end; end; procedure TfrmCobranca.mnuContasClick(Sender: TObject); begin // mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); // mnuContas.Visible := dtmSystem.VerificarPermissao('CBR.02.06'); cadContas := TcadContas.Create(self); cadContas.ShowModal; // mnuCadastros.Visible := dtmSystem.VerificarPermissao('CBR.02'); end; procedure TfrmCobranca.fecharformsabertas(name_form: string); // entre com o nome da form que você NÃO quer fechar var // não estou mais usando esta função a princípio i: Integer; begin pnl_principal.Visible := true; for i := 0 to Screen.FormCount - 1 do begin if (Screen.Forms[i].Showing) and (Screen.Forms[i].Name <> 'frmCobranca') and (Screen.Forms[i].Name <> name_form) then begin Screen.Forms[i].Close; end; end; end; procedure TfrmCobranca.Agenda1Click(Sender: TObject); begin frmAgenda := TfrmAgenda.Create(self); frmAgenda.Show; end; procedure TfrmCobranca.appEventsException(Sender: TObject; E: Exception); begin LogError('Exceptions', Format('%s - %s', ['ToString', E.ToString])); LogError('Exceptions', Format('%s - %s', ['HelpContext', InttoStr(E.HelpContext)])); LogError('Exceptions', Format('%s - %s', ['Message', E.Message])); LogError('Exceptions', Format('%s - %s', ['ToString', E.UnitName])); LogError('Exceptions', Format('%s - %s', ['StackTrace', E.StackTrace])); if AnsiPos('-902', E.Message) > 0 then begin timer_display.Enabled := false; showmessage ('Perda de conexão com o banco de dados. O programa será finalizado.'); Application.Terminate; end; end; procedure TfrmCobranca.atualizaagenda; var ontem, amanha: string; begin // Método para atualizar a situação da agenda DateTimeToString(ontem, 'DD/MM/YYYY', IncDay(Date, -1)); DateTimeToString(amanha, 'DD/MM/YYYY', IncDay(Date, 1)); with queryagenda.SQL do begin Text := 'select first 1 * from chg_agenda where id_cobrador = ' + inttostr(dtmSystem.id_usuario) + ' and tp_situacao = ''A'' order by DT_AGENDADA, HR_AGENDADA'; end; // queryagenda.Filter := 'DT_AGENDADA >= ' + QuotedStr(ontem) + // ' and DT_AGENDADA <= ' + QuotedStr(amanha); // queryagenda.Filtered := true; queryagenda.Open; end; procedure TfrmCobranca.Button1Click(Sender: TObject); // var // str, year, month, day: string; begin // botão de testes // dtmSystem.tblEmpresa.Open; // year := inttostr(YearOf(Date)); // month := inttostr(Monthof(Date)).PadLeft(2, '0'); // day := inttostr(Dayof(Date)).PadLeft(2, '0'); // str := 'CLI_ CRB_' + dtmSystem.tblEmpresaCD_BENEFICIARIO.AsString + // year + month + day + '_CNAB240REM' // + '.00001'; end; procedure TfrmCobranca.Button2Click(Sender: TObject); // var // antes: TTime; begin // botão de testes // dtmSystem.tblDevedores.Next; // dtmSystem.tblTitulos.Locate('ID_DEVEDOR',1337,[]); // ZQuery1.SQL.Clear; // ZQuery1.SQL.Text := 'select * from chg_historico where id_devedor = ' + // dtmSystem.tblDevedoresID_DEVEDOR.AsString; // antes := Now; // ZQuery1.Open; // showmessage(inttostr(MilliSecondsBetween(antes, now))); // dtmSystem.tblCampanhaDevedores.Open; // DataSource1.DataSet.Filtered := false; // DataSource1.DataSet.Filter := 'DT_AGENDADA >= ''03/12/2018'''; // DataSource1.DataSet.Filtered := true; // Label1.Caption := inttostr(ZQuery2.RecordCount); // dtmSystem.tblCampanhaDevedores.Open; // dtmSystem.tblCampanhaDevedores.First; // while not(dtmSystem.tblCampanhaDevedores.Eof) do // begin // dtmSystem.tblCampanhaDevedores.Edit; // dtmSystem.tblCampanhaDevedoresTP_COBRANDO.AsInteger := -1; // dtmSystem.tblCampanhaDevedores.Post; // dtmSystem.tblCampanhaDevedores.Next; // end; // dtmSystem.tblDevedores.Open; // dtmSystem.tblDevedores.Filtered := false; // dtmSystem.tblDevedores.Filter := 'ID_DEVEDOR = 1'; // dtmSystem.tblDevedores.Filtered := true; // relTeste := TrelTeste.Create(self); // relTeste.frRecibo.PreviewModal; // DataSource1.DataSet.Locate('ID_HISTORICO', 1, [loPartialKey]); if (dtmSystem.tblDevedores.Locate('CD_CPF', '741.334.467-04', [])) or (dtmSystem.tblDevedores.Locate('CD_CNPJ', 'aaa', [])) then begin end; end; procedure TfrmCobranca.Button3Click(Sender: TObject); begin // botão de testes // dtmSystem.tblCobCampanha.Next; // if dtmSystem.tblCobCampanha.Eof then // begin // dtmSystem.tblCobCampanha.First; // end; // DataSource1.DataSet.Filtered := false; // Label1.Caption := inttostr(ZQuery2.RecordCount); // with TfrmCentralPlanilhamento.Create(self) do // begin // ShowModal; // end; dtmSystem.tblHistorico.Post; end; procedure TfrmCobranca.ChecaPermissoes; begin with dtmSystem do begin mnuFerramentas.Visible := VerificarPermissao('CBR.01'); { } mnuCobrancaTel.Visible := VerificarPermissao('CBR.01.01'); { } mnuPesquisa.Visible := VerificarPermissao('CBR.01.02'); { } mnuAtendimento.Visible := VerificarPermissao('CBR.01.03'); { } mnuGerCampanha.Visible := VerificarPermissao('CBR.01.04'); { } mnuAgendamento.Visible := VerificarPermissao('CBR.01.05'); { } mnuMandaEmail.Visible := VerificarPermissao('CBR.01.06'); { } mnuDigito9.Visible := VerificarPermissao('CBR.01.07'); { } mnuImptcc.Visible := VerificarPermissao('CBR.01.08'); { } mnuCentralPlanilhamento.Visible := VerificarPermissao('CBR.01.09'); { } mnuVerrecibos.Visible := VerificarPermissao('CBR.01.10'); { } mnuRankings.Visible := VerificarPermissao('CBR.01.11'); mnuCadastros.Visible := VerificarPermissao('CBR.02'); { } mnuDevedores.Visible := VerificarPermissao('CBR.02.01'); { } mnuCredores.Visible := VerificarPermissao('CBR.02.02'); { } mnuUsuarios.Visible := VerificarPermissao('CBR.02.03'); { } mnuProvidencias.Visible := VerificarPermissao('CBR.02.04'); { } mnuEmpresa.Visible := VerificarPermissao('CBR.02.05'); // { } mnuContas.Visible := VerificarPermissao('CBR.02.06'); { } mnuTxtEmail.Visible := VerificarPermissao('CBR.02.07'); mnuRelatorios.Visible := VerificarPermissao('CBR.03'); { } mnuEntrada.Visible := VerificarPermissao('CBR.03.01'); { } mnuPrestacaoContas.Visible := VerificarPermissao('CBR.03.02'); { } mnu_RecibosEmitidos.Visible := VerificarPermissao('CBR.03.03'); // { } PrestaodeContasTCC1.Visible := VerificarPermissao('CBR.03.04'); mnuOpcoes.Visible := VerificarPermissao('CBR.04'); { } mnuIndices.Visible := VerificarPermissao('CBR.04.01'); { } mnuModeloRepasse.Visible := VerificarPermissao('CBR.04.02'); // { } mnuBancoDados.Visible := VerificarPermissao('CBR.04.03'); { } mnuBackup.Visible := VerificarPermissao('CBR.04.03.01'); { } mnuRestaurar.Visible := VerificarPermissao('CBR.04.03.02'); { } mnuConfLayout.Visible := VerificarPermissao('CBR.04.04'); { } ConfiguraodoPopUpdeInicializao1.Visible := VerificarPermissao('CBR.04.05'); { } mnuEnvBancoOnline.Visible := VerificarPermissao('CBR.04.06'); end; if dtmSystem.id_grupo = 1 then begin mnuLog.Visible := true; Visualizar1.Visible := true; end else begin mnuLog.Visible := false; Visualizar1.Visible := false; end; end; procedure TfrmCobranca.ConfiguraodoPopUpdeInicializao1Click(Sender: TObject); begin frmPopUp := TfrmPopUp.Create(self); frmPopUp.ShowModal; mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.04'); ConfiguraodoPopUpdeInicializao1.Visible := dtmSystem.VerificarPermissao ('CBR.04.05'); end; procedure TfrmCobranca.Departamentos1Click(Sender: TObject); begin frmDepartamentos := TfrmDepartamentos.Create(self); frmDepartamentos.ShowModal; end; procedure TfrmCobranca.mnuConfLayoutClick(Sender: TObject); begin // mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.01'); // mnuConfLayout.Visible := dtmSystem.VerificarPermissao('CBR.01.04'); confLayouts := TconfLayouts.Create(self); confLayouts.ShowModal; mnuOpcoes.Visible := dtmSystem.VerificarPermissao('CBR.04'); mnuConfLayout.Visible := dtmSystem.VerificarPermissao('CBR.04.04'); end; { if (not Panel1.Visible) then begin AnimateWindow(Panel1.Handle, 200, AW_BLEND or AW_ACTIVATE or AW_VER_POSITIVE or AW_HOR_POSITIVE); Panel1.Visible := true; end else begin AnimateWindow(Panel1.Handle, 200, AW_BLEND or AW_HIDE or AW_VER_NEGATIVE or AW_HOR_NEGATIVE); Panel1.Visible := false; end; } end.