⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parchives.pas

📁 三層源碼,DELPHI寫的三層源碼,三層源碼,
💻 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 + -