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

📄 sbp_psagacct_tielu_tl.pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit sbp_psagacct_tielu_tl;

interface
uses
  SysUtils, Classes, DB, DBTables,Math;

procedure tielu_tl(ai_psseno ,ai_year :integer;Db:TDatabase);

implementation

uses commlist, sbp_psagacct_tielu;



procedure tielu_tl(ai_psseno ,ai_year :integer;Db:TDatabase);
var
//  --99年开始为自然年度
ln_mon :integer;
ln_re :double;
ln_tt :double;
ln_yjs :integer;
ln_yjs1 :integer;
ln_months :integer;
ln_months1 :integer;
ln_cypsfd :double;
ln_cypsints :double;
ln_lypscyints :double;
ln_lypsfd :double;
ln_lypsints :double;
ln_cycpfd :double;
ln_cycpints :double;
ln_lycpcyints :double;
ln_lycpfd :double;
ln_lycpints :double;
ln_year :integer;
ls_wgnotes :widestring;
ls_ftnotes :widestring;
ls_num :integer;
Query,temp,Qry:TQuery;
temp_i:integer;

begin
  /////////////////////////////////////////////////////
  //try
  temp:=TQuery.Create(nil);
  //Db.StartTransaction ;
  with temp do
    begin
      Databasename:=db.DatabaseName ;
      sql.Add('INSERT INTO SBDA_PSAGACCT (PSSENO,YEARNO,LYCPPRIN,LYPSPRIN,LYCPINTS,LYPSINTS,CYREWG,');
      sql.Add('MONTHS,CYMONTHS,LYMONTHS,LYREMONTHS,CYARCPFD,CYRELYCPFD,CYARPSFD,CYRELYPSFD,');
      sql.Add('CYFTCPFD,CYRELYCPAC,SPLYCPFD,CYCPACMONS,CYPSARAC,CYRELYPSARAC,CYRELYPSAC,CYPSACMONS,');
      sql.Add('CYCPINTS,CYPSINTS,ACCPINUP,ACPSWGINUP,ACCPINUPINTS,ACPSWGINUPINTS,WGMONUP,DBCPFD,DBPSFD,');
      sql.Add('CYDATE,PFLAG,DBFD,TOTFD,TOTPSFD,LYCYCPINTS,LYCYPSINTS,PAYIDX,WGNOTES,FTNOTES)');
      sql.Add('values(');
      SQL.Add(':param1,:param2,:param3,:param4,:param5,:param6,:param7,:param8,:param9,:param10');
      SQL.Add(',:param11,:param12,:param13,:param14,:param15,:param16,:param17,:param18,:param19,:param20');
      //SQL.Add(':param11,:param12,:param13,:param14,:param15,:param16,:param17,:param18,:param19,:param20');
      SQL.Add(',:param21,:param22,:param23,:param24,:param25,:param26,:param27,:param28,:param29,:param30');
      SQL.Add(',:param31,:param32,:param33,:param34,:param35,:param36,:param37,:param38,:param39,:param40');
      SQL.Add(',:param41,:param42');
      sql.Add(')'); 
    end; 
  Qry:=TQuery.Create(nil);
  Qry.DatabaseName :=db.DatabaseName ;
   
  Query:=TQuery.Create(nil);
  with Query do
    begin
      Databasename:=db.DatabaseName ;
      sql.Add('select psseno,yearno,rewage,ttwage,months from sbdu_pswgcase  where psseno=:param1  and yearno>=:param2 and yearno>=1996 and yearno<=2001');
      parambyname('param1').AsInteger :=ai_psseno;
      parambyname('param2').AsInteger :=ai_year;
      {cursor cur_pswgcase(al_psseno number,al_year number) is
select psseno,yearno,rewage,ttwage,months from sbdu_pswgcase
          where psseno=al_psseno  and yearno>=al_year and yearno>=1996 and yearno<=2001;}
      prepare;
      open;
      while not eof do
        ln_mon :=0;
