Диплом: Автоматизация учета кредитных операций ломбарда "ООО ЗОЛОТОЙ ВЕК"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
112
end;
var
frmAgreement: TfrmAgreement;
implementation
uses DataBase;
{$R *.dfm}
procedure TfrmAgreement.FormShow(Sender: TObject);
begin
DataInfo.tAgreement.Open;
if frmAgreement.Tag=1 then
begin
DataInfo.tAgreement.Insert;
DataInfo.tAgreement.FieldByName('StateId').AsInteger:=1;
vgAgreementStateId.Properties.EditProperties.ReadOnly:=True;
end
else
begin
DataInfo.tAgreement.Locate('Id',DataInfo.qListAgreements.FieldByName('Id').asInteg
er,[]);
DataInfo.tAgreement.Edit;
vgAgreementStateId.Properties.EditProperties.ReadOnly:=False;
end;
end;
procedure TfrmAgreement.btnNoClick(Sender: TObject);
113
begin
DataInfo.tAgreement.Cancel;
frmAgreement.Close;
end;
procedure TfrmAgreement.btnYesClick(Sender: TObject);
begin
if DataInfo.tAgreement.FieldByName('DateAgreement').isNull then
begin
MessageDlg('Укажите название работ!',mtError,[mbOk],0);
Exit
end;
if DataInfo.tAgreement.FieldByName('Term').isNull then
begin
MessageDlg('Укажите срок договора!',mtError,[mbOk],0);
Exit
end;
if DataInfo.tAgreement.FieldByName('ClientId').isNull then
begin
MessageDlg('Укажите клиента!',mtError,[mbOk],0);
Exit
end;
DataInfo.tAgreement.FieldByName('UserId').AsInteger:=UserId;
DataInfo.tAgreement.Post;
DataInfo.qListAgreements.Close;
DataInfo.qListAgreements.Open;
frmAgreement.Close;
end;
end.
unit Detail;
114
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls,
cxLookAndFeels,
cxLookAndFeelPainters, cxStyles, dxSkinsCore, dxSkinsDefaultPainters,
ExcelXP,
dxSkinscxPCPainter, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit,
cxNavigator, Data.DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomView,
cxGrid,
Vcl.ComCtrls, Vcl.ToolWin, cxSplitter, cxDBLookupComboBox, ShellAPI;
type
TfrmDetail = class(TForm)
cxSplitter1: TcxSplitter;
pcValuation: TPageControl;
tsValuations: TTabSheet;
tbRequests: TToolBar;
btnNewValuation: TToolButton;
btnEditValuation: TToolButton;
btnDelValuation: TToolButton;
pcOperation: TPageControl;
tsOperation: TTabSheet;
ToolBar1: TToolBar;
btnNewOperation: TToolButton;
btnEditOperation: TToolButton;
btnDelOperation: TToolButton;
115
ToolButton6: TToolButton;
btnPrintOper: TToolButton;
grdValuations: TcxGrid;
tblListValuations: TcxGridDBTableView;
tblListValuationsValueName: TcxGridDBColumn;
tblListValuationsTypeId: TcxGridDBColumn;
tblListValuationsTotalCost: TcxGridDBColumn;
tblListValuationsCreditValue: TcxGridDBColumn;
tblListValuationsPayValue: TcxGridDBColumn;
tblListValuationsToPayValue: TcxGridDBColumn;
tblListValuationsPercValue: TcxGridDBColumn;
grdValuationsLevel1: TcxGridLevel;
grdOperations: TcxGrid;
tblOperations: TcxGridDBTableView;
tblOperationsDateOper: TcxGridDBColumn;
tblOperationsTypeId: TcxGridDBColumn;
tblOperationsSuma: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
ToolButton1: TToolButton;
btnClose: TToolButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure btnPrintOperClick(Sender: TObject);
procedure btnNewValuationClick(Sender: TObject);
procedure btnEditValuationClick(Sender: TObject);
procedure btnDelValuationClick(Sender: TObject);
procedure btnDelOperationClick(Sender: TObject);
procedure btnNewOperationClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure btnEditOperationClick(Sender: TObject);
private
116
{ Private declarations }
public
{ Public declarations }
end;
type
TExecState = (esNormal, esMinimized, esMaximized);
const
xlLCID = LOCALE_USER_DEFAULT;
ExcelSign =
chr(208)+chr(207)+chr(17)+chr(224)+chr(161)+chr(177)+chr(26)+chr(225);
var
frmDetail: TfrmDetail;
ExcelApp: ExcelXP.TExcelApplication;
IWorkbook: ExcelXP._Workbook;
IWorksheets: ExcelXP.Sheets;
ISheet: ExcelXP._Worksheet;
Result, Row, Col, RowCount, ColCount: Integer;
i: Integer;
fd, fn: PChar;
NumEd: array[1..19] of string = ('один ', 'два ', 'три ', 'четыре ', 'пять ', 'шесть
', 'семь ', 'восемь ', 'девять ', 'десять ', 'одиннадцать ', 'двенадцать ', 'тринадцать ',
'четырнадцать ', 'пятнадцать ', 'шестнадцать ', 'семнадцать ', 'восемнадцать ',
'девятнадцать ');
NumEd1: array[1..2] of string = ('одна ', 'две ');
NumDec: array[2..9] of string = ('двадцать ', 'тридцать ', 'сорок ', 'пятьдесят ',
'шестьдесят ', 'семьдесят ', 'восемьдесят ', 'девяносто ');
NumSot: array[1..9] of string = ('сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот
', 'шестьсот ', 'семьсот ', 'восемьсот ', 'девятьсот ');
117
Xlion0: array[1..3] of string = ('тысяч ', 'миллионов ', 'миллиардов ');
Xlion1: array[1..3] of string = ('тысяча ', 'миллион ', 'миллиард ');
Xlion2: array[1..3] of string = ('тысячи ', 'миллиона ', 'миллиарда ');
function MoneyToString(Money: Double): string;
function FileExecute(const FileName, Params, StartDir: string;
InitialState: TExecState): THandle;
implementation
{$R *.dfm}
uses DataBase, Main, Valuation, Operation;
function MoneyToString(Money: Double): string;
var
Money3, MoneyI, MoneyK, Digit, LastDigit, T: Integer;
Sto, Kop: string;
begin
Result := '';
MoneyI := Trunc(Money);
MoneyK := Round((Money - MoneyI) * 100);
T := 0;
while MoneyI > 0 do begin
Money3 := MoneyI mod 1000;
MoneyI := MoneyI div 1000;
Sto := '';
if (Money3 mod 100) < 20 then begin
LastDigit := Money3 mod 20;
if LastDigit > 0 then
118
if (T = 1) and (LastDigit in [1..2]) then Sto := NumEd1[LastDigit]
else Sto := NumEd[LastDigit];
Money3 := Money3 div 100;
end else begin
LastDigit := Money3 mod 10;
if LastDigit > 0 then
if (T = 1) and (LastDigit in [1..2]) then Sto := NumEd1[LastDigit]
else Sto := NumEd[LastDigit];
Money3 := Money3 div 10;
Digit := Money3 mod 10;
if Digit > 0 then Sto := NumDec[Digit] + Sto;
Money3 := Money3 div 10;
end;
if Money3 > 0 then Sto := NumSot[Money3] + Sto;
if T > 0 then begin
if LastDigit = 1 then Sto := Sto + Xlion1[T]
else if LastDigit in [2..4] then Sto := Sto + Xlion2[T]
else Sto := Sto + Xlion0[T];
end;
T := T + 1;
Result := Sto + Result;
end;
Kop := IntToStr(MoneyK mod 10);
MoneyK := MoneyK div 10;
Kop := IntToStr(MoneyK) + Kop;
Result := Result + 'руб. ' + Kop + ' коп.';
end;
function FileExecute(const FileName, Params, StartDir: string;
InitialState: TExecState): THandle;
{$IFDEF WIN32}
119
begin
Result := ShellExecute(Application.Handle, nil, PChar(FileName),
PChar(Params), PChar(StartDir), 0);
end;
{$ELSE}
var
cFileName, cParams, cPath: array [0..80] of Char;
begin
Result := ShellExecute(Application.Handle, nil, StrPCopy(cFileName,
FileName), StrPCopy(cParams, Params), StrPCopy(cPath, StartDir),
ShowCommands[InitialState]);
end;
{$ENDIF}
procedure TfrmDetail.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataInfo.qListTypeValue.Close;
DataInfo.qListTypeOperation.Close;
DataInfo.qListValuations.Close;
DataInfo.qListOperations.Close;
end;
procedure TfrmDetail.FormShow(Sender: TObject);
begin
DataInfo.qListTypeValue.Open;
DataInfo.qListTypeOperation.Open;
DataInfo.qListValuations.Parameters.ParamValues['AgreementId']:=DataInfo.qListAg
reements.FieldByName('Id').asInteger;
DataInfo.qListValuations.Open;
end;
120
procedure TfrmDetail.btnCloseClick(Sender: TObject);
begin
frmDetail.Close;
end;
procedure TfrmDetail.btnDelOperationClick(Sender: TObject);
begin
if DataInfo.qListOperations.RecordCount=0 then
begin
MessageDlg('Список операций пустой!',mtWarning,[mbOk],0);
Exit
end;
if MessageDlg('Вы действительно хотите удалить операцию по залогу
'+DataInfo.qListValuations.FieldByName('ValueName').asString+'?',mtConfirmation,[
mbYes, mbNo],0)=mrNo then Exit;
DataInfo.qQuery.Close;
DataInfo.qQuery.SQL.Clear;
DataInfo.qQuery.SQL.Add('DELETE FROM Operations WHERE
Id='+DataInfo.qListOperations.FieldByName('Id').asString);
DataInfo.qQuery.ExecSQL;
DataInfo.qListOperations.Close;
DataInfo.qListOperations.Open;
end;
procedure TfrmDetail.btnDelValuationClick(Sender: TObject);
begin
if DataInfo.qListValuations.RecordCount=0 then
begin
MessageDlg('Список залогов пустой!',mtWarning,[mbOk],0);
Exit
121
end;
if DataInfo.qListOperations.RecordCount<>0 then
begin
MessageDlg('Есть операции по данному залогу! Удаление
невозможно',mtWarning,[mbOk],0);
Exit
end;
if MessageDlg('Вы действительно хотите удалить залог
'+DataInfo.qListValuations.FieldByName('ValueName').asString+'?',mtConfirmation,[
mbYes, mbNo],0)=mrNo then Exit;
DataInfo.qQuery.Close;
DataInfo.qQuery.SQL.Clear;
DataInfo.qQuery.SQL.Add('DELETE FROM Valuations WHERE
Id='+DataInfo.qListValuations.FieldByName('Id').asString);
DataInfo.qQuery.ExecSQL;
DataInfo.qListValuations.Close;
DataInfo.qListValuations.Open;
end;
procedure TfrmDetail.btnEditOperationClick(Sender: TObject);
begin
if DataInfo.qListOperations.RecordCount=0 then
begin
MessageDlg('Список операций пустой!',mtWarning,[mbOk],0);
Exit
end;
frmOperation.Tag:=0;
frmOperation.ShowModal;
end;
procedure TfrmDetail.btnEditValuationClick(Sender: TObject);

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)