|
|
|
| Всем доброго времени суток, а милых дам и всех тех, кто заправляет джинсы в сапоги, с наступающими праздниками.
Помогите как-нить разобраться.
Проблема такая:
Есть некий план. Показатели этого плана хранятся в таблицах. С планом могут работать три уровня пользователей: менеджер, нач отдела, шеф.
Каждый пользователь имеет соответствующую роль и логин , прописанные в базе.
Теперь ситуация: менеджер внес в план некий показатель = 10.
нач отдела посмотрел на показатель и исправил его на 20. шеф посмотрел и исправил его на 25.
Как можно реализовать хранение информации о показателях с тем, чтобы нижестоящие граждане видели только исправленные вышестоящими гражданами цифры и при этом не могли их менять. Если изменение разрешено вышестоящими гражданами, то нижестоящие могут менять цифры.
Если вышестоящие граждане не меняли показатели, то нижестоящие видят те показатели, которые они внесли и могут их свободно менять. | |
|
| |
|
|
|
| хм. тогда на шефов ложится обязанность каждый раз менять показатели (раз уж поменяли хоть один разок)
так?
*
самое простое что в голову приходит: это завести поле в таблице показателей IDOperatora, добавившего или изменившего запись + дата+время, ну и по нему потом ориентироваться при раздаче прав на запись | |
|
| |
|
|
|
| Не обязательно. Шефы могут согласиться с показателями нижестоящих.
Дописано:
Кстати, этот вариант я не указал. Если после изменения шеф разрешил менять подчиненным показатели, и шеф согласился с показателями, то подчиненные в дальнейшем могут эти показатели менять ( по необходимости ) | |
|
| |
|
|
|
| насколько я понял. если уж шеф хоть раз пменял значение показателя, то сменить его потом сможет сам шеф | |
|
| |
|
|
|
|
то сменить его потом сможет сам шеф
|
или разрешить изменения - такую возможность нужно предоставить в программе. | |
|
| |
|
|
|
| ну тогда к тому что я написал:
самое простое что в голову приходит: это завести поле в таблице показателей IDOperatora,
добавившего или изменившего запись + дата+время, ну и по нему потом ориентироваться
при раздаче прав на запись
|
нужно дописять
добавить еще поле -признак (разр/запр) изменение
итого будет три поля: IDOperatora; DateTime; flgEdit | |
|
| |
|
|
|
| В таком случае нужно делать два флага - разрешает менять шеф и разрешает менять нач отдела. А менеджеру выводить информацию о том, кто изменил показатели, чтобы знал к кому обращаться за разрешением на изменения.
Сэнькс.
ЗЫ С учетом того, что в отделе может быть несколько начальников, и каждый будет менять показатели, то манагеры в конце концов застреляться. Но это уже их проблемы. | |
|
| |
|
|
|
|
В таком случае нужно делать два флага - разрешает менять шеф и разрешает менять нач отдела
|
не торопитесь :)
как только кто-то сменит положение галочки flgEdit, поле IDOperatora изменится. вот и будет видно кто разрешил/запретил | |
|
| |
|
|
|
| Вааще то - да.
| |
|
| |
|
|
|
|
ой... да!!!
аж морда ужо болит. ну ниччо. нам бы до вечера продержаться | |
|
| |
|
|
|
| Вариант:
Таблица истории изменений значений показателя:
Код
Значение
Дата(время) - добавления записи (автоматом)
КодАвтораИзменения - (текущего пользователя)
УровеньПользователей - допущенных к добавлению новых значений. (При добавлении не может быть выше уровня текущего пользователя.)
Для определения текущего значения берем запись с максимальной датой(временем).
Изменения и удаления записей не допускаются, только добавления.
Перед добавлением, сравниваем УровеньПользователей текущего значения с УровнемТекущегоПользователя.
Если УровнемТекущегоПользователя>= УровеньПользователей текущего значения - разрешаем добавление. В противном случае - отказать.
Если текущего значения нет - разрешить добавление всем.
Плюс - видна история борьбы за значение. | |
|
| |
|
|
|
| А ещё прихоит на ум - извините -
добавить в таблицу поле логическое - с наименованием - заверено шефом.
Вот это поле (галочка заверено) может менять только начальник.
===========================================
Значение параметра менять может любой, а заверить галочкой - может только шеф.
============================================
Меняет значение сотрудник - пропадает галочка
пока шеф не заверит галочкой - не действует значение.
---------------------------------------------------------------------------------
Меняет значение шеф - шеф сразу и заверит галочкой.(если её нет)
если галочка стоит - тогда при смене значения шефом и галочку убирать не нуна - пусть стоит.
==================================================
можно конечно и дату и время - но это уже становиться лишним.
------------------------------------------------
Показатель един для всех
===========================================
Для шефа списочек на подпись - табличка:
1 параметр -
2значение -
3не заверено -
он рассмтрит и подпишет, либо изменит значение и галочка автоматом проставится. | |
|
| |
|
|
|
|
|
|
|
А где же, извините, таблицы лежат????
|
На сервере. Это проект ASP.NET | |
|
| |
|