输出将用于进一步计算的总数 - JavaScript

时间:2015-08-12 04:49:37

标签: javascript forms calculator

如何在“单位成本”,“财务百分比”和“运费成本/单位”下添加输入数据,并以“单位到岸成本价格”输出?这是一个用于说明http://s18.postimg.org/b1avx0omx/retail_calc.png

的屏幕截图

这是当前提供的脚本。

<script>
    var gstPercent = 10.0;

    function retailToolkit_UpdateRetailCalculator()
    {
        var sellPrice = retailToolkit_ValidateFloatInput('txtRetailCalculatorSellPrice');
        var costPrice = retailToolkit_ValidateFloatInput('txtRetailCalculatorCostPrice');
        var margin = retailToolkit_ValidateFloatInput('txtRetailCalculatorMargin');
        var grossMargin = retailToolkit_ValidateFloatInput('txtRetailCalculatorGrossMargin');
        var inputCount = 0;
        if (!isNaN(sellPrice))
            inputCount++;
        if (!isNaN(costPrice))
            inputCount++;
        if (!isNaN(margin))
            inputCount++;
        if (!isNaN(grossMargin))
            inputCount++;
        if (inputCount == 2)
        {
            var sellPriceExGST;
            if (isNaN(sellPrice))
            {
                if (isNaN(costPrice))
                {
                    //we have margin & grossMargin
                    sellPriceExGST = grossMargin / (margin / 100.0);
                    costPrice = sellPriceExGST - grossMargin;
                    sellPrice = sellPriceExGST + (sellPriceExGST * (gstPercent / 100));
                }
                else if (isNaN(margin))
                {
                    //we have costPrice & grossMargin
                    sellPriceExGST = costPrice + grossMargin
                    sellPrice = sellPriceExGST + (sellPriceExGST * (gstPercent / 100));
                }
                else
                {
                    //we have costPrice & margin
                    sellPriceExGST = (costPrice / (100 - margin)) * 100;
                    sellPrice = sellPriceExGST + (sellPriceExGST * (gstPercent / 100));
                }
            }
            else
                sellPriceExGST = (sellPrice / (100 + gstPercent)) * 100;
            //once we reach here we now definitely have sellPriceExGST & sellPrice
            if (isNaN(costPrice))
            {
                if (!isNaN(grossMargin))                                //we have sellPriceExGST & grossMargin
                    costPrice = sellPriceExGST - grossMargin;
                else
                {
                    //we have sellPriceExGST & margin
                    grossMargin = sellPriceExGST * margin / 100;
                    costPrice = sellPriceExGST - grossMargin;
                }
            }
            if (isNaN(grossMargin))
                grossMargin = sellPriceExGST - costPrice;
            if (isNaN(margin))
                margin = (grossMargin / sellPriceExGST) * 100;
            document.getElementById("spanRetailCalculatorSellPrice").innerHTML = FormatCost(sellPrice, "$", 2);
            document.getElementById("spanRetailCalculatorCostPrice").innerHTML = FormatCost(costPrice, "$", 2);
            document.getElementById("spanRetailCalculatorMargin").innerHTML = FormatCost(margin, "", 1) + "%";
            document.getElementById("spanRetailCalculatorGrossMargin").innerHTML = FormatCost(grossMargin, "$", 2);
        }
        else
        {
            document.getElementById("spanRetailCalculatorSellPrice").innerHTML = "";
            document.getElementById("spanRetailCalculatorCostPrice").innerHTML = "";
            document.getElementById("spanRetailCalculatorMargin").innerHTML = "";
            document.getElementById("spanRetailCalculatorGrossMargin").innerHTML = "";
        }
    }

    function retailToolkit_ValidateFloatInput(inputCtrlId)
    {
        var ctrl = document.getElementById(inputCtrlId);
        var flt = parseFloat(ctrl.value);
        if (isNaN(flt))
            ctrl.value = '';
        else
        {
            var corrected = "";
            for (var i = 0; i < ctrl.value.length; i++)
            {
                if ((ctrl.value[i] >= '0' && ctrl.value[i] <= '9') || ctrl.value[i] == '.')
                    corrected += ctrl.value[i];
            }
            ctrl.value = corrected;
        }
        return flt;
    }
</script>`

,HTML在下面。

            <tr>
                <td>Unit Landed Cost Price (excluding GST), including finance and freight charges</td>
                <td>$</td>
                <td><span id="spanRetailCalculatorCostPrice"></span><br />
                </td>
                <td></td>
            </tr>
            <tr>
              <td>
              <table>
              <tr>
              <td>Unit Cost</td>
              <td>Finance %</td>
              <td>Freight Cost/Unit</td>
              </tr>
              <tr>
              <td><input type="text" onkeyup="return retailToolkit_UpdateRetailCalculator()" id="txtRetailCalculatorCostPrice" /></td>
              <td><input type="text" onkeyup="return retailToolkit_UpdateRetailCalculator()" id="txtRetailCalculatorFinancePercentage" /></td>
              <td><input type="text" onkeyup="return retailToolkit_UpdateRetailCalculator()" id="txtRetailCalculatorFreightCost" /></td>
              </tr>
              </table>
              </td>
            </tr>
            <tr>

0 个答案:

没有答案