storage

package
v0.0.0-...-35efee3 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2024 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const DBVERSION = 1

Версія бази даних яку підтримує ця програма.

View Source
const DateLayout = "2006-01-02"

Variables

View Source
var ErrMissingMeter = errors.New("missing meter")

Functions

func Create

func Create(filepath string, firstDate time.Time) error

Create створює нову базу даних.

func DateParse

func DateParse(value string) (time.Time, error)

DateParse створює дату з рядка формату "2006-01".

func MakeDate

func MakeDate(year, month int) time.Time

MakeDate створює дату при вказанні року та місяця.

Types

type Meter

type Meter struct {
	Substation int
	Eic        string
	Name       string
	Model      string
	Year       int
	Serial     string
	Digits     int
	Ratio      int
	// contains filtered or unexported fields
}

type Report

type Report struct {
	*Meter
	Zone       int
	CurKwh     int
	PreKwh     int
	Diff       int
	Energy     int
	Annotation string
}

func (*Report) Calculate

func (report *Report) Calculate()

Calculate робе підрахунки в звіті.

type Storage

type Storage struct {
	*sql.DB
	// contains filtered or unexported fields
}

func Open

func Open(filepath string) (*Storage, error)

Open відкриває базу даних.

func (*Storage) AddMeter

func (stor *Storage) AddMeter(meter *Meter, kwh []int) error

AddMeter додає лічильник з початковими показниками

func (*Storage) Close

func (stor *Storage) Close()

Close закриває базу даних.

func (*Storage) GetActiveMeters

func (stor *Storage) GetActiveMeters() []*Meter

GetActiveMeters повертає діючі лічильники.

func (*Storage) GetFilepath

func (stor *Storage) GetFilepath() string

GetFilepath повертає шлях до бази даних.

func (*Storage) GetNextDate

func (stor *Storage) GetNextDate() time.Time

GetNextDate повертає дату наступного звіту.

func (*Storage) GetNextReports

func (stor *Storage) GetNextReports() []*Report

GetNextReports повертає форму для введення показників. Дату можна прочитати функцією GetNextDate. В кожному рядку потрібно заповнити поле CurKwh після чого викликати функцію SaveReports.

func (*Storage) GetNextTotal

func (stor *Storage) GetNextTotal(reports []*Report) int

GetNextTotal повертає суму витраченої енергії заданого звіту, плюс сума енргії видалених лічильників за поточну дату.

func (*Storage) GetReports

func (stor *Storage) GetReports(date time.Time) []*Report

GetReports повертає звіт за вказану дату.

func (*Storage) GetTotal

func (stor *Storage) GetTotal(from, to time.Time, name ...string) int

GetTotal повертає суму витраченої енергії за вказану дату, по вказаним точкам обліку.

func (*Storage) GetVersion

func (stor *Storage) GetVersion() int

GetVersion повертає версію бази даних.

func (*Storage) QueryLine

func (stor *Storage) QueryLine(query string, args ...any) ([]string, error)

QueryLine виконує запит до бази даних. Повертає рядок.

func (*Storage) QueryLines

func (stor *Storage) QueryLines(query string, args ...any) ([][]string, error)

QueryLines виконує запит до бази даних. Повертає масив рядків.

func (*Storage) RemoveMeter

func (stor *Storage) RemoveMeter(meter *Meter) error

RemoveMeter видаляє лічильник.

func (*Storage) SaveReports

func (stor *Storage) SaveReports(reports []*Report) error

SaveReports зберігає звіт до бази даних.

func (*Storage) UpdateMeter

func (stor *Storage) UpdateMeter(em *Meter) error

UpdateMeter оновлює лічильник і точку обліку.

Jump to

Keyboard shortcuts

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