📄 tcommsenddatathread_unit.pas
字号:
if iIfopen=1 then
AccountOpen :=false;
if iChange=0 then
AccountOpen :=true;
end;
except
end;
end;
7: begin //机房计费
SQL.Text :=' SELECT PERSON_ACCOUNT.PA_ACCOUNT, PERSON_ACCOUNT.PA_PWD, '+
' PERSON_ACCOUNT.PA_STATUS, PERSON_ACCOUNT.PA_IFOPEN, '+
' PERSON_ACCOUNT.PA_MONEY, '+
' DEGREETYPE.ChangeScale, ToTalDay_Limit, Pass_Limit '+
' FROM PERSON_ACCOUNT INNER JOIN '+
' DEGREETYPE ON '+
' PERSON_ACCOUNT.PA_DEGREEID = DEGREETYPE.DEGREE_ID'+
' WHERE (PERSON_ACCOUNT.PA_CARDNO = ' + IntToStr(iAccount) + ') AND '+
' (PERSON_ACCOUNT.PA_MONEY> 0) and (PA_STATUS=1)';// AND '+
//' (PERSON_ACCOUNT.PA_IFOPEN = ''0'')';
try
Open;
if RecordCount >0 then
begin
AccountOpen :=true;
iAccount := FieldByName('PA_ACCOUNT').AsInteger;
iAccountPwd := FieldByName('PA_PWD').AsInteger;
iStatus := FieldByName('PA_STATUS').AsInteger-1;
//iIfOpen := FieldByName('PA_IFOPEN').AsInteger;
iAMoney := FieldByName('PA_MONEY').AsInteger;
//iALMoney := FieldByName('Pass_Limit').AsInteger;
//iMFMoney := FieldByName('MF_MONEY').AsInteger;
iChange := FieldbyName('ChangeScale').AsInteger;
end;
except
end;
end;
1: begin //售饭,消费
Controltype :=0;
SendStatus :=false;
SQL.Text :=' SELECT PERSON_ACCOUNT.PA_ACCOUNT, PERSON_ACCOUNT.PA_PWD, '+
' PERSON_ACCOUNT.PA_STATUS,PERSON_ACCOUNT.PA_IFOPEN, '+
' PERSON_ACCOUNT.PA_MONEY, Use_PassWord, '+
' DEGREETYPE.ChangeScale, ToTalDay_Limit, Pass_Limit,'+
' PA_OverMoney ,PA_MFCount,DEGREETYPE.DEGREE_NAME,PA_DEPTID, '+
' PA_Name, ISNULL(PA_Sub+PA_RBack,0) As SendStaMoney '+
' FROM PERSON_ACCOUNT INNER JOIN '+
' DEGREETYPE ON '+
' PERSON_ACCOUNT.PA_DEGREEID = DEGREETYPE.DEGREE_ID '+
' WHERE (PERSON_ACCOUNT.PA_CARDNO = ' + IntToStr(iAccount) + ') AND '+
' (PERSON_ACCOUNT.PA_MONEY >= 0) and (PA_STATUS=1) ';
try
Open;
if RecordCount >0 then
begin
AccountOpen :=true;
iAccount := FieldByName('PA_ACCOUNT').AsInteger;
iAccountPwd := FieldByName('PA_PWD').AsInteger;
iStatus := FieldByName('PA_STATUS').AsInteger-1;
//iIfOpen := FieldByName('PA_IFOPEN').AsInteger;
iAMoney := FieldByName('PA_MONEY').AsInteger;
idepid :=FieldbyName('PA_DEPTID').AsInteger;
idegname :=FieldbyName('DEGREE_NAME').AsString;
ipername :=FieldbyName('PA_NAME').AsString;
iSendStaMoney :=FieldbyName('SendStaMoney').AsInteger;
//////////免费次数begin/////////////////////////
if Controltype =0 then
begin
if MFControl and ( FieldByName('PA_MFCount').AsInteger>=1) then
begin
iAMoney := 99999; //免费用户发99999
Controltype :=1;
///插入免费、修改账户免费次数表begin////
Close;
Sql.Text :='UPDATE PERSON_ACCOUNT SET PA_MFCount=PA_MFCount-1 '+
' WHERE PA_ACCOUNT='+IntToStr(iAccount)+' '+
' INSERT INTO MFRecordTAB '+
' (Account_No, Account_Name, Account_DeptID, Account_Degree, Record_Time, '+
' Operator_Name, Operator_ID, TPathNum, MachineNum, CommandNum) '+
' VALUES ('+IntToStr(iAccount)+', '''+ipername+''', '+IntToStr(idepid)+', '+
' '''+idegname+''', '''+FormatDateTime('yyyy-mm-dd hh:nn:ss',now)+''','+
' '''+UserName+''', '+IntToStr(UserID)+', '+IntToStr(CommNetDriver.GDataBuf[iHead+2])+', '+
' '+IntToStr(CommNetDriver.GDataBuf[iHead+3])+',1)';
ExecSql;
///插入免费表end/////
end;
end;
//////////免费次数end/////////////////////////
//////////透支限额begin/////////////////////////
if Controltype =0 then
begin
if (iAMoney =0) and (FieldByName('PA_OverMoney').AsInteger>0) then
begin
iAMoney := FieldByName('PA_OverMoney').AsInteger; //免费用户发99999
Controltype :=1;
///插入透支表begin////
///插入透支表end/////
end;
end;
//////////透支限额end/////////////////////////
/////////消费限额处理begin/////////////
//if UsePassLimit=1 then
if Controltype=0 then
begin
if FieldByName('Use_PassWord').AsInteger=1 then
begin ///日累计限额和当餐累计限额 比较 那个小用那个
Controltype :=3;
if FieldByName('Pass_Limit').AsInteger<=FieldByName('ToTalDay_Limit').AsInteger then
begin
iALMoney := FieldByName('Pass_Limit').AsInteger;
end
else
begin
iALMoney := FieldByName('ToTalDay_Limit').AsInteger;
end;
if iAlMoney<=0 then //限额小于0 赋值为0
begin
iAlMoney :=0;
end;
end
else
begin
iALMoney :=$8000; ///8000H不使用限额
end;
end;
{else
begin
iALMoney :=$8000; ///8000H不使用限额
end; }
//////////消费限额处理end ////////////////
///////发放补助、回绕//////////////////////////////////////
if iSendStaMoney > 0 then
begin
iStatus :=$40; //高位设置成$40
iAMoney :=iSendStaMoney;
SendStatus :=true;
end;
end;
except
end;
end;
2: begin //出纳
//////判断出纳机是否打开 //没打开 AccountOpen:=false;
////是操作员卡则不查询账户
begin
for OperCount :=1 to OperTotalCount do
begin
if (CardNo = OperApp[OperCount].OperCard) then //Open 出纳机
begin
iStatus :=$80;
AccountOpen:=false;
///在此查询当前操作员序号
IsOperCard :=true;
NowOper := OperCount;
///////{drc}/////////////////
if In_Servpay then
begin
if AdminCardNo <> CardNo then
begin
iStatus :=$80;
AccountOpen:=false;
///在此查询当前操作员序号
IsOperCard :=false;
NowOper := 0;
end;
end;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -