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.
387 lines
11 KiB
387 lines
11 KiB
unit urelRecibo;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
|
|
System.Classes, Vcl.Graphics, System.Math, System.DateUtils,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstMaster, RLReport, Data.DB,
|
|
Vcl.ComCtrls, RLRichText, RLFilters, RLPDFFilter, RLPreviewForm, RLPrinters,
|
|
frxClass, frxDBSet, frxRich;
|
|
|
|
type
|
|
TrelRecibo = class(TmstMaster)
|
|
dtsReport: TDataSource;
|
|
dtsDevedor: TDataSource;
|
|
dtsTitulos: TDataSource;
|
|
frRecibo: TRLReport;
|
|
frb_header: TRLBand;
|
|
frpnl_logo: TRLPanel;
|
|
frdbimg_logo: TRLDBImage;
|
|
frpnl_headertop: TRLPanel;
|
|
frlbl_headertop: TRLLabel;
|
|
frpnl_headerbot: TRLPanel;
|
|
frlbl_headerbot: TRLLabel;
|
|
frb_header2: TRLBand;
|
|
frlbl_valortot: TRLLabel;
|
|
frlbl_vlextenso: TRLLabel;
|
|
frpnl_nome: TRLPanel;
|
|
frdblbl_cpf: TRLDBText;
|
|
frdblbl_nome: TRLDBText;
|
|
frlbl_recebemos: TRLLabel;
|
|
frpnl_recibo: TRLPanel;
|
|
frdblbl_nrrecibo: TRLDBText;
|
|
frlbl_recibo: TRLLabel;
|
|
frb_footer: TRLBand;
|
|
frpnl_organizasum: TRLPanel;
|
|
frdbresult_juros: TRLDBResult;
|
|
frdbresult_multa: TRLDBResult;
|
|
frdbresult_principal: TRLDBResult;
|
|
frdbresult_encargos: TRLDBResult;
|
|
frdbresult_descontos: TRLDBResult;
|
|
frdbresult_total: TRLDBResult;
|
|
frlbl_formarecebimento: TRLLabel;
|
|
frpnl_cheque: TRLPanel;
|
|
frlbl_nrcheque: TRLLabel;
|
|
frlbl_banco: TRLLabel;
|
|
frlbl_praca: TRLLabel;
|
|
frb_detail: TRLBand;
|
|
frdblbl_vencimento: TRLDBText;
|
|
frdblbl_juros: TRLDBText;
|
|
frdblbl_multa: TRLDBText;
|
|
frdblbl_principal: TRLDBText;
|
|
frdblbl_encargos: TRLDBText;
|
|
frdblbl_descontos: TRLDBText;
|
|
frdblbl_total: TRLDBText;
|
|
frsubdbnd1: TRLSubDetail;
|
|
frsubdbndmeio: TRLSubDetail;
|
|
frb_detail2v: TRLBand;
|
|
RLDBText9: TRLDBText;
|
|
RLDBText10: TRLDBText;
|
|
RLDBText11: TRLDBText;
|
|
RLDBText12: TRLDBText;
|
|
RLDBText13: TRLDBText;
|
|
RLDBText14: TRLDBText;
|
|
RLDBText15: TRLDBText;
|
|
frb_footer2v: TRLBand;
|
|
RLPanel3: TRLPanel;
|
|
RLDBResult7: TRLDBResult;
|
|
RLDBResult8: TRLDBResult;
|
|
RLDBResult9: TRLDBResult;
|
|
RLDBResult10: TRLDBResult;
|
|
RLDBResult11: TRLDBResult;
|
|
RLDBResult12: TRLDBResult;
|
|
frlbl_formarecebimento2v: TRLLabel;
|
|
frpnl_cheque2v: TRLPanel;
|
|
frlbl_nrcheque2v: TRLLabel;
|
|
frlbl_banco2v: TRLLabel;
|
|
frlbl_praca2v: TRLLabel;
|
|
frb_header2v: TRLBand;
|
|
frpnl_logo2v: TRLPanel;
|
|
frdbimg_logo2v: TRLDBImage;
|
|
RLPanel6: TRLPanel;
|
|
frlbl_headertop2v: TRLLabel;
|
|
RLPanel7: TRLPanel;
|
|
frlbl_headerbot2v: TRLLabel;
|
|
frb_header22v: TRLBand;
|
|
frlbl_valortot2v: TRLLabel;
|
|
frlbl_vlextenso2v: TRLLabel;
|
|
RLPanel8: TRLPanel;
|
|
frdblbl_cpf2v: TRLDBText;
|
|
frdblbl_nome2v: TRLDBText;
|
|
RLLabel30: TRLLabel;
|
|
RLPanel9: TRLPanel;
|
|
RLDBText19: TRLDBText;
|
|
RLLabel31: TRLLabel;
|
|
frsubdbnd2: TRLSubDetail;
|
|
RLBand5: TRLBand;
|
|
RLDBText2: TRLDBText;
|
|
RLDBResult1: TRLDBResult;
|
|
RLDBText3: TRLDBText;
|
|
RLDBResult2: TRLDBResult;
|
|
RLDBText4: TRLDBText;
|
|
RLDBResult3: TRLDBResult;
|
|
RLDBText5: TRLDBText;
|
|
RLDBResult4: TRLDBResult;
|
|
dtsCaixa: TDataSource;
|
|
frpnl_headers: TRLPanel;
|
|
frlbl_vencimento: TRLLabel;
|
|
frlbl_principal: TRLLabel;
|
|
frlbl_encargos: TRLLabel;
|
|
frlbl_descontos: TRLLabel;
|
|
frlbl_total: TRLLabel;
|
|
frlbl_juros: TRLLabel;
|
|
frlbl_multa: TRLLabel;
|
|
frlbl_despesas: TRLLabel;
|
|
RLLabel2: TRLLabel;
|
|
RLPanel1: TRLPanel;
|
|
RLLabel4: TRLLabel;
|
|
RLLabel11: TRLLabel;
|
|
RLLabel12: TRLLabel;
|
|
RLLabel13: TRLLabel;
|
|
RLLabel14: TRLLabel;
|
|
RLLabel15: TRLLabel;
|
|
RLLabel16: TRLLabel;
|
|
RLLabel1: TRLLabel;
|
|
RLLabel3: TRLLabel;
|
|
frlbl_nometit: TRLLabel;
|
|
RLDBText1: TRLDBText;
|
|
RLLabel5: TRLLabel;
|
|
RLDBText6: TRLDBText;
|
|
RLPanel2: TRLPanel;
|
|
frlbl_empresatit: TRLLabel;
|
|
RLPanel4: TRLPanel;
|
|
frlbl_empresatit2v: TRLLabel;
|
|
frlbl_dtpag: TRLLabel;
|
|
frlbl_dtpag2v: TRLLabel;
|
|
RLPanel5: TRLPanel;
|
|
frlbl_empresa: TRLLabel;
|
|
frlbl_usuario: TRLLabel;
|
|
frdblbl_usuario: TRLDBText;
|
|
fr_date: TRLSystemInfo;
|
|
fr_time: TRLSystemInfo;
|
|
RLPanel10: TRLPanel;
|
|
fr_membobs: TRLMemo;
|
|
RLPanel11: TRLPanel;
|
|
RLLabel18: TRLLabel;
|
|
RLLabel19: TRLLabel;
|
|
RLDBText16: TRLDBText;
|
|
RLSystemInfo2: TRLSystemInfo;
|
|
RLSystemInfo1: TRLSystemInfo;
|
|
RLPanel12: TRLPanel;
|
|
fr_membobs2v: TRLMemo;
|
|
RLLabel6: TRLLabel;
|
|
RLLabel7: TRLLabel;
|
|
frlbl_nr_reciboprimeiravia: TRLLabel;
|
|
frlbl_nr_recibosegundavia: TRLLabel;
|
|
fr_filterpdf: TRLPDFFilter;
|
|
procedure frReciboBeforePrint(Sender: TObject; var PrintIt: Boolean);
|
|
procedure frReciboAfterPrint(Sender: TObject);
|
|
procedure frsubdbnd2BeforePrint(Sender: TObject; var PrintIt: Boolean);
|
|
procedure frsubdbnd1BeforePrint(Sender: TObject; var PrintIt: Boolean);
|
|
procedure frdblbl_cpfBeforePrint(Sender: TObject; var AText: string;
|
|
var PrintIt: Boolean);
|
|
procedure frdblbl_cpf2vBeforePrint(Sender: TObject; var AText: string;
|
|
var PrintIt: Boolean);
|
|
procedure RLDBText19BeforePrint(Sender: TObject; var AText: string;
|
|
var PrintIt: Boolean);
|
|
private
|
|
procedure SalvarReciboPDF;
|
|
function CmtoPix(cm: double): integer;
|
|
{ Private declarations }
|
|
public
|
|
duaspags: Boolean;
|
|
nr_recibo_print: string;
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
relRecibo: TrelRecibo;
|
|
|
|
meses: array [1 .. 12] of string = (
|
|
'JANEIRO',
|
|
'FEVEREIRO',
|
|
'MARCO',
|
|
'ABRIL',
|
|
'MAIO',
|
|
'JUNHO',
|
|
'JULHO',
|
|
'AGOSTO',
|
|
'SETEMBRO',
|
|
'OUTUBRO',
|
|
'NOVEMBRO',
|
|
'DEZEMBRO'
|
|
);
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses udtmSystem, ufrmAtendimento;
|
|
|
|
function TrelRecibo.CmtoPix(cm: double): integer;
|
|
var
|
|
ppcm: double;
|
|
begin
|
|
ppcm := Screen.PixelsPerInch / 2.54;
|
|
Result := Trunc(ppcm * cm);
|
|
end;
|
|
|
|
procedure TrelRecibo.frdblbl_cpf2vBeforePrint(Sender: TObject;
|
|
var AText: string; var PrintIt: Boolean);
|
|
begin
|
|
inherited;
|
|
frdblbl_cpf2v.Left := frdblbl_nome2v.Left + frdblbl_nome2v.Width + 10;
|
|
end;
|
|
|
|
procedure TrelRecibo.frdblbl_cpfBeforePrint(Sender: TObject; var AText: string;
|
|
var PrintIt: Boolean);
|
|
begin
|
|
inherited;
|
|
frdblbl_cpf.Left := frdblbl_nome.Left + frdblbl_nome.Width + 10;
|
|
end;
|
|
|
|
procedure TrelRecibo.frReciboAfterPrint(Sender: TObject);
|
|
begin
|
|
frmAtendimento.btn_concluir.Enabled := true;
|
|
SalvarReciboPDF;
|
|
end;
|
|
|
|
procedure TrelRecibo.frReciboBeforePrint(Sender: TObject; var PrintIt: Boolean);
|
|
begin
|
|
dtsReport.dataset.open;
|
|
dtsDevedor.dataset.open;
|
|
dtsTitulos.dataset.open;
|
|
if not dtmSystem.tblUsuariosConsulta.Active then
|
|
begin
|
|
dtmSystem.tblUsuariosConsulta.open;
|
|
end;
|
|
dtmSystem.tblUsuariosConsulta.Locate('ID_USUARIO', dtmSystem.id_usuario, []);
|
|
end;
|
|
|
|
procedure TrelRecibo.frsubdbnd1BeforePrint(Sender: TObject;
|
|
var PrintIt: Boolean);
|
|
var
|
|
tam: double;
|
|
papel: integer;
|
|
begin
|
|
inherited;
|
|
tam := frsubdbnd1.Height + frsubdbnd2.Height + frsubdbndmeio.Height;
|
|
papel := CmtoPix(29);
|
|
if tam < papel then
|
|
begin
|
|
if (frsubdbnd1.Height + frsubdbndmeio.Height + frsubdbndmeio.Height) <=
|
|
ceil(papel / 2) then
|
|
begin
|
|
frb_footer.Height := floor(papel / 2) - frb_detail.Height -
|
|
frb_header.Height - frb_header2.Height - 100;
|
|
frb_footer2v.Height := frb_footer.Height;
|
|
duaspags := false;
|
|
end
|
|
else
|
|
begin
|
|
duaspags := true;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
duaspags := true;
|
|
end;
|
|
end;
|
|
|
|
procedure TrelRecibo.frsubdbnd2BeforePrint(Sender: TObject;
|
|
var PrintIt: Boolean);
|
|
begin
|
|
if duaspags then
|
|
begin
|
|
frsubdbnd2.PageBreaking := pbBeforePrint;
|
|
end
|
|
else
|
|
begin
|
|
frsubdbnd2.PageBreaking := RLReport.pbNone;
|
|
end;
|
|
dtsReport.dataset.RecNo := dtsReport.dataset.RecordCount;
|
|
dtmSystem.tblConteudoRecibo.RecNo := 1;
|
|
end;
|
|
|
|
procedure TrelRecibo.RLDBText19BeforePrint(Sender: TObject; var AText: string;
|
|
var PrintIt: Boolean);
|
|
begin
|
|
inherited;
|
|
// dtsReport.DataSet.First;
|
|
end;
|
|
|
|
procedure TrelRecibo.SalvarReciboPDF;
|
|
var
|
|
path, file_name: string;
|
|
Fmt: TFormatSettings;
|
|
i: integer;
|
|
begin
|
|
// Fmt := TFormatSettings.Create;
|
|
// for i := 0 to High(meses) do
|
|
// begin
|
|
// Fmt.LongMonthNames[i] := meses[i];
|
|
// end;
|
|
// path := dtmSystem.path_executavel + '\RECIBOS';
|
|
// if not DirectoryExists(path) then
|
|
// begin
|
|
// CreateDir(path);
|
|
// end;
|
|
// path := TrimRight(path);
|
|
// path := path + '\' + FormatDateTime('YYYY', Date);
|
|
// if not DirectoryExists(path) then
|
|
// begin
|
|
// CreateDir(path);
|
|
// end;
|
|
// // path := path + '\' + FormatDateTime('mmmm', Date, Fmt);
|
|
// path := path + '\' + meses[MonthOf(Date)];
|
|
// if not DirectoryExists(path) then
|
|
// begin
|
|
// CreateDir(path);
|
|
// end;
|
|
// path := path + '\' + FormatDateTime('dd', Date);
|
|
// if not DirectoryExists(path) then
|
|
// begin
|
|
// CreateDir(path);
|
|
// end;
|
|
// file_name := path + '\' + dtmSystem.tblReciboNR_RECIBO.AsString + '.pdf';
|
|
// file_name := path + '\' + nr_recibo_print + '.pdf';
|
|
|
|
frmAtendimento.log_recibo.Add('Nº do recibo dentro do recibo: ' +
|
|
nr_recibo_print);
|
|
// file_name := 'E:\Programa_Cobranca\Win32\Debug\RECIBOS\2021\MAIO\21\teste3.pdf';
|
|
Try
|
|
// frRecibo.SaveToFile(ExtractFilePath(Application.ExeName) +
|
|
// dtmSystem.tblReciboNR_RECIBO.AsString + '.pdf');
|
|
frRecibo.SaveToFile(ExtractFilePath(Application.ExeName) + nr_recibo_print
|
|
+ '.pdf');
|
|
frmAtendimento.log_recibo.Add('Caminho salvo no local: ' +
|
|
ExtractFilePath(Application.ExeName) + nr_recibo_print + '.pdf');
|
|
path := dtmSystem.path_executavel + '\RECIBOS';
|
|
if not DirectoryExists(path) then
|
|
begin
|
|
CreateDir(path);
|
|
end;
|
|
path := TrimRight(path);
|
|
path := path + '\' + FormatDateTime('YYYY', Date);
|
|
if not DirectoryExists(path) then
|
|
begin
|
|
CreateDir(path);
|
|
end;
|
|
// path := path + '\' + FormatDateTime('mmmm', Date, Fmt);
|
|
path := path + '\' + meses[MonthOf(Date)];
|
|
if not DirectoryExists(path) then
|
|
begin
|
|
CreateDir(path);
|
|
end;
|
|
path := path + '\' + FormatDateTime('dd', Date);
|
|
if not DirectoryExists(path) then
|
|
begin
|
|
CreateDir(path);
|
|
end;
|
|
// file_name := path + '\' + dtmSystem.tblReciboNR_RECIBO.AsString + '.pdf';
|
|
file_name := path + '\' + nr_recibo_print + '.pdf';
|
|
frmAtendimento.log_recibo.Add('Caminho do recibo no servidor: ' +
|
|
file_name);
|
|
// MoveFile(PChar(ExtractFilePath(Application.ExeName) +
|
|
// dtmSystem.tblReciboNR_RECIBO.AsString + '.pdf'), PChar(file_name));
|
|
MoveFile(PChar(ExtractFilePath(Application.ExeName) + nr_recibo_print +
|
|
'.pdf'), PChar(file_name));
|
|
// dtmSystem.tblRecibo.Edit;
|
|
// dtmSystem.tblReciboTX_CAMINHO.AsString := file_name;
|
|
// dtmSystem.tblRecibo.Post;
|
|
Except
|
|
on E: Exception do
|
|
begin
|
|
ShowMessage
|
|
('Erro ao tentar salvar o arquivo pdf. Por favor salve manualmente.' +
|
|
sLineBreak + 'Erro: ' + E.Message);
|
|
end;
|
|
end;
|
|
file_name := ExtractFilePath(Application.ExeName) + nr_recibo_print
|
|
+ '.pdf';
|
|
fr_filterpdf.FileName := file_name;
|
|
frRecibo.DefaultFilter := fr_filterpdf;
|
|
end;
|
|
|
|
end.
|