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.
503 lines
15 KiB
503 lines
15 KiB
unit ufrmEmpresas;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
|
|
System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Data.DB,
|
|
System.UITypes,
|
|
Vcl.Grids, Vcl.DBGrids, Vcl.ComCtrls, Vcl.DBCtrls, Math, Vcl.Buttons,
|
|
Vcl.ExtDlgs, Jpeg, Vcl.Mask, StrUtils, Types;
|
|
|
|
type
|
|
TfrmEmpresas = class(TForm)
|
|
pnl_top: TPanel;
|
|
pg_empresas: TPageControl;
|
|
tab_dados: TTabSheet;
|
|
tab_tblcalculos: TTabSheet;
|
|
dbgrid_nomes: TDBGrid;
|
|
grd_principal: TGridPanel;
|
|
lbl_razao: TLabel;
|
|
lbl_cnpj: TLabel;
|
|
lbl_fantasia: TLabel;
|
|
lbl_cidade: TLabel;
|
|
lbl_bairro: TLabel;
|
|
lbl_uf: TLabel;
|
|
lbl_tel: TLabel;
|
|
lbl_email: TLabel;
|
|
lbl_end: TLabel;
|
|
lbl_num: TLabel;
|
|
lbl_compl: TLabel;
|
|
lbl_cep: TLabel;
|
|
lbl_inscriest: TLabel;
|
|
lbl_inscrimuni: TLabel;
|
|
lbl_website: TLabel;
|
|
lbl_obs: TLabel;
|
|
btn_clearmemo: TButton;
|
|
grpb_logo: TGroupBox;
|
|
pnl_img: TPanel;
|
|
spdbtn_loadimg: TSpeedButton;
|
|
spdbtn_clearimg: TSpeedButton;
|
|
OpenPictureDialog1: TOpenPictureDialog;
|
|
btn_criarcad: TButton;
|
|
btn_removcad: TButton;
|
|
dbmemo_obs: TDBMemo;
|
|
dblucmbox_uf: TDBLookupComboBox;
|
|
dblucmbox_cidade: TDBLookupComboBox;
|
|
btn_altcad: TButton;
|
|
dbedt_razao: TDBEdit;
|
|
dbedt_fantasia: TDBEdit;
|
|
dbedt_cnpj: TDBEdit;
|
|
dbedt_inscriest: TDBEdit;
|
|
dbedt_inscrimuni: TDBEdit;
|
|
dbedt_bairro: TDBEdit;
|
|
dbedt_cep: TDBEdit;
|
|
dbedt_end: TDBEdit;
|
|
dbedt_num: TDBEdit;
|
|
dbedt_compl: TDBEdit;
|
|
dbedt_tel: TDBEdit;
|
|
dbedt_email: TDBEdit;
|
|
dbedt_website: TDBEdit;
|
|
img_logo: TImage;
|
|
dblbl_nmfantasia: TDBText;
|
|
dblbl_razaosocial: TDBText;
|
|
grd_honorarios: TStringGrid;
|
|
lbl_honorarios: TLabel;
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure FormResize(Sender: TObject);
|
|
procedure btn_clearmemoClick(Sender: TObject);
|
|
procedure spdbtn_loadimgClick(Sender: TObject);
|
|
procedure spdbtn_clearimgClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure dbgrid_nomesCellClick(Column: TColumn);
|
|
procedure dbgrid_nomesKeyUp(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
procedure btn_criarcadClick(Sender: TObject);
|
|
procedure btn_removcadClick(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure btn_altcadClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
img_path: string;
|
|
mudou_img: boolean;
|
|
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmEmpresas: TfrmEmpresas;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses udtmSystem;
|
|
|
|
procedure TfrmEmpresas.btn_altcadClick(Sender: TObject);
|
|
var
|
|
selected, i: integer;
|
|
honorarios: string;
|
|
begin
|
|
selected := MessageDlg
|
|
('Você está prestes a alterar o cadastro de uma Empresa.' +
|
|
' Tem certeza que deseja realizar tal ação?', mtConfirmation,
|
|
[mbYes, mbNo], 0);
|
|
if selected = mrYes then
|
|
begin
|
|
with udtmSystem.dtmSystem do
|
|
begin
|
|
tblEmpresa.Edit;
|
|
tblEmpresaTX_NOME.AsString := dbedt_razao.Text;
|
|
tblEmpresaTX_FANTASIA.AsString := dbedt_fantasia.Text;
|
|
tblEmpresaTX_CNPJ.AsString := dbedt_cnpj.Text;
|
|
tblEmpresaTX_IE.AsString := dbedt_inscriest.Text;
|
|
tblEmpresaTX_IM.AsString := dbedt_inscrimuni.Text;
|
|
tblEmpresaID_CIDADE.AsString := inttostr(dblucmbox_cidade.KeyValue);
|
|
tblEmpresaID_ESTADO.AsString := inttostr(dblucmbox_uf.KeyValue);
|
|
tblEmpresaTX_BAIRRO.AsString := dbedt_bairro.Text;
|
|
tblEmpresaTX_CEP.AsString := dbedt_cep.Text;
|
|
tblEmpresaTX_ENDERECO.AsString := dbedt_end.Text;
|
|
tblEmpresaNR_NUMERO.AsString := dbedt_num.Text;
|
|
tblEmpresaTX_COMPLEMENTO.AsString := dbedt_compl.Text;
|
|
tblEmpresaTX_TELEFONE.AsString := dbedt_tel.Text;
|
|
tblEmpresaTX_EMAIL.AsString := dbedt_email.Text;
|
|
tblEmpresaTX_WEBSITE.AsString := dbedt_website.Text;
|
|
tblEmpresaTL_OBSERVACOES.AsString := dbmemo_obs.Lines.Text;
|
|
if (mudou_img) then
|
|
begin
|
|
tblEmpresaTX_LOGOMARCA.AsString := img_path;
|
|
end;
|
|
honorarios := '';
|
|
for i := 1 to grd_honorarios.RowCount - 1 do
|
|
begin
|
|
honorarios := honorarios + grd_honorarios.Cells[1, i] + '#';
|
|
end;
|
|
tblEmpresaTX_HONORARIOS.AsString := honorarios;
|
|
tblEmpresa.Post;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.btn_clearmemoClick(Sender: TObject);
|
|
begin
|
|
dbmemo_obs.Lines.Clear;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.btn_criarcadClick(Sender: TObject);
|
|
var
|
|
selected: integer;
|
|
begin
|
|
selected := MessageDlg
|
|
('Você está prestes a adicionar uma nova Empresa ao seu banco de dados.' +
|
|
' Tem certeza que deseja realizar tal ação?', mtConfirmation,
|
|
[mbYes, mbNo], 0);
|
|
// nome_emp := InputBox('Nova Empresa', 'Digite a razão social ou o nome fantasia da empresa. Ambos poderão ser alterados mais tarde.', '');
|
|
if selected = mrYes then
|
|
begin
|
|
with udtmSystem.dtmSystem do
|
|
begin
|
|
tblEmpresa.Append;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TfrmEmpresas.btn_removcadClick(Sender: TObject);
|
|
begin
|
|
|
|
if MessageDlg
|
|
('Deseja realmente apagar este registro? Não será possível recuperar os dados novamente.',
|
|
mtConfirmation, [mbYes, mbNo], 0) = mrNo then
|
|
begin
|
|
abort;
|
|
end;
|
|
try
|
|
begin
|
|
udtmSystem.dtmSystem.tblEmpresa.Delete;
|
|
end;
|
|
finally
|
|
begin
|
|
abort;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.Button1Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.dbgrid_nomesCellClick(Column: TColumn);
|
|
var
|
|
j: integer;
|
|
list: Tstringdynarray;
|
|
begin
|
|
|
|
dblucmbox_uf.KeyValue := udtmSystem.dtmSystem.tblEmpresaID_ESTADO.AsInteger;
|
|
dblucmbox_cidade.KeyValue :=
|
|
udtmSystem.dtmSystem.tblEmpresaID_CIDADE.AsInteger;
|
|
if udtmSystem.dtmSystem.tblEmpresaTX_LOGOMARCA.AsString <> '' then
|
|
begin
|
|
img_logo.Picture.LoadFromFile
|
|
(udtmSystem.dtmSystem.tblEmpresaTX_LOGOMARCA.AsString);
|
|
end
|
|
else
|
|
begin
|
|
img_logo.Picture := nil;
|
|
end;
|
|
if (not spdbtn_loadimg.Enabled) or (not spdbtn_clearimg.Enabled) then
|
|
begin
|
|
spdbtn_loadimg.Enabled := true;
|
|
spdbtn_clearimg.Enabled := true;
|
|
end;
|
|
mudou_img := false;
|
|
if udtmSystem.dtmSystem.tblEmpresaTX_HONORARIOS.AsString <> '' then
|
|
begin
|
|
list := SplitString(udtmSystem.dtmSystem.tblEmpresaTX_HONORARIOS.
|
|
AsString, '#');
|
|
end
|
|
else
|
|
begin
|
|
for j := 1 to 4 do
|
|
begin
|
|
grd_honorarios.Cells[1, j] := '0';
|
|
end;
|
|
end;
|
|
|
|
for j := 1 to length(list) do
|
|
begin
|
|
if list[j - 1] <> '' then
|
|
begin
|
|
grd_honorarios.Cells[1, j] := list[j - 1];
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.dbgrid_nomesKeyUp(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
begin
|
|
dbgrid_nomes.OnCellClick(nil);
|
|
end;
|
|
|
|
procedure TfrmEmpresas.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
with udtmSystem.dtmSystem do
|
|
begin
|
|
tblEmpresa.Close;
|
|
tblCidades.Close;
|
|
tblEstados.Close;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.FormCreate(Sender: TObject);
|
|
var
|
|
i, j, k: integer;
|
|
list_open: Tstringdynarray;
|
|
begin
|
|
// abre as tabelas pra uso
|
|
with udtmSystem.dtmSystem do
|
|
begin
|
|
tblEmpresa.Open;
|
|
tblCidades.Open;
|
|
tblEstados.Open;
|
|
end;
|
|
img_logo.Picture.LoadFromFile
|
|
(udtmSystem.dtmSystem.tblEmpresaTX_LOGOMARCA.AsString);
|
|
dblucmbox_uf.KeyValue := udtmSystem.dtmSystem.tblEmpresaID_ESTADO.AsInteger;
|
|
dblucmbox_cidade.KeyValue :=
|
|
udtmSystem.dtmSystem.tblEmpresaID_CIDADE.AsInteger;
|
|
mudou_img := false;
|
|
grd_honorarios.Rows[1].Text := 'Juros';
|
|
grd_honorarios.Rows[2].Text := 'Multas';
|
|
grd_honorarios.Rows[3].Text := 'Encargos';
|
|
grd_honorarios.Rows[4].Text := 'Título';
|
|
for i := 0 to 4 do
|
|
begin
|
|
grd_honorarios.RowHeights[i] := 18;
|
|
end;
|
|
grd_honorarios.Height := 98;
|
|
grd_honorarios.Width := (grd_honorarios.ColWidths[0] * 2) + 5;
|
|
|
|
if udtmSystem.dtmSystem.tblEmpresaTX_HONORARIOS.AsString <> '' then
|
|
begin
|
|
list_open := SplitString(udtmSystem.dtmSystem.tblEmpresaTX_HONORARIOS.
|
|
AsString, '#');
|
|
end
|
|
else
|
|
begin
|
|
for k := 1 to 4 do
|
|
begin
|
|
grd_honorarios.Cells[1, k] := '0';
|
|
end;
|
|
end;
|
|
|
|
for j := 1 to length(list_open) do
|
|
begin
|
|
if list_open[j - 1] <> '' then
|
|
begin
|
|
grd_honorarios.Cells[1, j] := list_open[j - 1];
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.FormResize(Sender: TObject);
|
|
var
|
|
i: integer;
|
|
begin
|
|
// setando o tamanho das linhas e colunas do grid
|
|
grd_principal.RowCollection.BeginUpdate;
|
|
grd_principal.RowCollection[0].SizeStyle := ssPercent;
|
|
grd_principal.RowCollection[0].Value := 10;
|
|
grd_principal.RowCollection[1].SizeStyle := ssPercent;
|
|
grd_principal.RowCollection[1].Value := 30;
|
|
grd_principal.RowCollection[2].SizeStyle := ssPercent;
|
|
grd_principal.RowCollection[2].Value := 30;
|
|
grd_principal.RowCollection[3].SizeStyle := ssPercent;
|
|
grd_principal.RowCollection[3].Value := 30;
|
|
grd_principal.RowCollection.EndUpdate;
|
|
|
|
grd_principal.ColumnCollection.BeginUpdate;
|
|
grd_principal.ColumnCollection[0].SizeStyle := ssPercent;
|
|
grd_principal.ColumnCollection[0].Value := 25;
|
|
grd_principal.ColumnCollection[1].SizeStyle := ssPercent;
|
|
grd_principal.ColumnCollection[1].Value := 25;
|
|
grd_principal.ColumnCollection[2].SizeStyle := ssPercent;
|
|
grd_principal.ColumnCollection[2].Value := 25;
|
|
grd_principal.ColumnCollection[3].SizeStyle := ssPercent;
|
|
grd_principal.ColumnCollection[3].Value := 25;
|
|
grd_principal.ColumnCollection.EndUpdate;
|
|
|
|
// Seta tamanho das logos
|
|
dblbl_razaosocial.Height := floor(pnl_top.Height / 2);
|
|
dblbl_razaosocial.Font.Size := floor(dblbl_razaosocial.Height * 0.6);
|
|
dblbl_nmfantasia.Height := floor(pnl_top.Height / 2);
|
|
dblbl_nmfantasia.Font.Size := floor(dblbl_nmfantasia.Height * 0.6);
|
|
|
|
// Seta o tamanho das colunas na tabela de seleção
|
|
for i := 0 to (dbgrid_nomes.Columns.Count - 1) do
|
|
begin
|
|
dbgrid_nomes.Columns[i].Width := round(dbgrid_nomes.ClientWidth);
|
|
end;
|
|
|
|
// Posicionamento dinâmico dos objetos na janela
|
|
lbl_razao.Left := 3;
|
|
lbl_razao.Top := 3;
|
|
dbedt_razao.Left := 3;
|
|
dbedt_razao.Top := 18;
|
|
dbedt_razao.Width := round(tab_dados.ClientWidth * 0.45);
|
|
|
|
lbl_fantasia.Top := 3;
|
|
lbl_fantasia.Left := dbedt_razao.Left + dbedt_razao.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
dbedt_fantasia.Top := 18;
|
|
dbedt_fantasia.Left := dbedt_razao.Left + dbedt_razao.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
dbedt_fantasia.Width := round(tab_dados.ClientWidth * 0.45);
|
|
|
|
lbl_cnpj.Top := 45;
|
|
lbl_cnpj.Left := 3;
|
|
dbedt_cnpj.Top := 60;
|
|
dbedt_cnpj.Left := 3;
|
|
|
|
lbl_cidade.Top := 87;
|
|
lbl_cidade.Left := 3;
|
|
dblucmbox_cidade.Top := 102;
|
|
dblucmbox_cidade.Left := 3;
|
|
dblucmbox_cidade.Width := round(tab_dados.ClientWidth * 0.2);
|
|
|
|
lbl_inscriest.Top := 45;
|
|
lbl_inscriest.Left := dblucmbox_cidade.Left + dblucmbox_cidade.Width +
|
|
round(tab_dados.ClientWidth * 0.06);
|
|
dbedt_inscriest.Top := 60;
|
|
dbedt_inscriest.Left := dblucmbox_cidade.Left + dblucmbox_cidade.Width +
|
|
round(tab_dados.ClientWidth * 0.06);
|
|
|
|
lbl_inscrimuni.Top := 45;
|
|
lbl_inscrimuni.Left := dbedt_razao.Left + dbedt_razao.Width -
|
|
dbedt_inscrimuni.Width;
|
|
dbedt_inscrimuni.Top := 60;
|
|
dbedt_inscrimuni.Left := dbedt_razao.Left + dbedt_razao.Width -
|
|
dbedt_inscrimuni.Width;
|
|
|
|
lbl_bairro.Top := 84;
|
|
lbl_bairro.Left := dblucmbox_cidade.Left + dblucmbox_cidade.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
dbedt_bairro.Top := 102;
|
|
dbedt_bairro.Left := dblucmbox_cidade.Left + dblucmbox_cidade.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
dbedt_bairro.Width := round(tab_dados.ClientWidth * 0.23);
|
|
|
|
lbl_uf.Top := 87;
|
|
lbl_uf.Left := dbedt_razao.Left + dbedt_razao.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
dblucmbox_uf.Top := 102;
|
|
dblucmbox_uf.Left := dbedt_razao.Left + dbedt_razao.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
|
|
lbl_cep.Top := 87;
|
|
lbl_cep.Left := lbl_uf.Left + dblucmbox_uf.Width +
|
|
round(tab_dados.ClientWidth * 0.03);
|
|
dbedt_cep.Top := 102;
|
|
dbedt_cep.Left := lbl_uf.Left + dblucmbox_uf.Width +
|
|
round(tab_dados.ClientWidth * 0.03);
|
|
|
|
lbl_honorarios.Top := 87;
|
|
lbl_honorarios.Left := dbedt_cep.Left + dbedt_cep.Width +
|
|
round(tab_dados.ClientWidth * 0.03);
|
|
grd_honorarios.Top := 102;
|
|
grd_honorarios.Left := lbl_honorarios.Left;
|
|
|
|
lbl_end.Top := 129;
|
|
lbl_end.Left := 3;
|
|
dbedt_end.Top := 144;
|
|
dbedt_end.Left := 3;
|
|
dbedt_end.Width := round(tab_dados.ClientWidth * 0.45);
|
|
|
|
lbl_num.Top := 129;
|
|
lbl_num.Left := dbedt_razao.Left + dbedt_razao.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
dbedt_num.Top := 144;
|
|
dbedt_num.Left := dbedt_razao.Left + dbedt_razao.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
|
|
lbl_compl.Top := 129;
|
|
lbl_compl.Left := lbl_uf.Left + dblucmbox_uf.Width +
|
|
round(tab_dados.ClientWidth * 0.03);
|
|
dbedt_compl.Top := 144;
|
|
dbedt_compl.Left := lbl_uf.Left + dblucmbox_uf.Width +
|
|
round(tab_dados.ClientWidth * 0.03);
|
|
|
|
lbl_tel.Top := 171;
|
|
lbl_tel.Left := 3;
|
|
dbedt_tel.Top := 186;
|
|
dbedt_tel.Left := 3;
|
|
// dbedt_tel.Width := round(tab_dados.ClientWidth*0.2);
|
|
|
|
dbedt_email.Top := 186;
|
|
dbedt_email.Width := round(tab_dados.ClientWidth * 0.23);
|
|
dbedt_email.Left := dbedt_end.Left + dbedt_end.Width - dbedt_email.Width;
|
|
lbl_email.Top := 171;
|
|
lbl_email.Left := dbedt_email.Left;
|
|
|
|
lbl_website.Top := 213;
|
|
lbl_website.Left := 3;
|
|
dbedt_website.Top := 228;
|
|
dbedt_website.Left := 3;
|
|
dbedt_website.Width := round(tab_dados.ClientWidth * 0.45);
|
|
|
|
dbmemo_obs.Height := round(tab_dados.ClientHeight * 0.5);
|
|
dbmemo_obs.Top := tab_dados.ClientHeight - dbmemo_obs.Height;
|
|
dbmemo_obs.Width := round(tab_dados.ClientWidth * 0.45);
|
|
|
|
btn_clearmemo.Left := dbmemo_obs.Left + dbmemo_obs.Width -
|
|
btn_clearmemo.Width;
|
|
btn_clearmemo.Top := dbmemo_obs.Top - btn_clearmemo.Height - 3;
|
|
|
|
lbl_obs.Top := dbmemo_obs.Top - lbl_obs.Height - 3;
|
|
|
|
grpb_logo.Left := tab_dados.ClientWidth - grpb_logo.Width -
|
|
round(tab_dados.ClientHeight * 0.25);
|
|
grpb_logo.Top := tab_dados.ClientHeight - grpb_logo.Height - 30;
|
|
|
|
btn_criarcad.Top := dbedt_website.Top - 2;
|
|
btn_removcad.Top := btn_criarcad.Top;
|
|
btn_criarcad.Left := dbedt_razao.Left + dbedt_razao.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
btn_removcad.Left := btn_criarcad.Left + btn_criarcad.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
btn_altcad.Top := btn_criarcad.Top;
|
|
btn_altcad.Left := btn_removcad.Left + btn_removcad.Width +
|
|
round(tab_dados.ClientWidth * 0.02);
|
|
|
|
end;
|
|
|
|
procedure TfrmEmpresas.spdbtn_clearimgClick(Sender: TObject);
|
|
begin
|
|
img_logo.Picture := nil;
|
|
end;
|
|
|
|
procedure TfrmEmpresas.spdbtn_loadimgClick(Sender: TObject);
|
|
begin
|
|
if OpenPictureDialog1.Execute then
|
|
begin
|
|
if FileExists(OpenPictureDialog1.FileName) then
|
|
begin
|
|
CreateDir(GetCurrentDir + '\LOGOMARCAS');
|
|
img_logo.Picture.LoadFromFile(OpenPictureDialog1.FileName);
|
|
img_path := GetCurrentDir + '\LOGOMARCAS\' +
|
|
udtmSystem.dtmSystem.tblEmpresaTX_NOME.AsString +
|
|
ExtractFileExt(OpenPictureDialog1.FileName);
|
|
img_logo.Picture.SaveToFile(img_path);
|
|
img_logo.Visible := true;
|
|
mudou_img := true;
|
|
end
|
|
else
|
|
begin
|
|
raise Exception.Create('Arquivo não existe.');
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end.
|