Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var calcParams = {
- MROT: 5205, // МРОТ в 2013, руб.
- ZPS: 29907, // Средняя зарплата в 2012 году, руб.
- ZPMcoeff: 2.3, // Коэффициент расчета макс. зарплаты, с которой берутся страховые взносы по новой формуле
- ZPOSV2013: 47333, // Зарплата, облагаемая страховыми взносами сегодня, руб.
- T: 19, // Период выплаты пенсии для рассчета ТП по старой формуле и накопительной пенсии по новой формуле, лет
- FBR: 3610.31, // Размер ФБР, руб.
- CPK: 57.91, // Стоимость 1го пенс. коэфф., руб.
- KNPG: {
- 0: 1,
- 2: 0.91,
- 6: 0.727
- },
- BPKop: {
- 0: 1,
- 1: 1.056,
- 2: 1.12,
- 3: 1.19,
- 4: 1.27,
- 5: 1.36,
- 6: 1.46,
- 7: 1.58,
- 8: 1.73,
- 9: 1.9,
- 10: 2.11
- },
- SPKop: {
- 0: 1,
- 1: 1.066,
- 2: 1.15,
- 3: 1.24,
- 4: 1.34,
- 5: 1.45,
- 6: 1.59,
- 7: 1.74,
- 8: 1.9,
- 9: 2.09,
- 10: 2.32
- },
- TPNG: {
- 0: 0,
- 2: 0.02,
- 6: 0.06
- },
- pensionAge: {
- 0: 60,
- 1: 55
- },
- VSkoef: 0.85
- }
- $(document).ready(function() {
- var pensionForm=$("form#pensionForm");
- var pensionFormLis=pensionForm.find(".qText");
- var persionFormInputs=pensionFormLis.find("input,select");
- var pensionCalcResult=$("#pensionCalcResult");
- var pensionParamsTable=$("#pensionParams");
- var socialPensionWarning=$("#socialPensionWarning");
- var enterParamsWarning=$("#enterParamsWarning");
- var enterGenderWarning=$("#enterGenderWarning");
- var enterBYWarning=$("#enterBYWarning");
- var alreadyPensioneer=$("#alreadyPensioneer");
- var wrongFee=$("#wrongFee");
- var pensionParamsCont=pensionParamsTable.find("tr");
- var calcColumn=pensionCalcResult.parent().parent();
- var rightBlockCont=$("#rightBlockCont");
- var leftColumn=pensionForm.parent();
- var calcParamsRow=$("#calcParamsCont").parent();
- var dialogCont=$("<div id='dialogCont'></div>").dialog({
- modal: true,
- autoOpen: false,
- resizable: false,
- maxWidth: 800
- });
- $(".helpRevealer").click(function(e) {
- e.preventDefault();
- dialogCont.html($("#"+$(this).attr("data-reveal-id")).html()).dialog({width:pensionForm.width()*0.8}).dialog("open");
- });
- persionFormInputs.filter("input[type='text']").blur(function() {
- $(this).val($(this).val().toString().replace(/,/,'.').replace(/[^\d.,]+/,''));
- });
- scrollBinder();
- $(window).resize(function() {
- positionRecalc();
- scrollBinder();
- });
- function scrollBinder() {
- if(calcColumn.position().top==calcColumn.parent().position().top) {
- $(document).bind("scroll",function(e) {
- return positionRecalc();
- });
- }
- else {
- $(document).unbind("scroll");
- rightBlockCont.css("top",0+"px");
- }
- }
- function positionRecalc() {
- var scrollBy=$(document).scrollTop()-parseInt(calcColumn.offset().top);
- var leftBlocksHeight=leftColumn.outerHeight(true)+calcParamsRow.outerHeight(true);
- if(scrollBy>0) {
- if(leftBlocksHeight-rightBlockCont.outerHeight(true)-scrollBy>0 || scrollBy<parseInt(rightBlockCont.css('top'))) {
- rightBlockCont.css("top",scrollBy+"px");
- }
- }
- else rightBlockCont.css("top",0+"px");
- }
- $("#performCalc").click(function(e) {
- e.preventDefault();
- pensionForm.children(".submitCont").hide();
- rightBlockCont.children(".submitCont").show();
- recalculateForm();
- });
- $("#performNewCalc").click(function(e) {
- e.preventDefault();
- recalculateForm();
- });
- pensionCalcResult.show();
- enterGenderWarning.hide();
- enterBYWarning.hide();
- socialPensionWarning.hide();
- pensionParamsTable.hide();
- alreadyPensioneer.hide();
- wrongFee.hide();
- function recalculateForm() {
- enterParamsWarning.hide();
- pensionParamsTable.hide();
- pensionCalcResult.show();
- enterGenderWarning.hide();
- enterBYWarning.hide();
- socialPensionWarning.hide();
- alreadyPensioneer.hide();
- wrongFee.hide();
- var genderInput=persionFormInputs.filter('[name="gender"]:checked');
- if(genderInput.length<1) {
- enterGenderWarning.show();
- }
- else {
- var birthDateVal=persionFormInputs.filter('#birthDate').val();
- if(!birthDateVal.match(/\d{4}/)) {
- enterBYWarning.show();
- }
- else {
- var gender=parseInt(genderInput.val());
- var today = new Date();
- var nowYear=today.getFullYear();
- var birthDate=0;
- birthDate=parseInt(birthDateVal);
- if(nowYear-birthDate<calcParams.pensionAge[gender]) {
- alreadyPensioneer.hide();
- var VS=0;
- VS=parseInt(persionFormInputs.filter('[name="yearsInArmy"]:checked').val());
- var Kvs=calcParams.VSkoef*VS;
- var STSDPV=Math.floor(parseFloat(persionFormInputs.filter('#careerLength').val()));
- var STSBP=0;
- STSBP=parseInt(persionFormInputs.filter('#retireWorkWithoutPension').val());
- STSBP=(STSBP>10?10:STSBP);
- var STS=STSDPV+STSBP;
- var D=0;
- var DO=0;
- D=parseInt(persionFormInputs.filter('#childrenCount').val());
- if(D<0) D=0;
- else if(D>3) D=3;
- var Kd=0;
- if(D>0) {
- DO=parseFloat(persionFormInputs.filter('#childrenVac').val());
- if(DO<0) DO=0;
- else if(DO>1.5) DO=1.5;
- Kd=DO*(D>0?0.85+(D>1?1.7+(D>2?(2.55):0):0):0);
- DO=DO*D;
- if(DO>4.5) DO=4.5;
- }
- var OS=STS+VS+DO;
- if(OS<15) {
- socialPensionWarning.show();
- }
- else {
- var ZP=parseFloat(persionFormInputs.filter('#fee').val());
- if(ZP<calcParams.MROT) {
- wrongFee.show();
- }
- else {
- var ZPM=calcParams.ZPS*calcParams.ZPMcoeff;
- var ZPTPs=(ZP<calcParams.MROT?calcParams.MROT:ZP);
- if(ZP<calcParams.MROT*2) ZP=calcParams.MROT*2;
- else if(ZP>ZPM) ZP=ZPM;
- var personTariff=0;
- personTariff=parseInt(persionFormInputs.filter('[name="pensionTariff"]:checked').val());
- var KNPG=calcParams.KNPG[personTariff];
- var KPKtrud=(ZP/ZPM)*KNPG*(STS*10);
- if(gender>0){ //для женщин от 30 до 40
- var over30=((OS-29)>0?(OS-29):0);
- over30=(over30>11?11:over30); //но не больше 10 лет или же 11?
- var Ks35=1*over30+(over30>5?4:0);
- } else { //для мужчин от 35 до 45
- var over30=((OS-34)>0?(OS-34):0);
- over30=(over30>11?11:over30); //но не больше 10 лет или же 11?
- var Ks35=1*over30+(over30>5?4:0);
- }
- var BPKop=0;
- var SPKop=0;
- if(STSBP>-1) {
- BPKop=calcParams.BPKop[STSBP];
- SPKop=calcParams.SPKop[STSBP];
- }
- var KPK=KPKtrud+Kvs+Kd+Ks35;
- var FP=calcParams.FBR*BPKop;
- var SP=(calcParams.FBR*BPKop)+(KPK*calcParams.CPK)*SPKop;
- var TG=calcParams.T-STSBP;
- var NP=0;
- if(OS>14) {
- NP=ZP*calcParams.TPNG[personTariff]*(STSDPV/TG);
- }
- var TPn=SP+NP;
- var TPs=calcParams.FBR+(((0.16*(ZPTPs>calcParams.ZPOSV2013?calcParams.ZPOSV2013:ZPTPs))*STS+832.8*(DO+VS))/TG); /*А тут точно 2*MROT<ZP<ZPM? */
- var R=TPn-TPs;
- var Rproc=Math.round((R/TPs)*100);
- var repCoefNF=TPn/ZP*100;
- var repCoefOF=TPs/(ZPTPs>calcParams.ZPOSV2013?calcParams.ZPOSV2013:ZPTPs)*100;
- pensionParamsCont.filter("#newCoefSumm").children().last().html((Math.round(KPK*100)/100).toString().replace(/\./,","));
- pensionParamsCont.filter("#pensionFromNewFormula").children().last().html((Math.round(TPn*100)/100).toString().replace(/\./,","));
- pensionParamsCont.filter("#pensionDPart").children().last().html((Math.round(NP*100)/100).toString().replace(/\./,","));
- pensionParamsCont.filter("#pensionIPart").children().last().html((Math.round(SP*100)/100).toString().replace(/\./,","));
- pensionParamsCont.filter("#personOS").children().last().html(OS);
- pensionParamsCont.filter("#pensionFromOldFormula").children().last().html((Math.round(TPs*100)/100).toString().replace(/\./,","));
- pensionParamsCont.filter("#calcDiff").children().last().html((Math.round(R*100)/100+" ("+Rproc+"%)").replace(/\./,","));
- pensionParamsCont.filter("#replacementCoefNF").children().last().html((Math.round(repCoefNF*100)/100+"%").replace(/\./,","));
- pensionParamsCont.filter("#replacementCoefOF").children().last().html((Math.round(repCoefOF*100)/100+"%").replace(/\./,","));
- pensionParamsTable.show();
- }
- }
- }
- else {
- alreadyPensioneer.show();
- }
- }
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement