📄 sbp_psagacct_youdian.pas
字号:
unit sbp_psagacct_youdian;
interface
uses
SysUtils, Classes, DB, DBTables;
procedure psints_youdian(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_youdian(ai_psseno ,ai_year:integer;Db:Tdatabase);
implementation
uses commlist;
procedure psagacct_youdian(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;
str:widestring;
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(',: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>=1998 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>=1998 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=1998 then
begin
psints_youdian(Fieldbyname('psseno').AsInteger,1998,ln_lypsfd,ln_lypsints,ln_lycpfd,ln_lycpints,ln_lycpcyints,ln_lypscyints,ln_months,db);
if ln_months >0 then
begin
ls_wgnotes :=Fieldbyname('rewage').AsString+':1-'+Fieldbyname('months').AsString;
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 :=fillchar('-',12 - Fieldbyname('months').AsInteger)+fillchar('★',Fieldbyname('months').AsInteger);
end ;
ln_cypsfd :=Fieldbyname('ttwage').AsFloat * 0.04 ;
ln_cypsints :=Fieldbyname('ttwage').AsFloat * 0.04 *0.09 * 1.083/2 * Fieldbyname('months').AsInteger/12;
ln_cycpfd :=Fieldbyname('ttwage').AsFloat * 0.07 ;
ln_cycpints :=Fieldbyname('ttwage').AsFloat * 0.07 *0.09 * 1.083/2 * Fieldbyname('months').AsInteger/12;
ln_months :=0;
end ;
if Fieldbyname('yearno').AsInteger=1999 then
begin
psints_youdian(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').AsFloat - Fieldbyname('months').AsInteger * Fieldbyname('months').AsInteger)/2;
ln_cycpints :=Fieldbyname('rewage').AsFloat * 0.07 *0.05/12 * (25 * Fieldbyname('months').AsFloat - 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_youdian(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_youdian(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').AsInteger :=Query.Fieldbyname('PSSENO').AsInteger ;
temp.ParamByName('param2').AsInteger :=Query.Fieldbyname('yearno').AsInteger ;
temp.ParamByName('param3').AsFloat := ln_lycpfd ;
temp.ParamByName('param4').AsFloat :=ln_lypsfd;
temp.ParamByName('param5').AsFloat :=ln_lycpints;
temp.ParamByName('param6').AsFloat :=ln_lypsints;
temp.ParamByName('param7').AsFloat :=Query.fieldbyname('ttwage').AsFloat ;
temp.ParamByName('param8').AsInteger :=ln_months + fieldbyname('months').AsInteger;
temp.ParamByName('param9').AsInteger :=Query.Fieldbyname('months').AsInteger ;
temp.ParamByName('param10').AsInteger:=0;
temp.ParamByName('param11').AsInteger:=0;
temp.ParamByName('param12').AsFloat :=ln_cycpfd;
temp.ParamByName('param13').AsInteger :=0;
temp.ParamByName('param14').AsFloat :=ln_cypsfd;
temp.ParamByName('param15').AsInteger :=0;
temp.ParamByName('param16').AsFloat :=ln_cycpfd;
temp.ParamByName('param17').AsInteger :=0;
temp.ParamByName('param18').AsInteger :=0;
temp.ParamByName('param19').AsInteger :=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -