📄 tcommsenddatathread_unit.pas
字号:
/////////////////////////
end
else
begin
IsOperCard :=false;
iStatus :=0;
end;
end;
///不是操作员卡判断是否开机 //没开机则不用查询
if (iStatus =0) then
begin
if (not PayApp[NowPayNo].Open_Pay) then
begin
iStatus :=$80;
AccountOpen:=false;
end
else
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 '+
' FROM PERSON_ACCOUNT INNER JOIN '+
' DEGREETYPE ON '+
' PERSON_ACCOUNT.PA_DEGREEID = DEGREETYPE.DEGREE_ID'+
' WHERE (PERSON_ACCOUNT.PA_CARDNO = ' + IntToStr(iAccount) + ') 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;
//iALMoney := FieldByName('Pass_Limit').AsInteger;
//iMFMoney := FieldByName('MF_MONEY').AsInteger;
//iChange := FieldbyName('ChangeScale').AsInteger;
end;
except
end;
end;
end;
{if ((not PayApp[NowPayNo].Open_Pay) and (PayApp[NowPayNo].User_CardNo <>CardNo))
or (PayApp[NowPayNo].User_CardNo = CardNo) then
begin
iStatus :=$80;
AccountOpen:=false;
end}
end;
end;
3,4: 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, '+
' CTMachineTAB.CT_GroupID, DEGREETYPE.DEGREE_NAME, '+
' PERSON_ACCOUNT.PA_DEPTID, DEPARTMENT.DEPT_NAME, '+
' PERSON_ACCOUNT.PA_NAME '+
' FROM PERSON_ACCOUNT INNER JOIN '+
' DEGREETYPE ON '+
' PERSON_ACCOUNT.PA_DEGREEID = DEGREETYPE.DEGREE_ID INNER JOIN '+
' AccDoorTAB ON '+
' PERSON_ACCOUNT.PA_ACCOUNT = AccDoorTAB.Account_No INNER JOIN '+
' CTMachineTAB ON AccDoorTAB.Path_Num = CTMachineTAB.CT_TCPathNUM AND '+
' AccDoorTAB.Mac_Num = CTMachineTAB.CT_MachineNUM AND '+
' AccDoorTAB.Command_Num = CTMachineTAB.CT_CommandNum INNER JOIN '+
' DEPARTMENT ON PERSON_ACCOUNT.PA_DEPTID = DEPARTMENT.DEPT_ID '+
' WHERE (AccDoorTAB.Command_Num = 1) AND (AccDoorTAB.Path_Num = '+IntToStr(CommNetDriver.GDataBuf[iHead+2])+') AND '+
' (AccDoorTAB.Mac_Num = '+IntToStr(CommNetDriver.GDataBuf[iHead+3])+') '+
' And (PERSON_ACCOUNT.PA_CARDNO = ' + IntToStr(iAccount) + ') 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;
//iALMoney := FieldByName('Pass_Limit').AsInteger;
//iMFMoney := FieldByName('MF_MONEY').AsInteger;
//iChange := FieldbyName('ChangeScale').AsInteger;
iOAGroupID :=FieldbyName('CT_GroupID').AsInteger;
idegname :=FieldbyName('DEGREE_NAME').AsString;
idepid :=FieldbyName('PA_DEPTID').AsInteger;
idepname :=FieldbyName('DEPT_NAME').AsString;
ipername :=FieldbyName('PA_NAME').AsString;
Close;
Sql.Text:=' begin tran '+ {插入原始表}
' INSERT INTO OrigAttDataTAB '+
' (Account_AttID, Account_DeptName, Account_DeptID, Account_Name, Account_Degree, '+
' PushCard_Time, OA_TPathNum, OA_MachineNum, OA_CommandNum, OA_GroupID, '+
' Operator_Name, Operator_ID, ReCord_time, OriApp_type) '+
' VALUES ('+IntToStr(iAccount)+','''+idepname+''','+IntToStr(idepid)+', '''+ipername+''', '''+idegname+''', getdate(),'+
' '+IntToStr(CommNetDriver.GDataBuf[iHead+2])+', '+IntToStr(CommNetDriver.GDataBuf[iHead+3])+','+
' 1, '+IntToStr(iOAGroupID)+', '''+Username+''', '+IntToStr(UserID)+', '+
' getdate(),'+IntToStr(Postype - 3)+') '+
' commit tran';
try
ExecSql;
except
end;
end;
except
end;
end;
End;
try
if AccountOpen then
begin
ZeroMemory(@bSendDataBuf,1024);
bSendDataBuf[1] := STARSIGN;
bSendDataBuf[2] := $80;
bSendDataBuf[3] := CommNetDriver.GDataBuf[iHead+2];
bSendDataBuf[4] := CommNetDriver.GDataBuf[iHead+3];
/// //////小组费率/////
if (PosType=0) or (PosType=5) or (PosType=6) or (PosType=7) then
begin
with GLBDataModule.ADOQuery2 do
begin
Close;
Sql.Text :='SELECT SALEGROUPTAB.Group_Rate '+
' FROM SALEGROUPTAB INNER JOIN '+
' CTMachineTAB ON SALEGROUPTAB.Group_ID = CTMachineTAB.CT_GroupID '+
' WHERE (CTMachineTAB.CT_CommandNum = 1) AND '+
' (CTMachineTAB.CT_TCPathNUM = '+IntToStr(CommNetDriver.GDataBuf[iHead+2])+')'+
' AND (CTMachineTAB.CT_MachineNUM= '+IntToStr(CommNetDriver.GDataBuf[iHead+3])+') '+
' UPDATE PERSON_ACCOUNT SET PA_IFOPEN= ''1'' '+
' WHERE (PA_ACCOUNT='+IntToStr(iAccount)+') ';
try
Open;
iRate :=0;
if RecordCount >0 then
begin
iRate :=Round(FieldbyName('Group_Rate').AsFloat*iChange);
end;
except
end;
end;
end;
CopyMemory(@bSendDataBuf[29],@iAccount,4);
bSendDataBuf[5] := bSendDataBuf[32];
bSendDataBuf[6] := bSendDataBuf[31];
bSendDataBuf[7] := bSendDataBuf[30];
bSendDataBuf[8] := bSendDataBuf[29];
CopyMemory(@bSendDataBuf[29],@iALMoney,2);
bSendDataBuf[9] := bSendDataBuf[30];
bSendDataBuf[10]:= bSendDataBuf[29];
CopyMemory(@bSendDataBuf[29],@iAccountPwd,2);
bSendDataBuf[11]:= bSendDataBuf[30];
bSendDataBuf[12]:= bSendDataBuf[29];
{begin 修改状态位,状态位低半节金额的高位 }
bSendDataBuf[13] := iStatus;
bSendDataBuf[14] := 0;
bSendDataBuf[15] := 0;
CopyMemory(@bSendDataBuf[29],@iAMoney,3);
bSendDataBuf[16] := bSendDataBuf[30];
bSendDataBuf[17] := bSendDataBuf[29];
bSendDataBuf[13] := iStatus Or bSendDataBuf[31];
{end 修改状态位,状态位低半节金额的高位 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -