При разработке этого модуля пришлось внимательно работать с базой. Многие детали запроса здесь неочевидны, но пропустить их не составит труда.
Функция добавления позиции:
Данные просто добавляются в таблицу.
Функции изменения данных:
Здесь происходит изменение данных через разные отображения.
Функция удаления позиции:
По запросу удаляются данные позиции и документы, с ней связаные.
Функция отображения списка позиций:
Выводим список позиций по индексам.
В следующей статье выложу функции модуля работы с документами.
P.S. Маленькая просьба — если хотите передать замечание по этому циклу статей, прошу предварительно прочитать статью «Разработка микро-учётной системы на lua, часть вторая. Постановка задачи», в которой я указываю условия разработки программы и функции, которые на неё возлагаются. Учитывайте это.
Функция добавления позиции:
function position.add()
base = require "database"
print("\n Введите наименование операции.")
nominal = io.stdin:read()
print("\n Введите стоимость операции.")
price = io.stdin:read()
base.insert_into_values( "position", "nominal, price", "'" .. tostring(nominal) .. "'" .. tostring(price) )
print("\n Наименование добавленно. \n")
end
Данные просто добавляются в таблицу.
Функции изменения данных:
function position.change_nominal()
base = require "database"
data = base.select_from_where( "number, nominal, price", "position", nil )
while data do
print("| № " .. data.number .. " | " .. data.nominal .. " | " .. data.price .. " руб. |" )
data = thread:fetch(data, "a")
end
print("\n Укажите номер для изменения наименования позиции: \n")
number = io.stdin:read()
print("\n Укажите новое наименование: \n")
nominal = io.stdin:read()
base.update_set_where( "position", "nominal = " .. tostring(nominal), "number = " .. tostring(number) )
print("\n Наименование изменено. \n")
end
function position.change_price()
base = require "database"
data = base.select_from_where( "number, nominal, price", "position", nil )
while data do
print("| № " .. data.number .. " | " .. data.nominal .. " | " .. data.price .. " руб. |" )
data = thread:fetch(data, "a")
end
print("\n Укажите номер для изменения цены: \n")
number = io.stdin:read()
print("\n Укажите новую цену: \n")
price = io.stdin:read()
base.update_set_where( "position", "price = " .. tostring(price), "number = " .. tostring(number) )
print("\n Телефон изменён. \n")
end
Здесь происходит изменение данных через разные отображения.
Функция удаления позиции:
function position.drop()
base = require "database"
print("\n Внимание! После удаления позиции будут удалены все документы с этой позицией. \n")
data = base.select_from_where( "number, nominal, price", "position", nil )
while data do
print("| № " .. data.number .. " | " .. data.nominal .. " | " .. data.price .. " руб. |" )
data = thread:fetch(data, "a")
end
print("\n Укажите номер удаляемой позиции \n")
number = io.stdin:read()
base.delete_from_where( "position", "position.number = " .. tostring(number) )
base.delete_from_where( "document", "document.position = " .. tostring(number) )
thread = io.stdin:read()
print("\n Позиция удалена. \n")
end
По запросу удаляются данные позиции и документы, с ней связаные.
Функция отображения списка позиций:
function position.show()
base = require "database"
print("Список позиций: \n")
data = base.select_from_where( "number, nominal, price", "position", nil )
while data do
print("| № " .. data.number .. " | " .. data.nominal .. " | " .. data.price .. " руб. |" )
data = thread:fetch(data, "a")
end
print("\n Запрос выполнен. \n")
end
Выводим список позиций по индексам.
В следующей статье выложу функции модуля работы с документами.
P.S. Маленькая просьба — если хотите передать замечание по этому циклу статей, прошу предварительно прочитать статью «Разработка микро-учётной системы на lua, часть вторая. Постановка задачи», в которой я указываю условия разработки программы и функции, которые на неё возлагаются. Учитывайте это.
Поделиться с друзьями