JavaScript salary tool

来源:互联网 发布:樱井知香喷泉图片解 编辑:程序博客网 时间:2024/06/10 18:42

This tool can be used to calculate the payment after tax & social found.

// Copyright : Bian Junjie
<!DOCTYPE html><html><head><style  type="text/css">       td{font-size:12px}       table, td{border-width : 1px;border-color : #60FFD3;border-style : solid;  border-collapse:collapse;  border-spacing:0px}</style><script type="text/javascript"src="Common_JS.js"></script></head><body><table> <tr>   <td class="ft">     税前工资:   </td>   <td>     保险基数:   </td>   <td>     <input id="Sub" type="button" value="submit" onClick="Main_process();">   </td>   <td>     <input id="Clr" type="button" value="reset" onClick="Emp_prm();">   </td> </tr> <tr>   <td>     <input type="text" id="Insalary">   </td>   <td>     <input type="text" id="Inbase">   </td>   <td colspan=2>   </td> </tr> <tr>   <td colspan=4 id="outMsg">请输入工资、社保基数   </td> </tr></table></body><script type="text/javascript">//社保、公积金统一基数    var ENSRATE = 0.205;//    var ENSRATE = 0.105;    var CORENSRATE = 0.45;    var TAXBASE = 3500;    var Msg;    var myWindow;function Main_process(){    var preSalary = commFunction.getValue("Insalary");    var ensBase = commFunction.getValue("Inbase");    if(1 == commFunction.empCheck(preSalary) || 1 == commFunction.empCheck(ensBase)){       commFunction.writeMsg("outMsg",commFunction.EMPTYVALUE);       return;    }    if(1 == commFunction.NumCheck(preSalary) || 1 == commFunction.NumCheck(ensBase)){       commFunction.writeMsg("outMsg",commFunction.NONNUM);       return;    }    preSalary = parseFloat(preSalary);    ensBase = parseFloat(ensBase);    var urtlSalary = 0;    var ensTax = 0;//    var hFound = 3000;    writeHead();    while(1){       if(ensBase - preSalary >=0.0) break;       ensTax = ensCalc(ensBase);       urtlSalary = uSalCalc(ensTax,preSalary);       writeVaule(preSalary,ensBase,urtlSalary,ensTax);       ensBase += 500;    }    writeEnd();}function ensCalc(ensbase){    return ensbase * ENSRATE;}function uSalCalc(ens,pSal){    var usal = pSal - ens - TAXBASE;    var outSal = 0;    while(1){       if(usal <= 0){            outSal = pSal - ens;            break;        }        if(usal <= 1500.00){            outSal = pSal - ens - usal*0.03;            break;        }        if(usal <= 4500.00){            outSal = pSal - ens - usal*0.10 + 105;            break;        }        if(usal <= 9000.00){            outSal = pSal - ens - usal*0.20 + 555;            break;        }        if(usal <= 35000.00){            outSal = pSal - ens - usal*0.25 + 1005;            break;        }else{            break;        }    }    return outSal;}function Emp_prm(){    document.getElementById("Insalary").value = "";    document.getElementById("Inbase").value = "";    document.getElementById("outMsg").innerHTML = "请输入工资、社保基数";}function writeHead(){   myWindow = window.open('','','width=850,height=500,scrollbars=yes,resizable=no,location=yes');   myWindow.document.write("<html><head><meta charset=\"gbk\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"CommonCSS.CSS\"/><title>社保、工资计算</title></head><body>");   myWindow.document.write("<table><tr><th>税前工资</th><th>保险基数</th><th>缴纳社保</th><th>所得税</th><th>税后工资</th><th>公积金</th><th>工资+公积金</th><th>公司缴纳社保数</th></tr>");}function writeVaule(preSal,eB,realSal,eT){   myWindow.document.write("<tr><td>"+preSal.toFixed(2).toString()+"</td><td>"+eB.toFixed(2).toString()+"</td><td>"+eT.toFixed(2).toString()+"</td><td>"+(preSal-eT-realSal).toFixed(2).toString()+"</td><td>"+realSal.toFixed(2).toString()+"</td><td>"+(eB*0.1).toFixed(2).toString()+"</td><td>"+(eB*0.1*2 + realSal).toFixed(2).toString()+"</td><td>"+(eB*CORENSRATE).toFixed(2).toString()+"</td></tr>");}function writeEnd(){   myWindow.document.write("</table></body></html>");}</script></html>

Outer JavaScript:

//This is collection with common useful functions  var commFunction = {        EMPTYVALUE:"输入不能为空",        NONNUM:"不能输入非数字",        empCheck: function(InputValue){                    if(InputValue.length==0 || InputValue.length == undefined){                        return 1;                    }else{ return 0;}                  }        ,        NumCheck: function (InputValue){                    if(isNaN(parseInt(InputValue))){                              return 1;                    }else                     return 0;                   }        ,        getValue: function(id){                     return document.getElementById(id).value;                  }        ,        writeMsg: function(id,Msg){                     document.getElementById(id).innerHTML = Msg;                  }         ,        Zerotrim: function(InputValue){                     for(var i= 0;;){                        if(parseInt(InputValue.charAt(i)) == 0)                            InputValue = InputValue.substr(i+1);                        if(parseInt(InputValue.charAt(i)) != 0)                    break;                     }                    // input like '000' will be empty value after trim                    // give default value make sure no empty value return                    if(InputValue.length == 0)                        InputValue = "0";                    return InputValue;                  }  }

Result: from IE11



0 0
原创粉丝点击