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

📄 sbp_psagacct_tielao.pas

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

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

procedure psints_tielao(an_ps ,an_yearno :integer;var an_lypsprin ,an_lypsints,an_lycypsints,an_lycpprin ,an_lycpints,an_lycycpints:double;var an_months :integer;Db :TDatabase);
procedure psagacct_tielao (ai_psseno ,ai_year :integer;Db:TDatabase);


implementation

uses commlist;



procedure psagacct_tielao (ai_psseno ,ai_year :integer;Db:TDatabase);
var
  ln_ms :integer;
  ln_rewage :double;
  ln_months :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;
  Query,temp:TQuery;
  months:integer;//不更改sbdu_pswgcase里的months字段
begin
  /////////////////////////////////////////
  //try
   months:=0;
   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;
   Query:=TQuery.Create(nil);
   with Query do
     begin
       Databasename:=Db.DatabaseName ;
       Query.RequestLive :=true;
       sql.Add('select psseno,yearno,rewage,ttwage,months from sbdu_pswgcase where psseno=:param1 and yearno>=:param2 and yearno>=1996 and yearno<=2001');
         {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; }
       parambyname('param1').AsInteger :=ai_psseno;
       parambyname('param2').AsInteger :=ai_year;
       prepare;
       open;
       while not eof do
         begin
            ln_ms :=0;
ln_rewage :=0;
ln_months :=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
       if Fieldbyname('months').AsInteger>=6 then
       begin
          ln_rewage :=returnrewage(Fieldbyname('psseno').AsInteger,1996,db);
          ln_cypsfd :=ceil(ln_rewage*0.04*10)/10*(Fieldbyname('months').AsInteger-6)+ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*6;
          ln_cypsints :=ceil(ln_rewage*0.04*10)/10*Fieldbyname('months').AsInteger*0.0918/2*(Fieldbyname('months').AsInteger-6)/12+ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*Fieldbyname('months').AsFloat*0.0918/2*6/12;
          ls_wgnotes :=formatfloat('0.00',ln_rewage)+':'+inttostr(13-Fieldbyname('months').AsInteger)+'-6----'+Fieldbyname('rewage').AsString+':7-12';
          ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
       end else
       begin
          ln_cypsfd :=ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*Fieldbyname('months').AsInteger;
          ln_cypsints :=ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*Fieldbyname('months').AsInteger*0.0918/2*Fieldbyname('months').AsInteger/12;
          ls_wgnotes :=Fieldbyname('rewage').AsString+':'+inttostr(13-Fieldbyname('months').AsInteger)+'-12';
          ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
       end  ;
end  ;
if Fieldbyname('yearno').AsInteger=1997 then
begin
psints_tielao(Fieldbyname('psseno').AsInteger,1997,ln_lypsfd,ln_lypsints,ln_lypscyints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_months,db);
if ln_months>0 then
       begin
       ln_rewage:=returnrewage(Fieldbyname('psseno').AsInteger,1997,db);
       if Fieldbyname('months').AsInteger>=6 then
       begin
       ln_cypsfd :=ceil(ln_rewage*0.04*10)/10*6+ceil(Fieldbyname('rewage').AsFloat*0.05*10)/10*(Fieldbyname('months').AsInteger-6);
       ln_cypsints :=ceil(ln_rewage*0.04*10)/10*Fieldbyname('months').AsInteger*0.0712/2*6/12+ceil(Fieldbyname('rewage').AsFloat*0.05*10)/10*Fieldbyname('months').AsFloat*0.0712/2*(Fieldbyname('months').AsInteger-6)/12;
       ls_wgnotes :=formatfloat('0.00',ln_rewage)+':1-6----'+Fieldbyname('rewage').AsString+':7-'+Fieldbyname('months').AsString;
       ls_ftnotes :=fillchar('★',Fieldbyname('months').AsInteger)+fillchar('-',12-Fieldbyname('months').AsInteger);
       end else
       begin
       ln_cypsfd :=ceil(ln_rewage*0.04*10)/10*Fieldbyname('months').AsInteger;
       ln_cypsints :=ceil(ln_rewage*0.04*10)/10*Fieldbyname('months').AsInteger*0.0712/2*Fieldbyname('months').AsInteger/12;
       ls_wgnotes :=formatfloat('0.00',ln_rewage)+':1-'+Fieldbyname('months').AsString;
       ls_ftnotes :=fillchar('★',Fieldbyname('months').AsInteger)+fillchar('-',12-Fieldbyname('months').AsInteger);
       end  ;
end else
begin
       if Fieldbyname('months').AsInteger>=6 then
       begin
       ln_rewage:=returnrewage(Fieldbyname('psseno').AsInteger,1997,db);
       ln_cypsfd :=ceil(ln_rewage*0.04*10)/10*(Fieldbyname('months').AsInteger-6)+ceil(Fieldbyname('rewage').AsFloat*0.05*10)/10*6;
       ln_cypsints :=ceil(ln_rewage*0.04*10)/10*Fieldbyname('months').AsInteger*0.0712/2*(Fieldbyname('months').AsInteger-6)/12+ceil(Fieldbyname('rewage').AsFloat*0.05*10)/10*Fieldbyname('months').AsInteger*0.0712/2*6/12;
       ls_wgnotes :=formatfloat('0.00',ln_rewage)+':'+inttostr(13-Fieldbyname('months').AsInteger)+'-6----'+Fieldbyname('rewage').AsString+':7-12';
       ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
       end else
       begin
       ln_cypsfd :=ceil(Fieldbyname('rewage').AsFloat*0.05*10)/10*Fieldbyname('months').AsInteger;
       ln_cypsints :=ceil(Fieldbyname('rewage').AsFloat*0.05*10)/10*Fieldbyname('months').AsInteger*0.0712/2*Fieldbyname('months').AsInteger/12;
       ls_wgnotes :=Fieldbyname('rewage').AsString+':'+inttostr(13-Fieldbyname('months').AsInteger)+'-12';
       ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
       end  ;
end  ;
end  ;
//-----------因为累积缴费从98起算,置ln_months:=0
if Fieldbyname('yearno').AsInteger=1998 then
begin
psints_tielao(Fieldbyname('psseno').AsInteger,1998,ln_lypsfd,ln_lypsints,ln_lypscyints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_months,db);
if ln_months>0 then
begin
       ln_rewage:=returnrewage(Fieldbyname('psseno').AsInteger,1998,db);
       if Fieldbyname('months').AsInteger>=6 then
       begin
       ln_cypsfd :=ceil(ln_rewage*0.05*10)/10*6+ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*(Fieldbyname('months').AsInteger-6);
       ln_cycpfd :=ceil(ln_rewage*0.06*10)/10*6+ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*(Fieldbyname('months').AsInteger-6);
       ln_cypsints :=ceil(ln_rewage*0.05*10)/10*0.06/12*57+ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*0.06/12*(21-(12-Fieldbyname('months').AsInteger)*(13-Fieldbyname('months').AsInteger)/2);
       ln_cycpints :=ceil(ln_rewage*0.06*10)/10*0.06/12*57+ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*0.06/12*(21-(12-Fieldbyname('months').AsInteger)*(13-Fieldbyname('months').AsInteger)/2);
       ls_wgnotes :=formatfloat('0.00',ln_rewage)+':1-6----'+Fieldbyname('rewage').AsString+':7-'+Fieldbyname('months').AsString;
       ls_ftnotes :=fillchar('★',Fieldbyname('months').AsInteger)+fillchar('-',12-Fieldbyname('months').AsInteger);
       end  else
       begin
       ln_cypsfd :=ceil(ln_rewage*0.05*10)/10*Fieldbyname('months').AsInteger;
       ln_cycpfd :=ceil(ln_rewage*0.06*10)/10*Fieldbyname('months').AsInteger;
       ln_cypsints :=ceil(ln_rewage*0.05*10)/10*0.06/12*(25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger)/2;
       ln_cycpints :=ceil(ln_rewage*0.06*10)/10*0.06/12*(25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger)/2;
       ls_wgnotes :=formatfloat('0.00',ln_rewage)+':1-'+Fieldbyname('months').AsString ;
       ls_ftnotes :=fillchar('★',Fieldbyname('months').AsInteger)+fillchar('-',12-Fieldbyname('months').AsInteger);
       end  ;
end else
begin
       if Fieldbyname('months').AsInteger>=6 then
       begin
       ln_rewage:=returnrewage(Fieldbyname('psseno').AsInteger,1998,db);
       ln_cypsfd :=ceil(ln_rewage*0.05*10)/10*(Fieldbyname('months').AsInteger-6)+ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*6;
       ln_cycpfd :=ceil(ln_rewage*0.06*10)/10*(Fieldbyname('months').AsInteger-6)+ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*6;
       ln_cypsints :=ceil(ln_rewage*0.05*10)/10*0.06/12*(Fieldbyname('months').AsInteger*(Fieldbyname('months').AsInteger+1)/2-21)+ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*0.06/12*21;
       ln_cycpints :=ceil(ln_rewage*0.06*10)/10*0.06/12*(Fieldbyname('months').AsInteger*(Fieldbyname('months').AsInteger+1)/2-21)+ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*0.06/12*21;
       ls_wgnotes :=formatfloat('0.00',ln_rewage)+':'+inttostr(13-Fieldbyname('months').AsInteger)+'-6----'+Fieldbyname('rewage').AsString+':7-12';
       ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
       end else
       begin
       ln_cypsfd :=ceil(Fieldbyname('rewage').AsFloat *0.04*10)/10*Fieldbyname('months').asinteger;
       ln_cycpfd :=ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*Fieldbyname('months').asinteger;
       ln_cypsints :=ceil(Fieldbyname('rewage').AsFloat *0.04*10)/10*0.06/12*(Fieldbyname('months').asinteger+Fieldbyname('months').asinteger*Fieldbyname('months').asinteger)/2;
       ln_cycpints :=ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*0.06/12*(Fieldbyname('months').asinteger+Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger)/2;
       ls_wgnotes :=Fieldbyname('rewage').AsString +':'+inttostr(13-Fieldbyname('months').AsInteger )+'-12';
       ls_ftnotes :=fillchar('-',12-Fieldbyname('months').asinteger)+fillchar('★',Fieldbyname('months').asinteger);
       end  ;
end  ;
ln_months :=0;
end ;
if Fieldbyname('yearno').AsInteger=1999 then
begin
psints_tielao(Fieldbyname('psseno').AsInteger,1999,ln_lypsfd,ln_lypsints,ln_lypscyints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_months,db);
  if ln_months>0 then
     begin
      if Fieldbyname('months').AsInteger>6 then
      begin
         ln_cypsfd :=ceil(Fieldbyname('ttwage').AsFloat/12*10*0.04)*12/10;
         ln_cycpfd :=ceil(Fieldbyname('ttwage').AsFloat/12*10*0.07)*12/10;
         //--ln_cypsfd := ceil(ln_cypsfd*10)/10;
         //--ln_cycpfd := ceil(ln_cycpfd*10)/10;
         ln_cypsints :=ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*0.05/12*(25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger)/2;
         ln_cycpints :=ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*0.05/12*(25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger)/2;
         ls_wgnotes :=Fieldbyname('rewage').AsString+':1-'+Fieldbyname('months').AsString;
         ls_ftnotes :=fillchar('★',Fieldbyname('months').asinteger)+fillchar('-',12-Fieldbyname('months').asinteger);
     end  else
     begin
         ln_rewage :=returnrewage(Fieldbyname('psseno').AsInteger,1999,db);
         ln_ms :=returnmonth(Fieldbyname('psseno').asinteger,1999,db);
         ln_cypsfd :=ceil(ln_rewage*0.04*10)/10*ln_ms+ceil(Fieldbyname('ttwage').asfloat*0.04*10/6)/10*6;
         ln_cycpfd :=ceil(ln_rewage*0.07*10)/10*ln_ms+ceil(Fieldbyname('ttwage').AsFloat*0.07*10/6)/10*6;
         ln_cypsints :=ceil(ln_rewage*0.04*10)/10*0.05/12*(25*ln_ms-ln_ms*ln_ms)/2+
         ceil(Fieldbyname('rewage').AsFloat*0.04*10)/10*0.05/12*((25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger)/2-Fieldbyname('months').AsInteger*6);
         ln_cycpints :=ceil(ln_rewage*0.07*10)/10*0.05/12*(25*ln_ms-ln_ms*ln_ms)/2+
         ceil(Fieldbyname('rewage').AsFloat*0.07*10)/10*0.05/12*((25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger)/2-Fieldbyname('months').AsInteger*6);
         ls_wgnotes :=formatfloat('0.00',ln_rewage)+':1-'+inttostr(ln_ms)+'----'+Fieldbyname('rewage').AsString+':7-'+inttostr(6+Fieldbyname('months').AsInteger);

⌨️ 快捷键说明

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