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