Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

В разрабатываемой CRM требуется создать и запрограммировать несколько страниц пользовательского интерфейса.

Требуются знания:

PHP

MySQL

JS

Ajax

Bootstrap

Оценка работы - в проектных часах, стоимость проектного часа - приблизительно 10 у.е.

Актуальная задача для примера уровня сложности:

На странице нужно добавить блок заявок на выдачу.

Стиль вывода - стандартные бутстраповские блоки, жестких требований по дизайну нет.

Блок выдачи работает с таблицей заявок на перемещение, отбирая заявки с типом "Выдача".

Блок состоит из:

1. фильтров и кнопки их применения

Блок фильтров позволяет выбирать следующие опции:

- Пункт выдачи: выбор из списка пунктов выдачи (множественный), все

- Склад: выбор из списка складов (множественный), все

- Дата заказа: от и до, либо только от, либо только до.

- Статус: не обработан, отменен, добавлен в рейс, завершен, все

По умолчанию фильтр имеет такие значения:

Статус: не обработан

Пункт выдачи: все

Склад: все

Дата заказа: от сегодня и вперед

Рядом с кнопкой применения фильтрации должна быть и кнопка сброса.

Кнопка сброса возвращает фильтр к настройкам по умолчанию.

Применение и сброс фильтра должны происходить без перезагрузки страницы.

Выбранные значения фильтров должны быть сохранены в сессию и восстанавливаться при повторном входе на страницу до нажатия кнопки сброса или до уничтожения сессии.

2. таблицы элементов

Таблица заявок на выдачу имеет следующие столбцы:

- Столбец с чекбоксами

- Дата заказа и номер заявки

- Номер комплекта (груз)

- Склад (Наименование)

- Мастерская (Наименование)

- Комментарий

- Внешняя заявка (номер)

- Статус

- Столбец кнопок действия

Заявки в таблице всегда сортируются: по дате, внутри даты сортировка по складу, внутри склада - сортировка по мастерской.

В столбце кнопок действия предусмотрены две кнопки - информация и удаление. При нажатии на удаление - запрос подтверждения удаления.

По согласию - удаление заявки из таблицы.

Удаление должно происходить без перезагрузки страницы. После удаления заявка должна без перезагрузки страницы исчезнуть из списка.

При нажатии на информацию - попап с детальными данными заказа.

3. строка назначения рейса под таблицей

Заявкам, отмеченными чекбоксами, можно назначить рейс. Для этого пользователь должен выбрать:

1. Машину (выпадающий список объектов из таблицы машин)

2. Дату рейса (через календарик, по умолчанию стоит сегодня)

После ввода этих данных проверяется наличие рейсов на эту машину и дату. Если они есть, предлагается выбрать существующий рейс, либо добавить новый на эту дату. Если их нет, то предлагается

подтвердить создание нового рейса.

При отправке данных формы выполняются проверки по каждой из выбранных заявок:

1. Дата заказа должна быть позже или равна выбранной дате рейса

2. Номер комплекта из поля "груз" не находится в грузе в другой заявке с любым статусом в таблице заявок.

3. Статус заявки - новая

Заявки проходят обработку по отдельности. Если заявка не прошла проверку, она остается в списке, на экран выдается уведомление с номером заявки.

Прошедшие заявки добавляются в рейс.

При добавлении заявки рейс у заявки в базе проставляется номер рейса, статус трансфера меняется на "Добавлен в рейс".

Добавление в рейс происходит без обновления страницы, но с обновлением списка заявок в блоке, а также списка рейсов в таблице блока рейсов.

4 года назад
sobakaper
Иван 
37 летРоссия
9 лет в сервисе
Был
2 года назад
Выбранный исполнитель
cypher0909
Равиль 
35 летРоссия
12 лет в сервисе
Был
месяц назад
4 года назад
$40
3 дня
Равиль великолепно справился с задачей, рекомендую!
Сотрудничеством очень доволен, всё было на высоте.