67 lines
3.3 KiB
Go
67 lines
3.3 KiB
Go
package models
|
|
|
|
const (
|
|
StatusWarehouse = "Склад"
|
|
StatusSawing = "Пила"
|
|
StatusEdging = "Кромка"
|
|
StatusEdgingHand = "Кромка ручная"
|
|
StatusCNCDelta = "ЧПУ Дельта"
|
|
StatusCNCTrepan = "ЧПУ Трепан"
|
|
StatusHandDrilling = "Присадка на ручном станке"
|
|
StatusSawHand = "Циркулярная пила"
|
|
StatusAssembly = "Сборка"
|
|
StatusAbrasive = "Шлифовка"
|
|
StatusDrying = "Сушка после малярки"
|
|
StatusPainting = "Малярная камера"
|
|
StatusGlass = "Стекольный цех"
|
|
StatusMetalSelf = "Сварочный цех"
|
|
StatusPaintingOutsource = "Порошковая покраска"
|
|
StatusAdv = "Рекламный участок"
|
|
StatusLight = "Светодиодный участок"
|
|
StatusSemiFinished = "Упаковка полуфабриката"
|
|
StatusFinished = "Упаковка изделия"
|
|
StatusShipment = "Отгружено на монтаж"
|
|
StatusInstallation = "Монтаж оборудования"
|
|
StatusRejected = "Отбраковано/сломано"
|
|
)
|
|
|
|
func IsValidStatus(s string) bool {
|
|
switch s {
|
|
case StatusWarehouse, StatusSawing, StatusEdging, StatusEdgingHand,
|
|
StatusCNCDelta, StatusCNCTrepan, StatusHandDrilling, StatusSawHand,
|
|
StatusAssembly, StatusAbrasive, StatusDrying, StatusPainting,
|
|
StatusGlass, StatusMetalSelf, StatusPaintingOutsource, StatusAdv,
|
|
StatusLight, StatusSemiFinished, StatusFinished, StatusShipment,
|
|
StatusInstallation, StatusRejected:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type Part struct {
|
|
ID string `gorm:"primaryKey" json:"id" binding:"required"` // № или Обозначение
|
|
OrderNo string `json:"order_no" binding:"required"` // Заказ изделия
|
|
Name string `json:"name" binding:"required"` // Наименование детали
|
|
Material string `json:"material" binding:"required"` // Наименование материала
|
|
Thickness float64 `json:"thickness" binding:"required"` // Толщина
|
|
Quantity int `json:"quantity" binding:"required"` // Количество
|
|
|
|
// Размеры (используем Готовую деталь как основной стандарт)
|
|
Length float64 `json:"length" binding:"required"` // Готовая деталь [L]
|
|
Width float64 `json:"width" binding:"required"` // Готовая деталь [W]
|
|
|
|
// Кромка
|
|
EdgeL1 string `json:"edge_l1"` // Обозначение кромки [L1]
|
|
EdgeL2 string `json:"edge_l2"` // Обозначение кромки [L2]
|
|
EdgeW1 string `json:"edge_w1"` // Обозначение кромки [W1]
|
|
EdgeW2 string `json:"edge_w2"` // Обозначение кромки [W2]
|
|
|
|
// Доп. инфо
|
|
Groove string `json:"groove"` // Паз
|
|
Note string `json:"note"` // Примечание
|
|
ProductName string `json:"product_name" binding:"required"` // Наимен. изделия
|
|
|
|
Status string `json:"status" gorm:"default:'Ожидает распила'"`
|
|
}
|
|
|