PHP + MySQL база

Игорь18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
31.03.2007

Надо сделать базу данных, php+MySQL

При желании, победителю конкурса будет дан Access-прообраз заказанной базы (примерный, без деления Контрагентов по проектам). Скриншот прикреплен.

Существует php+MySQL база "Задания исполнителям". Желательно выполнить работу в виде дополнения к существующей базе. Из существующей базы следует взять систему доступа к проектам и редактирование справочников. Выполнение задачи в виде дополения к существующей php+MySQL базе - под вопросом, будет обсуждаться.

Если хотите делать проект с нуля, с использованием framework'ов, просьба указать фрэймворк.

По бюджету - не очень представляю, сколько это здесь может стоить. Бюджет указан $250, но чем меньше сумма тем лучше :).

================================================

Структура данных:

[Контрагент]:

КомпанияID

СотрID (наш сотрудник, отвечающий за фирму)

ВедущийСотруID (наш начальник, отвечающий за фирму)

*Название

Вид_деятельности_ID (справочник)

Источник_информации_ID (справочник)

Адреса, телефоны

www, email

Станция_метро_ID (справочник)

Примечания

Дата_перезвонить (обновляется на основании данных их таблицы [Контакты])

Была_презентация (логический)

Делают_заказ (логический)

Не_заинтересованы (логический)

Начальник_должен_обратить_внимание (логический)

[Наши_сотрудники]:

СотрID

*login

*ФИО

[Контакты]:

КомпанияID

КонтактID

*Дата (дата+время)

*C кем (текст, при вводе возможность выбрать из списка сотр. орг., либо набрать ФИО на клавиатуре)

*Наш_сотрудникID

Дата_перезвонить (дата+время, может быть не заполнена)

*Содержание_разговора

Примечания

[Контрагента_сотрудники]:

КомпанияID

КСотрID

*ФИО

Должность

Телефоны

email

Явл_основным_контактом (логический)

Во всех таблицах должны быть поля:

Созд_Login

Созд_Время

Посл_изм_Login

Посл_изм_время

Эти поля должны заполняться автоматически.

Для каждого контрагента есть поле [Дата перезвонить], она вычисляется автоматически. Берется самый последний контакт с данным контрагентом max ([Контакты].[КонтактID]) Where [КомпанияID]=***, и берется [Дата_перезвонить] из этого контакта.

Существуют таблицы [История_Контрагентов] и [История_Контрагента_сотрудники]. При удалении либо изменении записи в таблице [Контрагент]/[Контрагента_сотрудники] в таблицу [История_***] помещается предыдущая версия записи.

================================================

Пользователь

1. Ставит фильтр на те фирмы которые ему нужны. Варианты фильтрации:

1.1 [Дата_перезвонить] >=

1.2 [Дата_перезвонить]

1.3 Не было звонков (контактов)

1.4 [Вид_деятельности_ID] (возможность выбрать несколько видов деятельности)

1.5 [Источник_информации_ID]

1.6 [Не_заинтересованы] = Да/Нет/Все

1.7 [Делают_заказ] = Да/Нет/Все

1.8 [Была_презентация] = Да/Нет/Все

1.9 [СотрID]

1.10 [ВедущийСотруID]

1.11 [Начальник_должен_обратить_внимание] = Да/Нет/Все

2. Выбирает фирму из списка отфильтрованных, просматривает и редактирует данные об этой фирме.

3. Либо Админ может экспортировать список отфильтрованных фирм в Excel.

Группы доступа:

Админ - может все

Локальный пользователь - Может добавлять записи в таблицу [Контакты], может добавлять/удалять/редактировать данные в таблицах [Контрагент] и [Контрагента_сотрудники]. ! При этом имеет доступ только к фирмам, где указан в качестве ответственного ([СотрID]). После установки флажка [Делают_заказ] теряет доступ удалять/редактировать к таблицам [Контрагент] и [Контрагента_сотрудники], за исключением доступа к галочке [Начальник_должен_обратить_внимание].

При редактировании данных о фирме, для ввода нового контакта, либо нового сотрудника фирмы, пользователь не должен загружать страницу заново. Т.е. желательно переключать видимость форм ввода новой информации при нажатии на соотв. кнопку на странице просмотра/редактирования инф. о фирме.

Есть еще "отчет по звонкам" - ставится фильтр на звонки, выводится список звонков удовлетворяющих фильтру. Если надо, могу выслать скриншоты.

================================================

Проекты

Выше описан простой случай, случай одного проекта. Для нескольких проектов,

Добавляется таблица [Проекты]

ПроектID

Название_проекта

Изменяется система доступа

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

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

Пользователь глобальный - то же что просто пользователь, может выбирать проект с которым работает.

Пользователь локальный - то же что просто пользователь, но работает только в рамках своего проекта.

У каждого проекта свои значения справочников и свои списки контрагентов.

Добавляется таблица [Справочная_информация_по_проекту]

ПроектID

ДокументID

Название_документа

html_текст_документа

прикрепленный_документ (либо рисунок)

Админы могут добавлять / удалять записи из [Справочная_информация_по_проекту]

Пользователи могут выбирать документ, после чего на экране отображается [html_текст_документа], если [прикрепленный_документ] имеет расширение .gif, .jpg, .bmp, .png то прикрепленный документ отображается на экране. Пользователь может загрузить [прикрепленный_документ]

==========================================

Заявки фрилансеров