TheLim148 845f153092 init pm04 2 hafta önce
..
ComputerSalesApp 845f153092 init pm04 2 hafta önce
ComputerSalesApp.sln 845f153092 init pm04 2 hafta önce
README.md 845f153092 init pm04 2 hafta önce

README.md

ComputerSalesApp

WinForms-приложение для темы «Продажа компьютерной техники».

Подключение

Строка подключения находится в файле:

ComputerSalesApp/Data/ConnectionSettings.cs

Используется схема ryzhov_ka.

Роли

  • admin — видит все таблицы и может добавлять, изменять, удалять записи.
  • user — покупатель. Видит только свои данные, товары, свои заказы и позиции своих заказов.

Тестовые пользователи

  • admin / admin123
  • user / user123

Важное изменение логики пользователей

Учётная запись user теперь связана с покупателем через поле app_users.customer_id, а не с сотрудником. Это нужно для ограничения доступа: покупатель не должен видеть чужие заказы.

Порядок подготовки БД

Для новой базы:

  1. database/sql/01_schema.sql
  2. импорт CSV по database/csv/import_order.txt
  3. database/sql/03_pgcrypto_auth.sql
  4. database/sql/04_views.sql
  5. database/sql/05_after_import_identity.sql

Для уже созданной старой базы можно выполнить:

database/sql/06_patch_app_users_customer.sql

Исправление 2026-06-01

  • Исправлена ошибка Object reference not set to an instance of an object при поиске заказов.
  • Отчёт больше не запускается автоматически при открытии приложения: пользователь сам нажимает Найти.
  • Настройка колонок DataGridView стала безопасной: отсутствующие или пустые колонки больше не вызывают падение.
  • Левое меню расширено, чтобы названия разделов меньше обрезались.

Исправление тестовых покупателей

В тестовых данных покупатели и сотрудники теперь разные люди. Если база уже была создана раньше, выполните в pgAdmin:

-- database/sql/07_fix_test_customer_names.sql

Скрипт меняет только ФИО и контактные данные покупателей, структуру БД не трогает.

Проверенная последовательность подготовки БД

  1. Выполнить database/sql/01_schema.sql.
  2. Импортировать CSV из database/csv по порядку из import_order.txt.
  3. Выполнить database/sql/03_pgcrypto_auth.sql.
  4. Выполнить database/sql/04_views.sql.
  5. Выполнить database/sql/05_after_import_identity.sql.
  6. Выполнить database/sql/08_security_audit.sql.

Если база уже создана раньше, без полного пересоздания можно выполнить: 06_patch_app_users_customer.sql, затем 04_views.sql, затем 08_security_audit.sql.