@startuml
skinparam shadowing false
skinparam classFontSize 11
skinparam dpi 300
skinparam monochrome true
package "Справочники" {
class Номенклатура {
**+ ID** : Integer <<PK>>
+ Наименование
+ Артикул
+ ВидНоменклатуры : ВидыНоменклатуры <<FK>>
}
class ПричиныБрака {
**+ ID** : Integer <<PK>>
+ Наименование
+ Описание
}
class Подразделения {
**+ ID** : Integer <<PK>>
+ Наименование
+ ЭтоГруппа
}
class Склады {
**+ ID** : Integer <<PK>>
+ Наименование
+ ТипСклада
}
class Сотрудники {
**+ ID** : Integer <<PK>>
+ ФИО
+ Должность
}
class ВидыНоменклатуры {
**+ ID** : Integer <<PK>>
+ Наименование
}
}
package "Документы" {
class ПоступлениеПродукции {
**+ ID** : Integer <<PK>>
+ Номер : String
+ Дата : Date
+ Подразделение : Подразделения <<FK>>
+ Склад : Склады <<FK>>
+ Сотрудник : Сотрудники <<FK>>
--
+ ТЧ Продукция
}
class ВыявлениеБрака {
**+ ID** : Integer <<PK>>
+ Номер : String
+ Дата : Date
+ Подразделение : Подразделения <<FK>>
+ Склад : Склады <<FK>>
+ Сотрудник : Сотрудники <<FK>>
--
+ ТЧ Брак
+ ПечатнаяФорма()
+ QRКод : Картинка
}
}
package "Регистры" {
class БракПродукции {
**+ Запись** : Integer <<PK>>
+ Период : Date
+ Подразделение : Подразделения <<FK>>
+ Склад : Склады <<FK>>
+ Номенклатура : Номенклатура <<FK>>
+ ПричинаБрака : ПричиныБрака <<FK>>
+ Количество : Decimal
}
}
package "Отчеты" {
class ВедомостьПоБраку {
+ Период
+ Группировка (Подразделение, Номенклатура, ПричинаБрака)
+ Итоги по количеству
}
class АнализБракаПоПричинам {
+ Период
+ Диаграмма по причинам брака
}
class БракПоПодразделениям {
+ Период
+ Группировка по подразделениям
}
}
package "Обработки" {
class ЗагрузкаИзExcel {
+ ЗагрузитьНоменклатуру()
+ ЗагрузитьПричиныБрака()
}
class ГенерацияQRКода {
+ Сгенерировать()
+ СохранитьВФайл()
}
}
' ==================== Связи ====================
Номенклатура "1" --> "1" ВидыНоменклатуры : ВидНоменклатуры
ВыявлениеБрака "1" *-- "0..*" Номенклатура : Брак.Номенклатура
ВыявлениеБрака "1" *-- "0..*" ПричиныБрака : Брак.ПричинаБрака
ПоступлениеПродукции "1" --> "0..*" Номенклатура : Продукция.Номенклатура
БракПродукции --> Подразделения
БракПродукции --> Склады
БракПродукции --> Номенклатура
БракПродукции --> ПричиныБрака
' Движения
ВыявлениеБрака ..> БракПродукции : формирует движения
' Отчеты
ВедомостьПоБраку ..> БракПродукции : использует
АнализБракаПоПричинам ..> БракПродукции : использует
БракПоПодразделениям ..> БракПродукции : использует
note right of ВыявлениеБрака
<b>Основной документ</b>
Печать + QR-код
end note
note right of ЗагрузкаИзExcel
Импорт из Excel
с поддержкой видов номенклатуры
end note
@enduml