📄 parchives.pas
字号:
unit Parchives;
interface
uses SysUtils,Classes,adodb;
//-------------基本功能
function create_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function modify_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function delete_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
//-----离职操作
function dimission_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function restore_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function delete_dimission(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
//-------------查询
procedure Query_Parchivesinfo(params:WideString;out querys:tadoquery);
function check_authority_Parchives(funid,authority:string):boolean;
implementation
uses shareunit;
//员工管理 16--25
function check_authority_Parchives(funid,authority:string):boolean;
begin
case strtointdef(funid,public_unkonw) of
public_unkonw: result:=true;
public_add: result:=authority[11]='1';
public_modify: result:=authority[12]='1';
public_del: result:=authority[13]='1';
public_copy: result:=authority[14]='1';
public_add_temp: result:=authority[11]='1';
public_del_temp: result:=authority[13]='1';
public_list_ex03: result:=authority[15]='1';
public_list_ex02: result:=authority[15]='1';
public_list_ex01: result:=authority[15]='1';
public_infor: result:=authority[15]='1';
else result:=true;
end;
end;
//-------------基本功能
function create_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录已经存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;
querys.Close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.open;
if querys['tmp'] = 0 then
try
adoconn.Connected:=true;
adoconn.BeginTrans;
querys.close;
querys.sql.clear;
querys.sql.add('insert into P_archives(personnel_id,name,tel,idcard,area,remark,sex,school,marriage,dept,work_type,start_date,birthday)');
querys.sql.add('values(:a1,:a2,:a3,:a4,:a5,:a7,:a8,:a9,:a10,:a11,:a12,:a13,:a14)');
querys.parameters.parambyname('a1').value := getparamitem(params,'tuid');
querys.parameters.parambyname('a2').value := getparamitem(params,'tname');
querys.parameters.parambyname('a3').value := getparamitem(params,'ttel');
querys.parameters.parambyname('a4').value := getparamitem(params,'tidcard');
querys.parameters.parambyname('a5').value := getparamitem(params,'tarea');
querys.parameters.parambyname('a7').value := getparamitem(params,'tremark');
querys.parameters.parambyname('a8').value := getparamitem(params,'tsex');
querys.parameters.parambyname('a9').value := getparamitem(params,'tschool');
querys.parameters.parambyname('a10').value := getparamitem(params,'tmarriage');
querys.parameters.parambyname('a11').value := getparamitem(params,'tdept');
querys.parameters.parambyname('a12').value := getparamitem(params,'twork_type');
querys.parameters.parambyname('a13').value := getparamitem(params,'tstart_date');
querys.parameters.parambyname('a14').value := getparamitem(params,'tbirthday');;
querys.execsql;
adoconn.CommitTrans;
result:=true;
except
adoconn.RollbackTrans;
outstr:='增加员工时更新错误!';
end;
finally
querys.close;
freeandnil(querys);
end;
end;
function modify_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录不存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;
querys.Close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.open;
if querys['tmp'] = 1 then
try
adoconn.Connected:=true;
adoconn.BeginTrans;
querys.close;
querys.sql.clear;
querys.sql.add('UPDATE wage_welfare as a INNER JOIN P_archives as b ON (a.adjust_date = b.start_date) AND (a.personnel_id = b.personnel_id)');
querys.sql.add('set a.base_wage=:a2,a.allowance=:a3,a.overtime_rate=:a5,a.dine_charge=:a6,a.dine_allow=:a7,a.adjust_remark=:a8,');
querys.sql.add('a.work_sort=:a9,a.allow_sort=:a10,a.overtime_sort=:a11,a.insurance_sort=:a12,a.dine_sort=:a13,a.furlough=:a14,a.adjust_date=:a15 where b.personnel_id=:a1');
querys.parameters.parambyname('a1').value := getparamitem(params,'tuid');
querys.parameters.parambyname('a2').value := getparamitem(params,'tbase_wage');
querys.parameters.parambyname('a3').value := getparamitem(params,'tallowance');
querys.parameters.parambyname('a5').value := getparamitem(params,'tovertime_rate');
querys.parameters.parambyname('a6').value := getparamitem(params,'tdine_charge');
querys.parameters.parambyname('a7').value := getparamitem(params,'tdine_allow');
querys.parameters.parambyname('a8').value := getparamitem(params,'tadjust_remark');
querys.parameters.parambyname('a9').value := getparamitem(params,'twork_sort');
querys.parameters.parambyname('a10').value := getparamitem(params,'tallow_sort');
querys.parameters.parambyname('a11').value := getparamitem(params,'tovertime_sort');
querys.parameters.parambyname('a12').value := getparamitem(params,'tinsurance_sort');
querys.parameters.parambyname('a13').value := getparamitem(params,'tdine_sort');
querys.parameters.parambyname('a14').value := getparamitem(params,'tfurlough');
querys.parameters.parambyname('a15').value := getparamitem(params,'tstart_date');
querys.execsql;
adoconn.CommitTrans;
result:=true;
except
adoconn.RollbackTrans;
outstr:='修改员工资料时更新错误!';
end;
finally
querys.close;
freeandnil(querys);
end;
end;
function delete_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录不存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;
querys.Close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.open;
if querys['tmp'] =1 then
try
adoconn.Connected:=true;
adoconn.BeginTrans;
querys.close;
querys.sql.clear;
querys.sql.add('delete from P_archives where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.execsql;
querys.close;
querys.sql.clear;
querys.sql.add('delete from event where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.execsql;
adoconn.CommitTrans;
result:=true;
except
adoconn.RollbackTrans;
outstr:='删除员工资料时更新错误!';
end;
finally
querys.close;
freeandnil(querys);
end;
end;
//离职管理..
function dimission_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录不存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;
querys.Close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.open;
if querys['tmp'] =1 then
try
adoconn.Connected:=true;
adoconn.BeginTrans;
querys.close;
querys.sql.clear;
querys.sql.add('update P_archives set dimission=1,over_date=:d1,remark=:ar');
querys.sql.add('where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.parameters.parambyname('ar').value:=getparamitem(params,'tmemo');
querys.parameters.parambyname('d1').value:=getparamitem(params,'tdate');
querys.ExecSQL;
adoconn.CommitTrans;
result:=true;
except
adoconn.RollbackTrans;
outstr:='离职操作时更新错误!';
end;
finally
querys.close;
freeandnil(querys);
end;
end;
function restore_Parchives(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录不存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;
querys.Close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where personnel_id=:ax and dimission<>0');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.open;
if querys['tmp'] =1 then
try
adoconn.Connected:=true;
adoconn.BeginTrans;
querys.close;
querys.sql.clear;
querys.sql.add('update P_archives set dimission=0 where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.ExecSQL;
adoconn.CommitTrans;
result:=true;
except
adoconn.RollbackTrans;
outstr:='还原员工资料时更新错误!';
end;
finally
querys.close;
freeandnil(querys);
end;
end;
function delete_dimission(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录不存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;
querys.Close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where personnel_id=:ax and dimission<>0');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.open;
if querys['tmp'] =1 then
try
adoconn.Connected:=true;
adoconn.BeginTrans;
querys.close;
querys.sql.clear;
querys.sql.add('delete from P_archives where personnel_id=:ax');
querys.parameters.parambyname('ax').value :=getparamitem(params,'tuid');
querys.execsql;
querys.close;
querys.sql.clear;
querys.sql.add('delete from D_particular where personnel_id=:ax');
querys.parameters.parambyname('ax').value :=getparamitem(params,'tuid');
querys.execsql;
querys.close;
querys.sql.clear;
querys.sql.add('delete from event where personnel_id=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.execsql;
adoconn.CommitTrans;
result:=true;
except
adoconn.RollbackTrans;
outstr:='删除离职员工资料时更新错误!';
end;
finally
querys.close;
freeandnil(querys);
end;
end;
//-------------查询
procedure Query_Parchivesinfo(params:WideString;out querys:tadoquery);
var funid:integer;
begin
funid:=strtointdef(getparamitem(params,'funid'),public_unkonw);
case funid of
public_infor:
begin
querys.close;
querys.sql.clear;
querys.sql.add('select * from P_archives where personnel_id=:ax and dimission=0');
querys.Parameters.ParamByName('ax').value:=getparamitem(params,'tuid');
querys.open;
end;
public_list_ex01:
begin
querys.close;
querys.sql.clear;
querys.sql.add('select personnel_id,name,sex,dept,work_type,');
querys.sql.add('idcard,school,birthday,marriage,area,tel,');
querys.sql.add('start_date,over_date,remark');
querys.sql.add('from P_archives where dimission<>0 and personnel_id like :ax and');
querys.sql.add('name like :ar and dept like :an and work_type like :am');
querys.sql.add('order by personnel_id,dept,work_type');
querys.Parameters.ParamByName('ax').value:=getparamitem(params,'tuid');
querys.Parameters.ParamByName('ar').value:=getparamitem(params,'tname');
querys.Parameters.ParamByName('an').value:=getparamitem(params,'tdept');
querys.Parameters.ParamByName('am').value:=getparamitem(params,'twork');
querys.open;
end;
public_list_ex02:
begin
querys.close;
querys.sql.clear;
querys.sql.add('SELECT * FROM P_archives');
querys.sql.add('where dimission=0 and personnel_id like :a3 and name like :a4 and dept like :a5 and work_type like :a6');
querys.Parameters.ParamByName('a3').value:=getparamitem(params,'tuid');
querys.Parameters.ParamByName('a4').value:=getparamitem(params,'tname');
querys.Parameters.ParamByName('a5').value:=getparamitem(params,'tdept');
querys.Parameters.ParamByName('a6').value:=getparamitem(params,'twork');
querys.open;
end;
public_list_ex03:
begin
querys.close;
querys.sql.clear;
querys.sql.add('select * from P_archives where personnel_id=:ax and dimission=0');
querys.Parameters.ParamByName('ax').value:=getparamitem(params,'tuid');
querys.open;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -