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

📄 sbp_psagacct_minhang.~pas

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

interface
uses
  SysUtils, Classes, DB, DBTables;
procedure psagacct_minhang(ai_psseno:integer;ai_year:integer;db:Tdatabase);
procedure psints_minhang(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);

implementation

uses commlist;

//民航各年利息的计算
procedure psagacct_minhang(ai_psseno :integer;ai_year :integer;db:Tdatabase);
var
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 :string;
ls_ftnotes :string;
Query,temp:TQuery;
i:integer;
s:string;
{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;}
begin
//try
  temp:=TQuery.Create(nil);
  //Db.StartTransaction ;
  temp.DatabaseName :=db.DatabaseName ;
  temp.SQL.Add('  INSERT INTO SBDA_PSAGACCT (PSSENO,YEARNO,LYCPPRIN,LYPSPRIN,LYCPINTS,LYPSINTS,CYREWG, MONTHS,CYMONTHS,LYMONTHS,LYREMONTHS,CYARCPFD,CYRELYCPFD,CYARPSFD,CYRELYPSFD,');
  temp.SQL.Add('CYFTCPFD,CYRELYCPAC,SPLYCPFD,CYCPACMONS,CYPSARAC,CYRELYPSARAC,CYRELYPSAC,CYPSACMONS, CYCPINTS,CYPSINTS,ACCPINUP,ACPSWGINUP,ACCPINUPINTS,ACPSWGINUPINTS,WGMONUP,DBCPFD,DBPSFD,');
  temp.SQL.Add('CYDATE,PFLAG,DBFD,TOTFD,TOTPSFD,LYCYCPINTS,LYCYPSINTS,PAYIDX,WGNOTES,FTNOTES)  values(');
  temp.SQL.Add(':param1,:param2,:param3,:param4,:param5,:param6,:param7,:param8,:param9,:param10');
  temp.SQL.Add(',:param11,:param12,:param13,:param14,:param15,:param16,:param17,:param18,:param19,:param20');
  //temp.SQL.Add(':param11,:param12,:param13,:param14,:param15,:param16,:param17,:param18,:param19,:param20');
  temp.SQL.Add(',:param21,:param22,:param23,:param24,:param25,:param26,:param27,:param28,:param29,:param30');
  temp.SQL.Add(',:param31,:param32,:param33,:param34,:param35,:param36,:param37,:param38,:param39,:param40');
  temp.SQL.Add(',:param41,:param42)');

  Query:=TQuery.create(nil);
  Query.DatabaseName :=db.DatabaseName ;
  Query.sql.add('select psseno,yearno,rewage,ttwage,months from sbdu_pswgcase  where psseno=:param1 and yearno>=:param2 and yearno>=1996 and yearno<=2001');
  Query.ParamByName('param1').AsInteger :=ai_psseno;
  Query.parambyname('param2').AsInteger :=ai_year;
  Query.prepare;
  Query.open;
with Query do
begin
  while not eof do
  //  for c_pswgcase in cur_pswgcase(ai_psseno,ai_year) loop
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;
ln_year :=0;
ls_wgnotes :='';
ls_ftnotes :='';
if Fieldbyname('yearno').asinteger=1996 then
begin
ln_cypsfd :=Fieldbyname('ttwage').asfloat*0.03;
ln_cypsints :=Fieldbyname('ttwage').asfloat*0.03*0.0918/2*Fieldbyname('months').asinteger/12;
////////////////
ls_wgnotes :=Fieldbyname('rewage').asstring+':'+inttostr(13-Fieldbyname('months').asinteger)+'-'+'12';
{ls_ftnotes:='';
for i:=1 to 12-Fieldbyname('months').asinteger do
  ls_ftnotes:=ls_ftnotes+'-';
for i:=1 to Fieldbyname('months').asinteger do
  ls_ftnotes:=ls_ftnotes+'★'; }
ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
///////////////
end ;
if Fieldbyname('yearno').asinteger=1997 then
begin
ln_cypsfd :=Fieldbyname('ttwage').asfloat*0.03;
ln_cypsints :=Fieldbyname('ttwage').asfloat*0.03*0.0747/2*Fieldbyname('months').asinteger/12;
psints_minhang(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
     ls_wgnotes :=Fieldbyname('rewage').asstring+':'+'1-'+Fieldbyname('months').asstring;
     {ls_ftnotes:='';
     for i:=1 to Fieldbyname('months').asinteger  do
     ls_ftnotes:=ls_ftnotes+'★';
     for i:=1 to 12-Fieldbyname('months').asinteger do
      ls_ftnotes:=ls_ftnotes+'-'; }
     ls_ftnotes :=fillchar('★',Fieldbyname('months').AsInteger)+fillchar('-',12-Fieldbyname('months').AsInteger);
     end else
     begin
     ls_wgnotes :=Fieldbyname('rewage').asstring+':'+inttostr(13-Fieldbyname('months').asinteger)+'-12';
     {ls_ftnotes:='';
     for i:=1 to 12-Fieldbyname('months').asinteger do
     ls_ftnotes:=ls_ftnotes+'-';
     for i:=1 to Fieldbyname('months').asinteger     do
     ls_ftnotes:=ls_ftnotes+'★'; }
     ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
     end ;
end ;
//-----------因为累积缴费从98起算,置ln_months:=0
if Fieldbyname('yearno').asinteger=1998 then
begin
ln_cypsfd :=Fieldbyname('ttwage').asfloat*0.04;
ln_cycpfd :=Fieldbyname('ttwage').asfloat*0.07;
psints_minhang(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_cypsints :=Fieldbyname('rewage').AsFloat*0.04*0.06/12*(25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger )/2 ;
     ln_cycpints :=Fieldbyname('rewage').AsFloat*0.07*0.06/12*(25*Fieldbyname('months').AsInteger-Fieldbyname('months').AsInteger*Fieldbyname('months').AsInteger )/2 ;
     ls_wgnotes :=Fieldbyname('rewage').AsString+':1-'+Fieldbyname('months').AsString;
     {ls_ftnotes:='';
     for i:=1 to Fieldbyname('months').AsInteger do
     ls_ftnotes:=ls_ftnotes+'★';
     for i:=1 to Fieldbyname('months').AsInteger do
     ls_ftnotes:=ls_ftnotes+'-';}
     ls_ftnotes :=fillchar('★',Fieldbyname('months').AsInteger)+fillchar('-',12-Fieldbyname('months').AsInteger);
     end else
     begin
     ln_cypsints :=Fieldbyname('rewage').asfloat*0.04*0.06/12*(Fieldbyname('months').asinteger+Fieldbyname('months').asinteger*Fieldbyname('months').asinteger)/2;
     ln_cycpints :=Fieldbyname('rewage').asfloat*0.07*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:='';
     for i:=1 to 12-Fieldbyname('months').asinteger do
     ls_ftnotes:=ls_ftnotes+'-';
     for i:=1 to Fieldbyname('months').asinteger do
     ls_ftnotes:=ls_ftnotes+'★'; }
     ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
     end ;
ln_months :=0;
end ;
if Fieldbyname('yearno').asinteger=1999 then
begin
ln_cypsfd :=Fieldbyname('ttwage').asfloat*0.04;
ln_cycpfd :=Fieldbyname('ttwage').asfloat*0.07;
psints_minhang(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
     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:='';
     for i:=1 to Fieldbyname('months').asinteger do
     ls_ftnotes:=ls_ftnotes+'★';
     for i:=1 to 12-Fieldbyname('months').asinteger do
     ls_ftnotes:=ls_ftnotes+'-';  }
     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:='';
     for i:=1 to 12-Fieldbyname('months').asinteger do
     ls_ftnotes:=ls_ftnotes+'-';
     for i:=1 to Fieldbyname('months').asinteger do
     ls_ftnotes:=ls_ftnotes+'★';}
     ls_ftnotes :=fillchar('-',12-Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
     end;
end ;
if Fieldbyname('yearno').AsInteger =2000 then
begin
ln_cypsfd :=Fieldbyname('ttwage').AsFloat*0.05;
ln_cycpfd :=Fieldbyname('ttwage').AsFloat*0.06;
psints_minhang(Fieldbyname('psseno').AsInteger,2000,ln_lypsfd,ln_lypsints,ln_lypscyints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_months,db);
     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:='';
     for i:=1 to Fieldbyname('months').AsInteger do

⌨️ 快捷键说明

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