end.
|
|
|
|
|
|
|
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:='Поставлено бесконечное время'
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.