Програмне забезпеченння для адміністрування комп'ютерного клубу, страница 17

end.

Лист

 

докум.

 

Дата

 

Изм.

 
Подпись: Инв.№ дубл.Подпись: Подп. и датаПодпись: Подп. и датаПодпись: Инв.№ подл.

Подп.

 

Лист

 
Подпись: Взам. инв. №

ИАЛЦ.467.449.001.ПЗ

 

unit LogFunc;

interface

uses SysUtils, Common;

type

strlog=string[253];

writelogrecord=record

//These fields are mandatory and

//they are saved

hours,mins:word;

logtype,comp,card,info,comments:string;

forhours,formins:word;

forevertime:boolean;

todate:tdatetime;

cash:integer;

//Additional fields, not saved, but may

//influence mandatory fields

add1,add2,add3,add4:string;

end;

readlogrecord=record

time,logtype,comp,card,info,cash,comments:strlog

end;

packedlogrec=record

time,logtype,card,comp,info,cash,comments:strlog

end;

const

LOG_NEW='Оплачено время';

LOG_ADD='Доплачено время';

LOG_PAYNIGHT='Оплачена ночь';

LOG_ADDPAYNIGHT='Доплачена ночь';

LOG_DELNIGHT='Удалена ночь';

LOG_FOREVERTIME='Бесконечное время';

LOG_SUBTRACT='Отнято время';

LOG_SUBTRACTALL='Отнято все время';

LOG_MOVEDTO='На компьютер пересажен';

LOG_INFO='Информация';

LOG_GETFROMCASH='ВЗЯТЫ ДЕНЬГИ ИЗ КАССЫ';

LOG_PUTTOCASH='Добавлены деньги в кассу';

LOG_LEFTINCASH='ОСТАТОК В КАССЕ';

LOG_CHANGEDCARDNAME='Изменено название карточки';

LOG_ADDTIMETOCARD='Добавлено время на карточку';

LOG_DELTIMEFROMCARD='Отнято время с карточки';

LOG_DELETECARD='Удалена карточка';

var

flog:file of strlog;

//Misc utilities

procedure GetCurrentHourMin(var h,m:word);

//Log utilities

procedure AddToLog(logrec:writelogrecord);

procedure AddToLogForDate(logrec:writelogrecord; whatdate:tdatetime);

procedure GetFromLog(var logrec:readlogrecord);

function GetLogFileName(dt:tdatetime):string;

function GetCashFileName:string;

function GetCash:integer;

implementation

uses MainUnit;

const

SKIP_CASH=324;

procedure GetCurrentHourMin;

var s,ms:word;

begin

decodetime(time,h,m,s,ms)

end;

//Returns filename of log

function GetLogFileName;

var y,m,d:word;

begin

decodedate(dt,y,m,d);

result:=path+'log\log'+inttostr(d)+'x'+inttostr(m)+'x'+inttostr(y)+'.zlg'

end;

//Returns a filename of sum payed

function GetCashFileName;

begin

result:=path+'log\index.zlg'

end;

//Adds a sum payed to cash

procedure AddCash(sum:integer);

var filename:string;

rnd,already:integer;

fd:file of integer;

i:word;

begin

filename:=getcashfilename;

assign(fd,filename);

if not fileexists(filename) then begin

already:=0;

rewrite(fd)

end

else begin

reset(fd);

seek(fd,SKIP_CASH);

read(fd,already)

end;

sum:=sum+already;

for i:=1 to 1024 do begin

rnd:=random(24000000);

write(fd,rnd)

end;

seek(fd,SKIP_CASH);

write(fd,sum);

close(fd)

end;

//Returns a sum payed in cash

function GetCash;

var filename:string;

fd:file of integer;

begin

filename:=getcashfilename;

assign(fd,filename);

if not fileexists(filename) then result:=0

else begin

reset(fd);

seek(fd,SKIP_CASH);

read(fd,result);

close(fd)

end

end;

//Decodes datetime to string

function GetDecodedDateTime(dt:tdatetime):string;

begin

result:=gettimeordate(dt)

end;

//Adds data to whole log system

procedure AddToLog;

begin

AddToLogForDate(logrec,date)


end;

function AsNew(logrec:writelogrecord):strlog;

begin

result:='Поставлено время '+inttostr(logrec.forhours)+':'+zerostring(logrec.formins)+ ' до '+getdecodeddatetime(logrec.todate)

end;

function AsAdd(logrec:writelogrecord):strlog;

begin

result:='Добавлено время '+inttostr(logrec.forhours)+':'+zerostring(logrec.formins)+ ', новое время до '+getdecodeddatetime(logrec.todate)

end;

function AsForeverTime(logrec:writelogrecord):strlog;

begin

result:='Поставлено бесконечное время'