Необходимо реорганизовать справочники физ. и юрлиц - информация должна храниться в client, client_fl, client_ul

Bug #567768 reported by Alexey Mikhaylovskiy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cbadmin
Fix Released
High
Unassigned

Bug Description

Мы этот вопрос обсуждали, если что-то нужно с моей стороны - я готов.

Related branches

McSeem (mcseemz)
Changed in cbadmin:
importance: Undecided → Medium
status: New → Confirmed
milestone: none → stage10
McSeem (mcseemz)
Changed in cbadmin:
importance: Medium → High
Revision history for this message
McSeem (mcseemz) wrote :

Логика будет следующая:
Справочники редактируют client_ul/fl
В заявке выбирается client_ul/fl.
В момент первого сохранения создается reservation_ul/fl, прописывается в заявке.
В момент смены client_ul/fl в заявке данные из него копируются в поля контактов заявки (те, которые есть).
В момент сохранения заявки, если её client_ul/fl отличается от выбранных, то текущие reservation_ul/fl удаляются, создаются новые.

McSeem (mcseemz)
Changed in cbadmin:
status: Confirmed → In Progress
Revision history for this message
Alexey Mikhaylovskiy (mikhaylovskiy) wrote :

Логика хранения данных такая:
1. В таблице client хранятся общие данные (контактный телефон, эл. почта, факс, ICQ, ...).
2. В таблице client_fl хранятся данные, специфичные для физлиц.
3. В таблице client_ul хранятся данные, специфичные для юрлиц.

Теперь что касается заявок, которые делаются в web-интерфейсе:
План А: клиент НЕ логинится в личный кабинет.
1. Выбирается рейс, количество пассажиров, тип клиента (физик/юрик).
2. Открывается окно ввода информации по заявке.
3. По завершении процесса бронирования клиентская информация "рассовывается" по reservation/reservation_fl/reservation_ul. Справочники клиентов к работе не привлекаются, в заявке ИД клиента не проставляется.

План Б: клиент ЛОГИНИТСЯ в личный кабинет.
1. открывается справочник client, затем client_fl/client_ul, вся информация о клиенте подтягивается в сессионные переменные (в массив $_SESSION).
2. Выбирается рейс, количество пассажиров, тип клиента (физик/юрик).
3. Открывается окно ввода информации по заявке.
4. В поля информации о клиенте по умолчанию подставляется информация из сессионных переменных (сиречь - из профиля пользователя). При необходимости эти поля редактируются - вдруг клиент захочет указать в своих данных что-то отличное от данных из профиля.
5. По завершении процесса бронирования клиентская информация (та, что была введена в форме заявки, напрямую из справочника на данном этапе уже не подтягивается!!!) "рассовывается" по reservation/reservation_fl/reservation_ul. В заявку проставляется ИД клиента.

Собственно, все.

При редактировании справочников клиентов изменения, вносимые в справочники, НИКАК НЕ ДОЛЖНЫ отражаться на уже существующих заявках - никакого обновления полей, касающихся информации о клиенте, обновлять в заявках не надо!

Revision history for this message
Alexey Mikhaylovskiy (mikhaylovskiy) wrote :

Ну и, соответственно, если заявка делается через админку, логика внесения информации о клиенте в заявку такая:

1. Можно выбрать клиента из справочника. Тогда во все поля, касающиеся информации о клиенте, подставляются значения из справочника клиентов, причем эти поля могут быть отредактированы. Соответственно, в заявку прописывается ИД клиента.

2. Можно просто заполнить все поля вручную. ИД клиента в этом случае в заявку не прописывается.

Другими словами, заявка связана со справочником клиентов через ИД клиента, но поля клиента в заявке никак не коррелируют с полями в справочнике. Справочники по сути используются только для того, чтобы подставить значения по умолчанию в поля клиента при создании заявки и для прописывания ИД клиента в заявке. Это верно и для web-части и для админки.

Revision history for this message
Alexey Mikhaylovskiy (mikhaylovskiy) wrote :

Логика хранения данных такая:
1. В таблице client хранятся общие данные (контактный телефон, эл. почта, факс, ICQ, ...).
2. В таблице client_fl хранятся данные, специфичные для физлиц.
3. В таблице client_ul хранятся данные, специфичные для юрлиц.

По аналогии организовано хранение данных в заявках:
1. В таблице reservation хранятся общие данные клиента по заявке (контактный телефон, эл. почта, факс, ICQ, ...).
2. В таблице reservation_fl хранятся данные клиента, специфичные для физлиц (если клиент - физлицо).
3. В таблице reservation_ul хранятся данные клиента, специфичные для юрлиц (если клиент - юрлицо).

При вводе новой заявки (или редактировании уже существующей) обязательными для заполнения являются следующие поля:

1. Телефон.
2. E-mail.

Если клиент - физик, то еще и:
3. Фамилия
4. Имя.

Если клиент - юрик, то еще и:
3. Название организации.
4. ИНН.
5. КПП.
6. Юр. адрес.
7. Название банка.
8. БИК.
9. Расчетный счет.
10. Корреспондентский счет.

McSeem (mcseemz)
Changed in cbadmin:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.