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

📄 sbp_psagacct_shiyou.~pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 ~PAS
字号:
unit sbp_psagacct_shiyou;

interface
uses
  SysUtils, Classes, DB, DBTables;


procedure psints_shiyou(an_ps ,an_yearno :integer;var an_lypsprin ,an_lypsints ,an_lycpprin ,an_lycpints ,an_lycycpints ,an_lycypsints:double;var an_months:integer;Db:TDatabase);
procedure psagacct_shiyou(ai_psseno ,ai_year:integer;Db:Tdatabase);
implementation

uses commlist;


procedure psagacct_shiyou(ai_psseno ,ai_year:integer;Db:Tdatabase);
var
  ls_wgnotes :widestring;
  ls_ftnotes :widestring;
  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;
  Query,temp:TQuery;
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;
  Query:=TQuery.Create(nil);
  with Query do
    begin
      databasename:=db.DatabaseName ;
      sql.Add('select psseno,yearno,ttwage,rewage,months from sbdu_pswgcase where psseno=:param1 and yearno>=:param2 and yearno>=1999 and yearno<=2001');
      parambyname('param1').AsInteger :=ai_psseno;
      parambyname('param2').AsInteger :=ai_year;
       {cursor cur_pswg(al_psseno number,al_year number) is
select psseno,yearno,ttwage,rewage,months
from sbdu_pswgcase
where psseno=al_psseno and yearno>=al_year and yearno>=1999 and yearno<=2001; }
      prepare;
      open;
      while not eof  do
        begin
          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;
  ls_wgnotes :='';
  ls_ftnotes :='';
 if Fieldbyname('yearno').AsInteger=1999 then
 begin
    psints_shiyou(Fieldbyname('psseno').AsInteger,1999,ln_lypsfd,ln_lypsints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_lypscyints,ln_months,db);
   ln_cypsfd :=Fieldbyname('ttwage').AsFloat* 0.04 ;
   ln_cycpfd :=Fieldbyname('ttwage').AsFloat* 0.07 ;
   if ln_months >0 then
   begin
      ln_cypsints :=Fieldbyname('rewage').AsFloat* 0.04 *0.05/12 * (25 *Fieldbyname('months').asinteger - Fieldbyname('months').AsInteger* Fieldbyname('months').AsInteger)/2;
      ln_cycpints :=Fieldbyname('rewage').AsFloat* 0.07 *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_cypsints :=Fieldbyname('rewage').AsFloat * 0.04 *0.05/12 * (Fieldbyname('months').AsInteger + Fieldbyname('months').AsInteger * Fieldbyname('months').AsInteger)/2;
      ln_cycpints :=Fieldbyname('rewage').AsFloat * 0.07 *0.05/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 ;
  if Fieldbyname('yearno').AsInteger=2000 then
  begin
   psints_shiyou(Fieldbyname('psseno').AsInteger,2000,ln_lypsfd,ln_lypsints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_lypscyints,ln_months,db);
   ln_cypsfd :=Fieldbyname('ttwage').AsFloat * 0.05 ;
   ln_cycpfd :=fieldbyname('ttwage').AsFloat * 0.06 ;
   if ln_months >0 then
   begin
      ln_cypsints :=Fieldbyname('rewage').AsFloat * 0.05 *0.05/12 * (25 * Fieldbyname('months').AsInteger - Fieldbyname('months').AsInteger * fieldbyname('months').AsInteger)/2;
      ln_cycpints :=Fieldbyname('rewage').AsFloat * 0.06 *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_cypsints :=Fieldbyname('rewage').AsFloat  * 0.05 *0.05/12 * (fieldbyname('months').AsInteger  + Fieldbyname('months').AsInteger  * fieldbyname('months' ).AsInteger)/2;
      ln_cycpints :=Fieldbyname('rewage').AsFloat  * 0.06 *0.05/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  ;
  if Fieldbyname('yearno').AsInteger=2001 then
  begin
   psints_shiyou(Fieldbyname('psseno').AsInteger,2001,ln_lypsfd,ln_lypsints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_lypscyints,ln_months,db);
   ln_cypsfd :=Fieldbyname('ttwage').AsFloat  * 0.06 ;
   ln_cycpfd :=Fieldbyname('ttwage').AsFloat  * 0.05 ;
   if ln_months >0 then
   begin
      ln_cypsints :=Fieldbyname('rewage').AsFloat  * 0.06 *0.035/12 * (25 * Fieldbyname('months').AsInteger  - Fieldbyname('months').AsInteger  * Fieldbyname('months').AsInteger  )/2;
      ln_cycpints :=Fieldbyname('rewage').AsFloat  * 0.05 *0.035/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_cypsints :=Fieldbyname('rewage').AsFloat * 0.06 *0.035/12 * (Fieldbyname('months').AsInteger + fieldbyname('months').AsInteger * Fieldbyname('months' ).AsInteger)/2;
      ln_cycpints :=Fieldbyname('rewage').AsFloat * 0.05 *0.035/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 ;
  temp.ParamByName('param1').AsString :=Fieldbyname('PSSENO').AsString ;
  temp.ParamByName('param2').AsString :=Fieldbyname('yearno').AsString ;
  temp.ParamByName('param3').AsString :=formatfloat('0.00',ln_lycpfd);
  temp.ParamByName('param4').AsString :=formatfloat('0.00',ln_lypsfd);
  temp.ParamByName('param5').AsString :=formatfloat('0.00',ln_lycpints);
  temp.ParamByName('param6').AsString :=formatfloat('0.00',ln_lypsints);
  temp.ParamByName('param7').AsString :=Fieldbyname('ttwage').AsString;
  temp.ParamByName('param8').AsString :=inttostr(ln_months + Fieldbyname('months').AsInteger);
  temp.ParamByName('param9').AsString :=Fieldbyname('months').AsString ;
  temp.ParamByName('param10').AsString :='0';
  temp.ParamByName('param11').AsString :='0';
  temp.ParamByName('param12').AsString :=formatfloat('0.00',ln_cycpfd);
  temp.ParamByName('param13').AsString :='0';
  temp.ParamByName('param14').AsString :=formatfloat('0.00',ln_cypsfd);
  temp.ParamByName('param15').AsString :='0';
  temp.ParamByName('param16').AsString :=formatfloat('0.00',ln_cycpfd);
  temp.ParamByName('param17').AsString :='0';
  temp.ParamByName('param18').AsString :='0';
  temp.ParamByName('param19').AsString :='0';
  temp.ParamByName('param20').AsString :=formatfloat('0.00',ln_cypsfd);
  temp.ParamByName('param21').AsString :='0';
  temp.ParamByName('param22').AsString :='0';
  temp.ParamByName('param23').AsString :='0';
  temp.ParamByName('param24').AsString :=formatfloat('0.00',ln_CYCPINTS);
  temp.ParamByName('param25').AsString :=formatfloat('0.00',ln_CYPSINTS);
  temp.ParamByName('param26').AsString :='0';
  temp.ParamByName('param27').AsString :='0';
  temp.ParamByName('param28').AsString :='0';
  temp.ParamByName('param29').AsString :='0';
  temp.ParamByName('param30').AsString :='0';
  temp.ParamByName('param31').AsString :='0';
  temp.ParamByName('param32').AsString :='0';
  temp.ParamByName('param33').AsDate :=strtodate(trim(Fieldbyname('yearno').AsString)+'-12-31');
  temp.ParamByName('paraam34').AsString :='9';
  temp.ParamByName('param35').AsString :='0';
  temp.ParamByName('param36').AsString :='0';
  temp.ParamByName('param37').AsString :='0';
  temp.ParamByName('parAm38').AsString :=formatfloat('0.00',ln_lycpcyints);
  temp.ParamByName('param39').AsString :=formatfloat('0.00',ln_lypscyints);
  temp.ParamByName('param40').AsString :='0';
  temp.ParamByName('param41').AsString :=ls_wgnotes;
  temp.ParamByName('param42').AsString :=ls_ftnotes;
  temp.Prepare ;
  temp.ExecSQL ;
  {INSERT INTO SBDA_PSAGACCT (PRSENO,PSSENO,YEARNO,LYCPPRIN,LYPSPRIN,LYCPINTS,LYPSINTS,CYREWG,
								MONTHS,CYMONTHS,LYMONTHS,LYREMONTHS,CYARCPFD,CYRELYCPFD,CYARPSFD,CYRELYPSFD,
								CYFTCPFD,CYRELYCPAC,SPLYCPFD,CYCPACMONS,CYPSARAC,CYRELYPSARAC,CYRELYPSAC,CYPSACMONS,
								CYCPINTS,CYPSINTS,ACCPINUP,ACPSWGINUP,ACCPINUPINTS,ACPSWGINUPINTS,WGMONUP,DBCPFD,DBPSFD,
								CYDATE,PFLAG,DBFD,TOTFD,TOTPSFD,LYCYCPINTS,LYCYPSINTS,PAYIDX,wgnotes,ftnotes)
					VALUES (SB_PRSENO.NEXTVAL,c_pswg.PSSENO,c_pswg.yearno,ln_lycpfd,ln_lypsfd,ln_lycpints,ln_lypsints,c_pswg.ttwage,
								ln_months + c_pswg.months,c_pswg.months,0,0,ln_cycpfd,0,ln_cypsfd,0,
								ln_cycpfd,0,0,0,ln_cypsfd,0,0,0,
								ln_CYCPINTS,ln_CYPSINTS,0,0,0,0,0,0,0,
								TO_DATE(c_pswg.yearno ||'-12-31','YYYY-MM-DD'),'9',0,0,0,ln_lycpcyints,ln_lypscyints,0,ls_wgnotes,ls_ftnotes);
-- dbms_output.put_line(ls_ftnotes);      }
 next;
 end;
end;
{Db.Commit ;
except
Db.Rollback ;
end;}
  ////////////////////////////////////
end;

procedure psints_shiyou(an_ps ,an_yearno :integer;var an_lypsprin ,an_lypsints ,an_lycpprin ,an_lycpints ,an_lycycpints ,an_lycypsints:double;var an_months:integer;Db:TDatabase);
//procedure psints_shiyou(an_ps ,an_yearno :integer;var an_lypsprin ,an_lypsints ,an_lycpprin ,an_lycpints ,an_lycycpints ,an_lycypsints ,an_months:double;Db:TDatabase);
var
  Query:TQuery;
begin
//////////////////////////////////////////
try
   Query:=TQuery.Create(nil);
   with Query do
     begin
       databasename:=db.DatabaseName ;
       sql.Add('SELECT isnull(LYCPPRIN,0) + isnull(LYCPINTS,0) + isnull(CYFTCPFD,0) + isnull(CYCPINTS,0) + isnull(lycycpints,0),');
       sql.Add('isnull(lypsprin,0) + isnull(lypsints,0) + isnull(cypsarac,0) + isnull(cypsints,0) + isnull(lycypsints,0),');
       sql.Add('isnull(lycpprin,0) + isnull(cyftcpfd,0), isnull(lypsprin,0) + isnull(cypsarac,0),isnull(lycpints,0) + isnull(cycpints,0) + isnull(lycycpints,0),');
       sql.Add('isnull(lypsints,0) + isnull(cypsints,0) + isnull(lycypsints,0), isnull(months,0)');
       sql.Add('FROM SBDA_PSAGACCT WHERE PSSENO=:param1 and yearno=:param2');
       parambyname('param1').AsInteger :=an_ps;
       parambyname('param2').AsInteger :=an_yearno-1;
       prepare;
       open;
       {SELECT isnull(LYCPPRIN,0) + isnull(LYCPINTS,0) + isnull(CYFTCPFD,0) + isnull(CYCPINTS,0) + isnull(lycycpints,0),
      isnull(lypsprin,0) + isnull(lypsints,0) + isnull(cypsarac,0) + isnull(cypsints,0) + isnull(lycypsints,0),
      isnull(lycpprin,0) + isnull(cyftcpfd,0),
      isnull(lypsprin,0) + isnull(cypsarac,0),
      isnull(lycpints,0) + isnull(cycpints,0) + isnull(lycycpints,0),
      isnull(lypsints,0) + isnull(cypsints,0) + isnull(lycypsints,0),
      isnull(months,0) into an_lycycpints,an_lycypsints,an_lycpprin,an_lypsprin,
      an_lycpints,an_lypsints,an_months
FROM SBDA_PSAGACCT WHERE PSSENO=AN_PS and yearno=an_yearno - 1;}
        an_lycycpints:=Fields[0].AsFloat ;
        an_lycypsints:=Fields[1].AsFloat ;
        an_lycpprin:=Fields[2].AsFloat ;
        an_lypsprin:=Fields[3].AsFloat ;
        an_lycpints:=Fields[4].AsFloat ;
        an_lypsints:=Fields[5].AsFloat ;
        an_months:=Fields[6].AsInteger ;

     end;
      if an_yearno =1999 then
      begin
   an_lycycpints := an_lycycpints * 0.05;
   an_lycypsints := an_lycypsints * 0.05;
  end   ;
  if an_yearno =2000 then
  begin
   an_lycycpints := an_lycycpints * 0.05;
   an_lycypsints := an_lycypsints * 0.05;
  end   ;
  if an_yearno=2001 then
  begin
   an_lycypsints :=an_lycypsints*0.035;
   an_lycycpints :=an_lycycpints*0.035;
  end  ;
except
    an_lypsprin :=0;
    an_lypsints :=0;
    an_lycpprin :=0;
    an_lycpints :=0;
    an_lycypsints :=0;
    an_lycycpints :=0;
    an_months :=0;
end;
/////////////////////////////////////////
end;

end.

⌨️ 快捷键说明

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