Программа распределения бонусных баллов. 3 000 р.

Все проекты
Прошло времени:   55 лет 5 месяцев 2 недели 4 дня 2 часа 41 минут
Требуется написать прогу на php (или любом другом языке) по распределению дивидендов (бонусов) по определенной формуле и алгоритму.

Основное требование: Использовать БД нельзя! Все на текстовых файлах. Не обсуждается!

В принципе - не обязательно на php, можно на чем угодно, хоть "екзешник" на выходе, но результат ее работы (таблица) должен быть легко помещаем на сервер "парой кликов" для обозрения участниками...

Описание.

Есть некое "общество", члены которого за свою деятельность поощряются бонусами (или дивидендами, называйте как хотите).
Т.е. список. Идентификация - по е-мейл и паролю. Новых членов регистрирует Админ (юзеры только могут только зайти посмотреть состояние своего счета).

При создании счета Админ заполняет определенные поля, жмет "создать" - по указанному емейлу отправляется письмо Щастья с рыбой-текстом, указанием доступа и бла-бла...

Периодически Админ по результатам работы раздает бонусы, которые должны распределяться между членами согласно списка.
При этом Список (очередность) формируется по времени внесения последнего изменения!
Т.е. самый свежий (вновь созданный или "отредактированный") оказывается во главе списка (условный №1), за ним - тот, кто раньше им был и т.д.
Распределение бонусов начинается всегда с самого "молодого" по времени создания или изменения.

У каждого члена списка есть "лимит" - т.е. предел, до которого он может получать бонусы. По достижению этой цифры его счет должен "закрываться" (т.е. в дальнейших дележах не участвовать), при этом ему направляется письмо с текстом - мол, все, счет закрыт.
И соответственно "текущий счет равен... ".

Распределение бонусов идет по определенной формуле:
Вносимое количество - это целое число (например 10000)
У каждого юзера есть ЛИМИТ (например 50000). и образуется (в результате создания новых счетов и редактирований) - МЕСТО В ОЧЕРЕДИ (списке).
При внесении бонусов так же задается определенный коэффициент-делитель ( КД - тоже целое число). (например 150)
/ - это "делить"
Формула: (ЛИМИТ (этого члена)/ № в очереди / КД ) + 1
(дробь после запятой отбрасываем)
Т.е. на количество бонусов прямо пропорционально влияет Лимит счета члена, и обратно пропорционально - его место в очереди.

Екземпл,

Есть 5 членов с лимитами 50.000, 50.000, 100.000, 20.000, 300.000 (точка тут просто обозначение тыщ...)

вносим бонус 10000. Начинаем дележ...

Берем первого (самого молодого) юзера с лимитом 50000, его очередь №1, делитель 150.
(50000 / 1 / 150) + 1 = 334 бонуса.
Прибавляем эти 334 к текущему счету члена и вычитаем их из 10.000 вносимых бонусов...
Проверяем, остались ли еще бонусы? Типа - на отрицательно ли стало?

Берем второго: 50000/2/150 +1 = 167 бонуса
Прибавляем на его текущий счет 167, и вычитаем 167 из остатка бонусов...
Проверяем остаток...

Третьего: *****/3/150 +1 = 223...
Четвертого: 20000/4/150 +1 = 34...
Пятого: *****/5/150 +1 = 401...

Если в конце списка бонусы еще есть - начинаем по второму кругу.
Если запас бонусов стал отрицательным, прекращаем дележ...
Отслеживать точно "ноль" остатка - не надо. Это достаточно валюнтаристски вносимая цифра, поэтому что 10000, что 10843 - разницы нет. Но будет кому то лишних 7 бонусов, хрен с ними.

Дизайна - интерфейса особого не нужно - прога исключительно утилитарная, ДСП, ну разве что какой то минимальный для юзеров - созерцать свои счета (лимит, текущий, текущий номер в очереди... ).
Можно форму для общения с админом... Рассылка сообщений админа по е-мейлам.

Не так что бы срочно, но ввиду примитивности задачи - дней 5?
Ваши предложения?

Ввиду незначительности суммы - оплата по сдаче Яндекс, Qiwi, !!! WebMoney исключены!
    Предложения фрилансеров
    Бюджет: 3 000 руб.
    Сроки: 5 часов
    razaevak [11.03.2014 12:44]  
    С любовью помогу Вам. если пожелаете!
    Видеть контакты заказчика и оставлять свои предложения по проекту могут только зарегистрированные и авторизованные пользователи.
    Зарегистрируйтесь или войдите на сайт под своим именем.

    Фриланс-биржа Web-lance.net предлагает огромные возможности по поиску работы как опытным специалистам в сфере интернет-бизнеса, так и новичкам, только постигающим основы заработка во всемирной сети. Здесь вы найдете сотни интересных вакансий в сфере дизайна, копирайтинга, программирования, верстки, контент-менеджмента и других сфер деятельности востребованных среди интернет-пользователей. Также, зарегистрировавшись на бирже, вы сможете разместить здесь свою анкету, указав в ней свою специализацию и контактные данные, что даст возможность потенциальным клиентам, связаться с вами для дальнейшего взаимовыгодного сотрудничества. Сайт удобно структурирован и разбит на тематические разделы, что позволяет даже неопытным заказчикам точно определять категорию, в которую стоит публиковать их проект, в тоже время, упрощая исполнителям поиск интересующих их вакансий. Кроме того на портале имеется раздел Блоги где зарегистрированные пользователи могут публиковать материалы, а также Форум на котором исполнители и заказчики смогут обсудить рабочие моменты, а также пообщаться на интересующие их темы. Приятной вам работы на Web-lance.net - бирже, где вы сможете найти лучших исполнителей и самые интересные проекты.

    Специалисты в области построения сайта, часто делают его "под ключ». В этом случае ими выполняется весь комплекс работ необходимых для создания сайта.