ln_re :=0;
ln_tt :=0;
ln_yjs :=0;
ln_yjs1 :=0;
ln_months :=0;
ln_months1 :=0;
ln_cypsfd :=0;
ln_cypsints :=0;
ln_lypscyints :=0;
ln_lypsfd :=0;
ln_lypsints :=0;
ln_cycpfd :=0;
ln_cycpints :=0;
ln_lycpcyints :=0;
ln_lycpfd :=0;
ln_lycpints :=0;
ln_year :=0;
ls_wgnotes :='';
ls_ftnotes :='';
//-----------第一年向后靠
if Fieldbyname('yearno').AsInteger=1996 then
begin
  Qry.SQL.Add('select rewage,ttwage,months  from sbdu_pswgcase where psseno=:param1  and yearno=:param2');
  Qry.ParamByName('param1').AsInteger :=Fieldbyname('psseno').AsInteger ;
  Qry.ParamByName('param2').AsInteger :=1995;
  Qry.Prepare ;
  Qry.Open ;
  ln_re:=Qry.Fields[0].AsFloat ;
  ln_tt:=Qry.Fields[1].AsFloat ;
  ln_mon:=Qry.Fields[2].AsInteger;
{select rewage,ttwage,months into ln_re,ln_tt,ln_mon from sbdu_pswgcase
          where psseno=c_pswgcase.psseno  and yearno=1995; }
if Fieldbyname('months').AsInteger=12 then
begin
ln_cypsfd :=ceil(Fieldbyname('rewage').AsFloat*6*0.04*10)/10+ceil(ln_re*ln_mon*0.04*10)/10;
 {select decode(ln_mon,1,7,2,15,3,24,4,34,5,45,6,57) into ln_yjs from dual;}
 case ln_mon of
   1: ln_yjs:=7;
   2: ln_yjs:=15;
   3: ln_yjs:=24;
   4: ln_yjs:=34;
   5: ln_yjs:=45;
   6: ln_yjs:=57;
  end;
ln_cypsints :=Fieldbyname('rewage').AsFloat*0.04*0.1098/6*21+ln_re*0.04*0.1098/ln_mon*ln_yjs;
ls_wgnotes :=formatfloat('0.00',ln_re)+':'+inttostr(7 - ln_mon)+'-6----'+Fieldbyname('rewage').AsString+':7-12';
ls_ftnotes :=fillchar('-',6 - ln_mon)+fillchar('★',6 + ln_mon);
ln_months1 :=6 + ln_mon;
end else if (Fieldbyname('months').AsInteger>6) and (Fieldbyname('months').AsInteger<12) then
begin
ln_cypsfd :=ceil((Fieldbyname('ttwage').AsFloat - Fieldbyname('rewage').AsFloat*6)*0.04*10)/10;
temp_i:=Fieldbyname('months').AsInteger-6 ;
{select decode(c_pswgcase.months - 6,1,1,2,3,3,6,4,10,5,15) into ln_yjs from dual; }
  case temp_i of
    1: ln_yjs:=1;
    2: ln_yjs:=3;
    3: ln_yjs:=6;
    4: ln_yjs:=10;
    5: ln_yjs:=15;
  end;
ln_cypsints :=Fieldbyname('rewage').AsFloat*0.04*0.1098/(Fieldbyname('months').AsInteger - 6)*ln_yjs;
ls_wgnotes :=Fieldbyname('rewage').AsString+':'+inttostr(19 - Fieldbyname('months').asinteger)+'-12';
ls_ftnotes :=fillchar('-',18 - Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger - 6);
ln_months1 :=Fieldbyname('months').AsInteger - 6;
{--ln_cypsfd :=ceil((c_pswgcase.ttwage - c_pswgcase.rewage*6)*0.04*10)/10+ceil(ln_tt*0.04*10)/10;
--select decode(c_pswgcase.months - 6,1,1,2,3,3,6,4,10,5,15) into ln_yjs from dual;
--select decode(c_pswgcase.months - 6,1,7,2,15,3,24,4,34,5,45,6,57) into ln_yjs1 from dual;
--ln_cypsints :=c_pswgcase.rewage*0.04*0.1098/(c_pswgcase.months - 6)*ln_yjs+ln_re*0.04*0.1098/ln_mon*ln_yjs1;
--ls_wgnotes :=to_char(ln_re)||':'||1||'-'||to_char(ln_mon)||'----'||c_pswgcase.rewage||':'||to_char(19 - c_pswgcase.months)||'-'||12;
--ls_ftnotes :=fillchar('★',ln_mon)||fillchar('-',6 - ln_mon)||fillchar('-',12 - c_pswgcase.months)||fillchar('★',c_pswgcase.months - 6);
--ln_months1 :=c_pswgcase.months - 6 + ln_mon;}
end else  if (Fieldbyname('months').AsInteger>=1) and (Fieldbyname('months').AsInteger<7) then
begin
	  ln_cypsfd :=ceil((Fieldbyname('ttwage').AsFloat)*0.04*10)/10 + ceil(ln_tt*0.04*10)/10;
    temp_i:=Fieldbyname('months').AsInteger-6;
    case temp_i of
      1: ln_yjs:=1;
      2: ln_yjs:=3;
      3: ln_yjs:=6;
      4: ln_yjs:=10;
      5: ln_yjs:=15;
    end;
          {select decode(c_pswgcase.months - 6,1,1,2,3,3,6,4,10,5,15) into ln_yjs from dual;
          select decode(c_pswgcase.months - 6,1,7,2,15,3,24,4,34,5,45,6,57) into ln_yjs1 from dual;}
    case temp_i of
      1: ln_yjs1:=7;
      2: ln_yjs1:=15;
      3: ln_yjs1:=24;
      4: ln_yjs1:=34;
      5: ln_yjs1:=45;
      6: ln_yjs1:=57;
    end;
          ln_cypsints :=Fieldbyname('rewage').AsFloat*0.04*0.1098/(Fieldbyname('months').AsInteger)*ln_yjs+ln_tt*0.04*0.1098/ln_mon*ln_yjs1;     
	  ls_wgnotes :=formatfloat('0.00',ln_re)+':1-'+inttostr(ln_mon)+'----'+Fieldbyname('rewage').AsString+':'+inttostr(13 - Fieldbyname('months').AsInteger)+'-12';
          ls_ftnotes :=fillchar('★',ln_mon)+fillchar('-',6 - ln_mon)+fillchar('-',6 - Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
          ln_months1 :=Fieldbyname('months').AsInteger + ln_mon;
end ;
end ;

if Fieldbyname('yearno').AsInteger=1997 then
begin
psints_tielu(Fieldbyname('psseno').AsInteger,1997,ln_lypsfd,ln_lypsints,ln_lypscyints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_months,db);
Qry.Close ;
Qry.SQL.Clear ;
Qry.SQL.Add('select rewage,ttwage,months  from sbdu_pswgcase where psseno=:param1  and yearno=:param2');
Qry.ParamByName('param1').AsInteger:=Fieldbyname('psseno').AsInteger ;
Qry.ParamByName('param2').AsInteger:=1996;
Qry.Prepare ;
Qry.Open ;
ln_re:=Qry.Fields[0].AsFloat;
ln_tt:=Qry.Fields[1].AsFloat;
ln_mon:=Qry.Fields[2].AsInteger ;
{select rewage,ttwage,months into ln_re,ln_tt,ln_mon from sbdu_pswgcase
          where psseno=c_pswgcase.psseno  and yearno=1996; }
if ln_mon>6 then
begin
if Fieldbyname('months').AsInteger=12 then
begin
ln_cypsfd :=ceil(Fieldbyname('ttwage').AsInteger/2*0.05*10)/10+ceil(ln_re*6*0.04*10)/10;
ln_cypsints :=Fieldbyname('rewage').AsFloat*0.05*0.0747/6*21+ln_re*0.04*0.1098/6*57;
ls_wgnotes :=formatfloat('0.00',ln_re)+':1-6----'+Fieldbyname('rewage').AsString+':7-12';
ls_ftnotes :=fillchar('★',12);
ln_months1 :=12;
end else if (Fieldbyname('months').AsInteger>6) and (Fieldbyname('months').AsInteger<12) then
begin
ln_cypsfd :=ceil((Fieldbyname('ttwage').AsFloat - Fieldbyname('rewage').AsFloat*6)*0.05*10)/10 + ceil(ln_re*(ln_mon - 6)*0.04*10)/10;
temp_i:=Fieldbyname('months').AsInteger-6;
case temp_i of
  1: ln_yjs:=1;
  2: ln_yjs:=3;
  3: ln_yjs:=6;
  4: ln_yjs:=10;
  5: ln_yjs:=15;
end;
case temp_i of
  1: ln_yjs1:=7;
  2: ln_yjs1:=15;
  3: ln_yjs1:=24;
  4: ln_yjs1:=34;
  5: ln_yjs1:=45;
  6: ln_yjs1:=57;
end;
{select decode(c_pswgcase.months - 6,1,1,2,3,3,6,4,10,5,15) into ln_yjs from dual;
select decode(c_pswgcase.months - 6,1,7,2,15,3,24,4,34,5,45,6,57) into ln_yjs1 from dual; }
ln_cypsints :=Fieldbyname('rewage').AsFloat*0.05*0.0747/(Fieldbyname('months').AsInteger - 6)*ln_yjs+ln_re*0.04*0.1098/(ln_mon - 6)*ln_yjs1;
ls_wgnotes :=formatfloat('0.00',ln_re)+':1-'+inttostr(ln_mon - 6)+'----'+Fieldbyname('rewage').asstring+':'+inttostr(19 - Fieldbyname('months').asinteger)+'-12';
ls_ftnotes :=fillchar('★',ln_mon - 6)+fillchar('-',12 - ln_mon)+fillchar('-',12 - Fieldbyname('months').asinteger)+fillchar('★',Fieldbyname('months').asinteger - 6);
ln_months1 :=Fieldbyname('months').asinteger - 6 + ln_mon - 6;
end else if (Fieldbyname('months').AsInteger>=1) and (Fieldbyname('months').AsInteger<7) then
begin
	  ln_cypsfd :=ceil((Fieldbyname('ttwage').AsFloat)*0.05*10)/10 + ceil(ln_re*(ln_mon - 6)*0.04*10)/10;
    temp_i:=Fieldbyname('months').AsInteger-6;
    case temp_i of
      1: ln_yjs:=1;
      2: ln_yjs:=3;
      3: ln_yjs:=6;
      4: ln_yjs:=10;
      5: ln_yjs:=15;
    end;
    case temp_i of
      1: ln_yjs1:=7;
      2: ln_yjs1:=15;
      3: ln_yjs1:=24;
      4: ln_yjs1:=34;
      5: ln_yjs1:=45;
      6: ln_yjs1:=57;
    end;
          {select decode(c_pswgcase.months - 6,1,1,2,3,3,6,4,10,5,15) into ln_yjs from dual;
          select decode(c_pswgcase.months - 6,1,7,2,15,3,24,4,34,5,45,6,57) into ln_yjs1 from dual;}
          ln_cypsints :=Fieldbyname('rewage').AsFloat*0.05*0.0747/(Fieldbyname('months').AsInteger)*ln_yjs+ln_re*0.04*0.1098/(ln_mon - 6)*ln_yjs1;     
	  ls_wgnotes :=formatfloat('0.00',ln_re)+':1-'+inttostr(ln_mon - 6)+'----'+Fieldbyname('rewage').AsString+':'+inttostr(13 - Fieldbyname('months').AsInteger)+'-12';
          ls_ftnotes :=fillchar('★',ln_mon - 6)+fillchar('-',12 - ln_mon)+fillchar('-',6 - Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
          ln_months1 :=Fieldbyname('months').AsInteger + ln_mon - 6;
end
else
if Fieldbyname('months').AsInteger=12 then
begin
ln_cypsfd :=ceil(Fieldbyname('ttwage').AsFloat/2*0.05*10)/10+ceil(ln_tt*0.04*10)/10;
{select decode(ln_mon,1,7,2,15,3,24,4,34,5,45,6,57) into ln_yjs from dual;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -