Всем привет! После устройства на новую работу — приходится активно изучать новый стек технологий. В связи с этим, решил сделать небольшой проект на AngularJS.
Начнем с причины. Здесь все просто. Идем с друзьями, например в кафе или в магазин, покупаем целую кучу всяких штук. Расплачивается, обычно кто-нибудь один, потом остальные ему переводят деньги. В простых случаях чек достаточно ровно разделить на всех. Но, иногда, бывает что кого-нибудь это не устраивает. И тут начинается долгий расчет на бумажке кто сколько потратил.
Чтобы избавиться от необходимости это вручную считать, я создал свое простое приложение «Money Splitter«.

На картинке выше — получившееся приложение. У него есть всего 2 настройки:
- Помечать или нет новые строки в чеке как общие
- Количество знаков после запятой, для округления результатов расчетов
Можно добавлять новых пользователей, нажав на «+» в правом столбце. Лишних людей можно убрать, нажав на «-» возле имени. Для удобства, пользователям можно даже давать имена 😀 Можно добавлять новые товары/продукты, нажав на плюс в нижней строке. Лишние строки — тоже можно удалять.
В каждой строке есть поле для ввода суммы и переключатели напротив каждого пользователя. Если пользователь принимал участие в покупке этого товара, нужно в соответствующей ячейке это отметить. После отметки, все суммы автоматически пересчитываются.
Для удобства, в каждой строке я добавил 3 кнопки:
- Выбрать всех пользователей — помечает всех пользователей как участвующих в покупке соответствующего товара
- Сбросить выбор — товар помечается как никем не купленный
- Реверс — меняет участвующих и не участвующих в покупке товаров пользователей ролями
Исходники — свободно распространяемые. Если есть интересные идеи — жду их в комментариях здесь или в виде пулл-реквестов на гитхабе.