суббота, 6 января 2018 г.

Калькулятор зарплаты

В Казахстане, как и в России, а также как и в других странах, из зарплаты забираются налоги, и разнятся только проценты. В Казахстане подоходный налог составляет 10% от заработной платы. Для того чтобы рассчитать какая сумма должна быть выдана на руки, нужно взять полную заработную плату, и от нее отнять 10%. Но дело в том, что кроме налога из зарплаты забираются также пенсионные взносы, а могут быть еще и профсоюзные. Так же для уменьшения налоговых отчислений из полной заработной платы отнимается еще и минимальная заработная плата. То есть 10% подоходного берется от полной суммы минус пенсионный, минус МЗП. Для того чтобы в очередной раз попрактиковаться в javascript, я накидал очередной калькулятор

Общая зарплата:
МЗП:




Налог:
В пенсионный:
В профсоюз:
Зарплата на руки:

Далее идет пояснение как он работает на javascript. Для того чтобы пересчет осуществлялся на лету во все элементы вставляется конструкция onchange="calc()", которая вызывает скрипт calc.
Чекбокс с профессиональными взносами можно включать и выключать щелкая не только на квадрате но и по тексту, это позволяет сделать конструкция label
<input type="checkbox" id="prof" onchange="calc()">
<label for="prof" >Профсоюзные взносы 1%</label> </br>
Так же label можно использовать и для радиокнопок, каждую из них заключают в тег, без указания for (так как он используется для элементов с конкретным id). В самом скрипте переменной checkbox присваивается document.querySelector("#prof");
var checkbox = document.querySelector("#prof");
а потом появляется конструкция, которая мне очень нравится - это условие, которое заменяет стандартную конструкцию с if
profzp = checkbox.checked ? fullzp*0.01 : 0;
Если чекбокс отмечен, то profzp = fullzp*0.01, а иначе profzp = 0;
Есть много интересных конструкций, которые можно использовать есть в статье на хабре https://habrahabr.ru/post/245731/
Проверить работу скрипта можно в онлайн редакторе javascript https://js.do/samples/calculator

1 комментарий:

  1. void(
    (function(){
    var window_open = window.open('','calculator'+new Date().getTime(),'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=450,height=300');
    var document_open = window_open.document;
    document_open.open();
    // calculator_html is taken from ostermiller.org
    document_open.write("$calculator_html");
    })()
    )

    ОтветитьУдалить