You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

540 lines
20 KiB

unit ufrmFechamento;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstMaster, Vcl.StdCtrls, Vcl.ExtCtrls,
Vcl.ComCtrls, DateUtils;
type
TStringDynArray = array of string;
type
TfrmFechamento = class(TmstMaster)
pnl_fundo: TPanel;
lbl_ligacao: TLabel;
cb_ligacao: TComboBox;
lbl_situacao: TLabel;
cb_situacao: TComboBox;
lbl_acordo: TLabel;
cb_acordo: TComboBox;
btncontinuar: TButton;
btncancel: TButton;
procedure cb_ligacaoChange(Sender: TObject);
procedure cb_situacaoChange(Sender: TObject);
procedure btncontinuarClick(Sender: TObject);
private
function EscreveTitulos(): TStringDynArray;
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
{ Private declarations }
public
{ Public declarations }
end;
var
frmFechamento: TfrmFechamento;
implementation
{$R *.dfm}
uses ufrmEfetuarCobranca, udtmSystem, System.UITypes;
procedure TfrmFechamento.cb_ligacaoChange(Sender: TObject);
begin
inherited;
if cb_ligacao.ItemIndex = 0 then
begin
cb_situacao.Enabled := true;
end
else
begin
cb_situacao.Enabled := false;
cb_acordo.Enabled := false;
end;
if cb_ligacao.ItemIndex <> -1 then
begin
btncontinuar.Enabled := true;
end;
end;
procedure TfrmFechamento.cb_situacaoChange(Sender: TObject);
begin
inherited;
if (cb_situacao.ItemIndex = 0) or (cb_situacao.ItemIndex = 2) then
begin
cb_acordo.Enabled := true;
end
else
begin
cb_acordo.Enabled := false;
end;
end;
procedure TfrmFechamento.btncontinuarClick(Sender: TObject);
var
titulos: array of string;
k, i: Integer;
h: Integer;
begin
inherited;
// dtmSystem.tblProvidencias.Filter := 'ID_PROVIDENCIA > 1';
// dtmSystem.tblProvidencias.Filtered := true;
if (cb_ligacao.ItemIndex = 0) and (cb_situacao.ItemIndex < 0) then
begin
MessageDlg('Por favor selecione o tipo de situação ocorrida.',
mtConfirmation, [mbok], 0);
ModalResult := mrCancel;
Abort;
end;
if (cb_acordo.ItemIndex = 0) and (frmEfetuarCobranca.cb_descpar.Checked) then
begin
if MessageDlg
('Foi acordado quitar a dívida, mas descontos sobre parcelar estão ativados. Deseja continuar?',
mtConfirmation, [mbYes, mbNo], 0) = mrno then
begin
ModalResult := mrCancel;
Abort;
end;
end;
if (cb_acordo.ItemIndex = 1) and (frmEfetuarCobranca.cb_descquit.Checked) then
begin
if MessageDlg
('Foi acordado parcelar a dívida, mas descontos sobre quitar estão ativados. Deseja continuar?',
mtConfirmation, [mbok], 0) = mrno then
begin
ModalResult := mrCancel;
Abort;
end;
end;
if (cb_acordo.Enabled) and (cb_acordo.ItemIndex < 0) then
begin
MessageDlg('Por favor selecione o tipo de acordo a ser fechado.',
mtConfirmation, [mbok], 0);
ModalResult := mrCancel;
Abort;
end;
// frmEfetuarCobranca.dtp_diaagendamento.Enabled := false;
// frmEfetuarCobranca.dtp_horaagendamento.Enabled := false;
// frmEfetuarCobranca.dblucb_cobradoragendar.Enabled := false;
// frmEfetuarCobranca.dbgrd_providencias.Enabled := true;
// if frmEfetuarCobranca.btn_protocolo.Enabled then
// begin
// frmEfetuarCobranca.edt_protocolo.Text := frmEfetuarCobranca.gerar_protocolo
// (dtmSystem.tblDevedoresID_DEVEDOR.AsString);
// frmEfetuarCobranca.edt_protocolo1.Text :=
// frmEfetuarCobranca.edt_protocolo.Text;
// frmEfetuarCobranca.btn_protocolo.Enabled := false;
// end;
frmEfetuarCobranca.mb_fechamento.Clear;
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Cobrador: ' + dtmSystem.tx_usuario);
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add(DateToStr(Date) + ' - ' +
TimeToStr(Time));
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
dtmSystem.tblTelefones.First;
h := 1;
while not dtmSystem.tblTelefones.Eof do
begin
if dtmSystem.tblTelefonesTP_ATIVO.AsString <> 'N' then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Telefone nº' + inttostr(h) +
': ' + '(' + dtmSystem.tblTelefonesNR_DDD.AsString + ')' +
dtmSystem.tblTelefonesNR_NUMERO.AsString + ' - Situação: ');
Inc(h);
end;
dtmSystem.tblTelefones.Next;
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
{ 0 = Sim; 1 = Não }
if cb_ligacao.ItemIndex = 1 then
begin
// frmEfetuarCobranca.mb_fechamento.Lines.Add
// ('O devedor ' + dtmSystem.tblDevedoresTX_NOME.AsString +
// ' no(s) telefone(s) __________ não atendeu a(s) chamada(s).');
end
else
begin
setlength(titulos, length(EscreveTitulos()));
for k := 0 to length(titulos) - 1 do
begin
titulos[k] := EscreveTitulos()[k];
end;
// frmEfetuarCobranca.mb_fechamento.Lines.Add
// ('A ligação para o telefone __________ foi atendia por __________.');
// frmEfetuarCobranca.mb_fechamento.Lines.Add('');
{ frmEfetuarCobranca.dtp_diaagendamento.Date :=
frmEfetuarCobranca.dtp_atrasorecalc.Date;
frmEfetuarCobranca.dtp_horaagendamento.Time := Time; }
{ 0 = Fechou; 1 = Não aceitou acordo; 2 = Acordo a ser considerado; 3 = Agendou atendente; 4 = Agendou outro cobrador }
if cb_situacao.ItemIndex = 0 then
begin
if length(titulos) > 1 then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foram cobrados os títulos:');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
end
else
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Foi cobrado o título:');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
end;
for i := 0 to length(titulos) - 1 do
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add(titulos[i]);
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foi fechado o seguinte acordo:');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
{ 0 = Quitação; 1 = Parcelamento }
if cb_acordo.ItemIndex = 0 then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Forma de pagamento: Quitação.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Data para pagamento: ' +
FormatDateTime('dd/mm/yyyy',
frmEfetuarCobranca.dtp_atrasorecalc.Date) + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total corrigido: ' +
frmEfetuarCobranca.edt_vlaquitar.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total nominal: ' +
frmEfetuarCobranca.edt_somatitulos.Text + '.');
if frmEfetuarCobranca.cbx_txextra.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor de taxas extras: ' +
frmEfetuarCobranca.edt_txextra.Text + '.');
end;
if frmEfetuarCobranca.cb_nmulta.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Não foi cobrado multa.');
end
else
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total da multa: ' +
frmEfetuarCobranca.edt_somamulta.Text + '.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total de juros: ' +
frmEfetuarCobranca.edt_somajuros.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Valor total de indicador financeiro: ' +
frmEfetuarCobranca.edt_somaindicador.Text + '.');
if frmEfetuarCobranca.cb_descquit.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foi concedido descontos conforme a seguir:');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre principal: ' +
frmEfetuarCobranca.edt_principalquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre multa: '
+ frmEfetuarCobranca.edt_multasquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre juros: '
+ frmEfetuarCobranca.edt_jurosquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre indicador financeiro: ' +
frmEfetuarCobranca.edt_indquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre corrigido: ' +
frmEfetuarCobranca.edt_corquitar.Text + '%.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Forma de Pagamento sugerida: ' +
frmEfetuarCobranca.cb_formapag.Text);
// frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor ajustado: '+ frmEfetuarCobranca.edt_vlcorpag.Text);
end;
if cb_acordo.ItemIndex = 1 then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Forma de pagamento: Parcelamento.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total corrigido: ' +
frmEfetuarCobranca.edt_vlaquitar.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total nominal: ' +
frmEfetuarCobranca.edt_somatitulos.Text + '.');
if frmEfetuarCobranca.cbx_txextra.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor de taxas extras: ' +
frmEfetuarCobranca.edt_txextra.Text + '.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('Quantidade de parcelas: ' +
frmEfetuarCobranca.edt_nrparcelas.Text + '.');
frmEfetuarCobranca.copiar_conteudoClick(Sender);
frmEfetuarCobranca.mb_fechamento.Lines.Add(frmEfetuarCobranca.clpbrd);
if frmEfetuarCobranca.cb_nmulta.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Não foi cobrado multa.');
end
else
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total da multa: ' +
frmEfetuarCobranca.edt_somamulta.Text + '.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total de juros: ' +
frmEfetuarCobranca.edt_somajuros.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Valor total de indicador financeiro: ' +
frmEfetuarCobranca.edt_somaindicador.Text + '.');
if frmEfetuarCobranca.cb_descpar.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foi concedido descontos conforme a seguir:');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre principal: ' +
frmEfetuarCobranca.edt_principalparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre multa: '
+ frmEfetuarCobranca.edt_multasparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre juros: '
+ frmEfetuarCobranca.edt_jurosparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre indicador financeiro: ' +
frmEfetuarCobranca.edt_indparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre corrigido: ' +
frmEfetuarCobranca.edt_corpar.Text + '%.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Forma de Pagamento sugerida: ' +
frmEfetuarCobranca.cb_formapag.Text);
end;
end;
if cb_situacao.ItemIndex = 1 then
begin
if length(titulos) > 1 then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foram cobrados os títulos:');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
end
else
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Foi cobrado o título:');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
end;
for i := 0 to length(titulos) - 1 do
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add(titulos[i]);
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Nenhum acordo foi fechado.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('O motivo do não fechamento foi: __________.');
end;
if cb_situacao.ItemIndex = 2 then
begin
if length(titulos) > 1 then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foram cobrados os títulos:');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
end
else
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Foi cobrado o título:');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
end;
for i := 0 to length(titulos) - 1 do
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add(titulos[i]);
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foi oferecido ao devedor o seguinte acordo a ser considerado: ');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Forma de pagamento: Quitação.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Data para pagamento: ' +
FormatDateTime('dd/mm/yyyy',
frmEfetuarCobranca.dtp_atrasorecalc.Date) + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total corrigido: ' +
frmEfetuarCobranca.edt_vlaquitar.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total nominal: ' +
frmEfetuarCobranca.edt_somatitulos.Text + '.');
if frmEfetuarCobranca.cbx_txextra.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor de taxas extras: ' +
frmEfetuarCobranca.edt_txextra.Text + '.');
end;
if frmEfetuarCobranca.cb_nmulta.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Não foi cobrado multa.');
end
else
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total da multa: ' +
frmEfetuarCobranca.edt_somamulta.Text + '.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total de juros: ' +
frmEfetuarCobranca.edt_somajuros.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Valor total de indicador financeiro: ' +
frmEfetuarCobranca.edt_somaindicador.Text + '.');
if frmEfetuarCobranca.cb_descquit.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foi concedido descontos conforme a seguir:');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre principal: ' +
frmEfetuarCobranca.edt_principalquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre multa: ' +
frmEfetuarCobranca.edt_multasquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre juros: ' +
frmEfetuarCobranca.edt_jurosquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre indicador financeiro: ' +
frmEfetuarCobranca.edt_indquitar.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre corrigido: ' + frmEfetuarCobranca.edt_corquitar.
Text + '%.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Forma de pagamento: Parcelamento.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total corrigido: ' +
frmEfetuarCobranca.edt_vlaquitar.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total nominal: ' +
frmEfetuarCobranca.edt_somatitulos.Text + '.');
if frmEfetuarCobranca.cbx_txextra.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor de taxas extras: ' +
frmEfetuarCobranca.edt_txextra.Text + '.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('Quantidade de parcelas: ' +
frmEfetuarCobranca.edt_nrparcelas.Text + '.');
frmEfetuarCobranca.copiar_conteudoClick(Sender);
frmEfetuarCobranca.mb_fechamento.Lines.Add(frmEfetuarCobranca.clpbrd);
if frmEfetuarCobranca.cb_nmulta.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Não foi cobrado multa.');
end
else
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total da multa: ' +
frmEfetuarCobranca.edt_somamulta.Text + '.');
end;
frmEfetuarCobranca.mb_fechamento.Lines.Add('Valor total de juros: ' +
frmEfetuarCobranca.edt_somajuros.Text + '.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Valor total de indicador financeiro: ' +
frmEfetuarCobranca.edt_somaindicador.Text + '.');
if frmEfetuarCobranca.cb_descpar.Checked then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foi concedido descontos conforme a seguir:');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre principal: ' +
frmEfetuarCobranca.edt_principalparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre multa: ' +
frmEfetuarCobranca.edt_multasparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add('Porcentagem sobre juros: ' +
frmEfetuarCobranca.edt_jurosparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre indicador financeiro: ' +
frmEfetuarCobranca.edt_indparcelas.Text + '%.');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Porcentagem sobre corrigido: ' +
frmEfetuarCobranca.edt_corpar.Text + '%.');
end;
end;
if cb_situacao.ItemIndex = 3 then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Foi agendado para o dia __/__/____ às __:__ .');
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
end;
if (frmEfetuarCobranca.cbx_txextra.Checked) and (StrToCurr(frmEfetuarCobranca.edt_txextra.Text) > 0) then
begin
frmEfetuarCobranca.mb_fechamento.Lines.Add('');
frmEfetuarCobranca.mb_fechamento.Lines.Add
('Taxa extra cobrada: ' + (frmEfetuarCobranca.edt_txextra.Text));
end;
end;
end;
function TfrmFechamento.EscreveTitulos(): TStringDynArray;
var
count, i, j: Integer;
tx_titulo, vl_titulo, id_titulo, dt_venc: array of string;
begin
count := 0;
with frmEfetuarCobranca do
begin
for i := 0 to lv_titulos.Items.count - 1 do
begin
if lv_titulos.Items.Item[i].Checked then
begin
count := count + 1;
setlength(tx_titulo, count);
setlength(id_titulo, count);
setlength(vl_titulo, count);
setlength(dt_venc, count);
queryListaTitulos.RecNo := i + 1;
tx_titulo[count - 1] := queryListaTitulosTX_PRODUTO.AsString;
id_titulo[count - 1] := queryListaTitulosID_TITULO.AsString;
vl_titulo[count - 1] :=
CurrToStrF(queryListaTitulosVL_TITULO.AsCurrency, ffCurrency, 2);
dt_venc[count - 1] :=
DateToStr(Dateof(queryListaTitulosDT_VENCIMENTO.AsDateTime));
end;
end;
setlength(result, count);
for j := 0 to count - 1 do
begin
result[j] := tx_titulo[j] + ' (ID:' + id_titulo[j] +
') no valor nominal de ' + vl_titulo[j] + ' com vencimento em ' +
dt_venc[j] + '.';
end;
end;
end;
procedure TfrmFechamento.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.