inventory

package
v0.260504.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2026 License: CC0-1.0 Imports: 15 Imported by: 0

Documentation

Index

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 (inv *Inventory) GetStockByingredientName(name string) (*Stock, bool)

func (*Inventory) Init

func (inv *Inventory) Init(ctx context.Context, e *engine.Engine, log *log2.Log) (errs error)

func (*Inventory) InventoryLoad added in v0.220611.0

func (inv *Inventory) InventoryLoad()

store file инвентарь храниться как int32 ( для возможности сохраннения в CMOS) код соответствует позиции в файле

func (*Inventory) InventorySave added in v0.220611.0

func (inv *Inventory) InventorySave() error

func (*Inventory) Iter

func (inv *Inventory) Iter(fun func(s *Stock))

func (*Inventory) Tele

func (inv *Inventory) Tele() *tele_api.Inventory

func (*Inventory) WithTuning

func (inv *Inventory) WithTuning(ctx context.Context, ingredientName string, adj float32) (context.Context, error)

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 (s *Stock) GetSpendRate() float32

func (*Stock) Has

func (s *Stock) Has(v float32) bool

func (*Stock) Set

func (s *Stock) Set(v float32)

func (*Stock) SetLevel added in v0.230101.1

func (s *Stock) SetLevel(level int)

func (*Stock) ShowLevel added in v0.230101.1

func (s *Stock) ShowLevel() string

func (*Stock) SpendValue added in v0.240430.0

func (s *Stock) SpendValue(value byte)

func (*Stock) String

func (s *Stock) String() string

func (*Stock) TranslateSpend

func (s *Stock) TranslateSpend(arg engine.Arg) float32

func (*Stock) Value

func (s *Stock) Value() float32

func (*Stock) Wrap

func (s *Stock) Wrap(d engine.Doer) engine.Doer

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL