NeiroN
02.09.2016, 18:31
Здравствуйте коллеги. Сидел я тут сидел, позвали меня помочь - заправить тикеты в аппараты и у меня возникла идея: Учитывать заправляемые тикеты через базу Game Keeper.
Так как я парень умный написать весь софт это 15 минут(когда знаешь что писать), а у меня возникли вопросы как лучше сделать учет через отдельную таблицу или через таблицу транзакций Game Keeper? И какое поле в таблице аппаратов лучше использовать(типа int вполне достаточно)?
Также думаю вести учет выданных тикетов - у каждого аппарата сделать поле или использовать существующее - которое будет отражать количество тикетов в аппарате. Операции выдачи будут его уменьшать, а операции заправки - увеличивать.
Так можно будет знать: сколько тикетов в аппарате, нужно ли его заправлять, сколько тикетов во всех аппаратах, как часто заправляют тот или иной аппарат, вести строгий учет тикетов без бумажного журнала, отчитываться перед начальством от трате тикетов.
Сдалаю это через вебинтерфейс - у всех есть телефоны - и когда заправляешь надо будет выбрать аппарат из списка и ввести начальный номер и конечный номер пачки(количество рассчитается автоматически).
Также можно сделать операцию изьятия тикетов из аппарата - для оооочень строгой отчетности.
Тут привожу структуру таблицы аппаратов и мои догадки по назначению полей(непонятные поля отмечены кодом "хз"):
CREATE TABLE [gk].[MACHINES]( [MACHINE] [int] NOT NULL, --Номер аппарата
CODE [char](10) NOT NULL, --Поле код
[NAME] [varchar](50) NOT NULL, --Имя
[INFO] [varchar](250) NULL, --Информация
[ADDRTYPE] [int] NULL, --Тип адреса -- зачем хз
[ADDR0] [int] NOT NULL, --Адрес
[ADDR1] [int] NOT NULL, --Адрес
[DEVCLASS] [int] NULL, --Класс устройства
[DEVCONFIG] [int] NULL, --Конфигурация
[CATEGORY] [int] NOT NULL, --Категория
[LOCATION] [int] NULL, --Ид центра
[ZONE] [int] NULL, --Ид зоны
[STATUS] [int] NOT NULL, --Статус
[IMAGE] [text] NULL, --хз зачем
[ONLINESTATUS] [int] NOT NULL, -- тоже хз
[LASTGAMESTART] [datetime] NULL, --последний запуск
[LASTCARDREAD] [datetime] NULL, --последнее чтение
[USAGE] [int] NULL, --похоже что приминение как турникет или тикетстейшен.
[POSX] [int] NULL, --Положение на карте?
[POSY] [int] NULL, --
[INTPARAM0] [int] NULL, -- Заменяет конфиг устройства?
[INTPARAM1] [int] NULL, --
[Delay] [int] NOT NULL, -- Задержка
[WorkStartDate] [smalldatetime] NULL, -- начало работы
[PrimeCost] [money] NOT NULL, -- стоимость
[Account] [int] NULL, -- Последняя карта игравшая на аппарате
[Barcode] [varchar](20) NULL, -- Штрихкод для призов
[PriceTickets] [money] NOT NULL, -- Цена в тикетах для призов
[PriceMoney] [money] NOT NULL, -- Цена в рублях
[IncInPkg] [bit] NOT NULL, -- включать в пакеты
[TreeRef] [int] NULL, -- родитель в дереве
[GamePrice] [money] NULL, -- цена игры
[Pass] [int] NULL, -------------------------------------------------ЭТО ВООБЩЕ ХЗ
[MO] [bit] NOT NULL, -- опять хз
[LESSOR] [int] NULL, -- тоже хз
[RENTAL_RATE] [int] NOT NULL, -- для аренды ставка?
[Subscription] [int] NULL, -- для учета подписок?
[GUID] [uniqueidentifier] NOT NULL,
[TRANSACT_GUID] [uniqueidentifier] NOT NULL,
[Area] [decimal](9, 2) NULL, -- хз
[VideoCode] [int] NULL, -- для видеонаблюдения
[Serial_No] [varchar](20) NULL, -- для инвентаризации
[Inventory_No] [varchar](20) NULL, --
CONSTRAINT [PK_MACHINES] PRIMARY KEY CLUSTERED
(
[MACHINE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Так как я парень умный написать весь софт это 15 минут(когда знаешь что писать), а у меня возникли вопросы как лучше сделать учет через отдельную таблицу или через таблицу транзакций Game Keeper? И какое поле в таблице аппаратов лучше использовать(типа int вполне достаточно)?
Также думаю вести учет выданных тикетов - у каждого аппарата сделать поле или использовать существующее - которое будет отражать количество тикетов в аппарате. Операции выдачи будут его уменьшать, а операции заправки - увеличивать.
Так можно будет знать: сколько тикетов в аппарате, нужно ли его заправлять, сколько тикетов во всех аппаратах, как часто заправляют тот или иной аппарат, вести строгий учет тикетов без бумажного журнала, отчитываться перед начальством от трате тикетов.
Сдалаю это через вебинтерфейс - у всех есть телефоны - и когда заправляешь надо будет выбрать аппарат из списка и ввести начальный номер и конечный номер пачки(количество рассчитается автоматически).
Также можно сделать операцию изьятия тикетов из аппарата - для оооочень строгой отчетности.
Тут привожу структуру таблицы аппаратов и мои догадки по назначению полей(непонятные поля отмечены кодом "хз"):
CREATE TABLE [gk].[MACHINES]( [MACHINE] [int] NOT NULL, --Номер аппарата
CODE [char](10) NOT NULL, --Поле код
[NAME] [varchar](50) NOT NULL, --Имя
[INFO] [varchar](250) NULL, --Информация
[ADDRTYPE] [int] NULL, --Тип адреса -- зачем хз
[ADDR0] [int] NOT NULL, --Адрес
[ADDR1] [int] NOT NULL, --Адрес
[DEVCLASS] [int] NULL, --Класс устройства
[DEVCONFIG] [int] NULL, --Конфигурация
[CATEGORY] [int] NOT NULL, --Категория
[LOCATION] [int] NULL, --Ид центра
[ZONE] [int] NULL, --Ид зоны
[STATUS] [int] NOT NULL, --Статус
[IMAGE] [text] NULL, --хз зачем
[ONLINESTATUS] [int] NOT NULL, -- тоже хз
[LASTGAMESTART] [datetime] NULL, --последний запуск
[LASTCARDREAD] [datetime] NULL, --последнее чтение
[USAGE] [int] NULL, --похоже что приминение как турникет или тикетстейшен.
[POSX] [int] NULL, --Положение на карте?
[POSY] [int] NULL, --
[INTPARAM0] [int] NULL, -- Заменяет конфиг устройства?
[INTPARAM1] [int] NULL, --
[Delay] [int] NOT NULL, -- Задержка
[WorkStartDate] [smalldatetime] NULL, -- начало работы
[PrimeCost] [money] NOT NULL, -- стоимость
[Account] [int] NULL, -- Последняя карта игравшая на аппарате
[Barcode] [varchar](20) NULL, -- Штрихкод для призов
[PriceTickets] [money] NOT NULL, -- Цена в тикетах для призов
[PriceMoney] [money] NOT NULL, -- Цена в рублях
[IncInPkg] [bit] NOT NULL, -- включать в пакеты
[TreeRef] [int] NULL, -- родитель в дереве
[GamePrice] [money] NULL, -- цена игры
[Pass] [int] NULL, -------------------------------------------------ЭТО ВООБЩЕ ХЗ
[MO] [bit] NOT NULL, -- опять хз
[LESSOR] [int] NULL, -- тоже хз
[RENTAL_RATE] [int] NOT NULL, -- для аренды ставка?
[Subscription] [int] NULL, -- для учета подписок?
[GUID] [uniqueidentifier] NOT NULL,
[TRANSACT_GUID] [uniqueidentifier] NOT NULL,
[Area] [decimal](9, 2) NULL, -- хз
[VideoCode] [int] NULL, -- для видеонаблюдения
[Serial_No] [varchar](20) NULL, -- для инвентаризации
[Inventory_No] [varchar](20) NULL, --
CONSTRAINT [PK_MACHINES] PRIMARY KEY CLUSTERED
(
[MACHINE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]