Documentation
¶
Index ¶
- Constants
- type CTXkey
- type Ingredient
- type Inventory
- func (inv *Inventory) GetIngredientByName(ingredientName string) (*Ingredient, bool)
- func (inv *Inventory) GetStockByingredientName(name string) (*Stock, bool)
- func (inv *Inventory) Init(ctx context.Context, e *engine.Engine, log *log2.Log) (errs error)
- func (inv *Inventory) InventoryLoad()
- func (inv *Inventory) InventorySave() error
- func (inv *Inventory) Iter(fun func(s *Stock))
- func (inv *Inventory) Tele() *tele_api.Inventory
- func (inv *Inventory) WithTuning(ctx context.Context, ingredientName string, adj float32) (context.Context, error)
- type Stock
- func (s *Stock) GetSpendRate() float32
- func (s *Stock) Has(v float32) bool
- func (s *Stock) Set(v float32)
- func (s *Stock) SetLevel(level int)
- func (s *Stock) ShowLevel() string
- func (s *Stock) SpendValue(value byte)
- func (s *Stock) String() string
- func (s *Stock) TranslateSpend(arg engine.Arg) float32
- func (s *Stock) Value() float32
- func (s *Stock) Wrap(d engine.Doer) engine.Doer
Constants ¶
View Source
const RegexLevels = `([0-9]*[.,]?[0-9]+)\(([0-9]*[.,]?[0-9]+)\)`
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CTXkey ¶ added in v0.250106.0
type CTXkey string
структура для контекста should not use built-in type string as key for value; define your own type to avoid collisions (SA1029)
type Ingredient ¶ added in v0.250104.0
type Ingredient struct {
// name - название ингридиента ( иникальное значение)
Name string `hcl:"name,label"`
// min - минимальный остаток ( если остаток меньше минимума, то будет отказ в отгрузке.
// если минимум не указан то огружает в минус. может быть отрицательным числом)
Min int `hcl:"min,optional"`
// расход на единицу. какое количество ингридиента расходуется при отгрузке 1 единицы товара.
SpendRate float32 `hcl:"spend_rate,optional"`
// level - уровень (плотность) ингридиента
// указыватеся как "x(y)"
// x - метка на бункере, y - вес
// пример: "0.5(200) 1(360) 2(680) 3.1(1020)"
Level string `hcl:"level,optional"`
// tuning_key - название кнопки коррекции отгрузки. подробне в описании кнопки коррекции
// кнопка коррекции. имеет название и значение по умолчанию (обычно 4) можно указать максимальное значение.
// единица значения равна 25%.
// например: базовое = 4 и это 100% если указать 2 то это 50%. если 8 то это 200%
TuneKey string `hcl:"tuning_key,optional"`
// cost - закупочная цена. нужна дял расчета себестоимости
Cost float64 `hcl:"cost,optional"`
// contains filtered or unexported fields
}
if the minimum ingredient is not specified (equal to zero), then the consumption check is disabled если минимум ингридиента не указан (равен нулю), тогда проверка расхода выключена
type Inventory ¶
type Inventory struct {
ReportInv int
// Файл для хранения инвентаря. В нем хранится количество каждого склада в виде int32 (для возможности сохранения в CMOS). Код склада соответствует позиции в файле.
// Example: если у вас 3 склада, то в файле будет 12 байт. Первые 4 байта - количество первого склада, следующие 4 байта - количество второго склада, и т.д.
File string `hcl:"stock_file,optional"`
// список бункеров. название склада и код одинаковые.
// название ингридиента. должно соответствовать названию в блоке ингридиентов. нужно для связи склада и ингридиента. пока движок не переделан - это уникальное значение
Stocks []Stock `hcl:"stock,block"`
// список ингридиентов. название ингридиента должно быть уникальным. нужно для связи склада и ингридиента. пока движок не переделан - это уникальное значение
Ingredient []Ingredient `hcl:"ingredient,block"`
XXX_Stocks map[string]Stock
XXX_Ingredient map[string]Ingredient
// contains filtered or unexported fields
}
Inventory - main struct for inventory system. Contains stocks and ingredients. Also contains methods for loading and saving inventory, and for getting stock and ingredient by name.
func (*Inventory) GetIngredientByName ¶ added in v0.250104.0
func (inv *Inventory) GetIngredientByName(ingredientName string) (*Ingredient, bool)
func (*Inventory) GetStockByingredientName ¶ added in v0.250106.0
func (*Inventory) InventoryLoad ¶ added in v0.220611.0
func (inv *Inventory) InventoryLoad()
store file инвентарь храниться как int32 ( для возможности сохраннения в CMOS) код соответствует позиции в файле
func (*Inventory) InventorySave ¶ added in v0.220611.0
type Stock ¶
type Stock struct {
Log *log2.Log
ErrorSend bool
Label string `hcl:",label"`
Code int `hcl:"code,optional"`
// название ингридиента. должно соответствовать названию в блоке ингридиентов. нужно для связи склада и ингридиента. пока движок не переделан - это уникальное значение
XXX_Ingredient string `hcl:"ingredient"`
// дейсвия при отгрузке. создается команда: название_ингридиента.run(?) которая выполняет эти действия.
RegisterAdd string `hcl:"register_add,optional"`
Ingredient *Ingredient
// contains filtered or unexported fields
}
func (*Stock) GetSpendRate ¶ added in v0.240430.0
func (*Stock) SpendValue ¶ added in v0.240430.0
Click to show internal directories.
Click to hide internal directories.