Дипломная работа: Автоматизация учета предоставленных услуг в комплексном центре социального обслуживания населения и анализа данных на примере СПБ ГБУСОН "КЦСОН Адмиралтейского района Санкт-Петербурга"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
76
п/п
Наименование модуля
или класса
Функции
8.
Модуль
conv_mysql_to_mariadb
Небольшой скрипт который удаляет из
файла kcson.sql операторы специфичные
для MySQL, делая его пригодным к
использованию в СУБД mariadb.
9.
Модуль fill_templates
Содержит классы генерации отчетов,
актов, квитанций, договоров и прочих
документов на основе шаблонов.
2.3.4. Описание программных модулей
Рисунок 16 — Блок-схема алгоритма подготовки документов по
получателям СУ
77
Рисунок 17 — Блок-схема алгоритма печати модели данных для отладки
Листинг функции печати модели данных для отладки:
def print_model_data(model, rcount=None, ccount=None):
"""print rcount Rows and ccount Columns from model"""
78
#############################
# init
# ---------------------------
mdl: QSqlTableModel = model
if not rcount:
rcount = mdl.rowCount()
if not ccount:
ccount = mdl.columnCount()
#############################
# check bound of model
# ---------------------------
if rcount > mdl.rowCount(): rcount = mdl.rowCount()
if ccount > mdl.columnCount():
ccount = mdl.columnCount()
#############################
# print model head
# ---------------------------
res = ""
for c in range(ccount):
res = res + " | " + str(c) + " " \
+ mdl.headerData(c,
Qt.Horizontal,
Qt.DisplayRole)
#.encode('raw_unicode_escape').decode('utf-8')
print(res)
#############################
# print model data
# ---------------------------
for r in range(rcount):
res = ""
for c in range(ccount):
ind = mdl.index(r, c)
res = res + " " + str(ind.data(
Qt.DisplayRole))
print(res)
79
Фрагмент листинга основного класса хранения и обработки данных
TsonData:
class TsonData(QObject):
"""Manage and store Data"""
def __init__(self):
"""Constructor for 3sonData"""
super().__init__()
debug("TsonData init")
self.user = None
self.password = None
self.dep = None
self.server = None
self.port = None
#############################
# load local config file
# ---------------------------
try:
config = configparser.ConfigParser()
conf_path = os.path.join(home_dir, "3uson.conf")
if not os.path.exists(conf_path):
conf_path = "3uson.conf"
config.read(conf_path)
self.config = config
debug(config.sections())
self.user = self.config['DEFAULT']['lastuser']
self.server = self.config['DEFAULT']['server']
self.port = self.config['DEFAULT']['port']
except:
error("config read error")
#############################
# init _sql_column_replace
# ---------------------------
tr = self.tr
self._sql_column_replace = {
80
"id": tr("№"),
"serv_name": tr("Наименование услуги"),
"serv_tnum": tr("№ по ведомственному перечню"),
"year": tr("Год"),
"price": tr("Стоимость для обслуживаемого"),
"2ndprice": tr("Стоимость"),
"3rdprice": tr("Оплата для работника"),
"sub_serv": tr("№ категории"),
"sub_serv_str": tr("Категория услуги"),
"active": tr("Используется"),
"archive": tr("Архивный"),
"serv_id": tr("Услуга"),
"ripso_id": tr("Рипсо"),
"dep_id": tr("Отделение"),
"contracts_id": tr("Договор"),
"serv": tr("Услуга "),
"ripso": tr("Рипсо "),
"dep": tr("Отделение "),
"contracts": tr("Договор"),
"uslnum": tr("Кол-во услуг"),
"note": tr("Примечание"),
"prim": tr("Примечание "),
"worker": tr("Работник "),
"worker_id": tr("Работник"),
"ufio_id": tr("ФИО"),
"ufio": tr("ФИО "),
"vdate": tr("Дата оказания"),
"create": tr("Создана"),
"ts": tr("Изменена"),
"cr_by": tr("Кем создана"),
"overdid": tr("Переполнение"),
"ufiobirth": tr("Дата рождения"),
"ufioDeath": tr("Переполнение"),
"upd_by": tr("Кем изменена")
}
Источник: https://baza.diplomsite.ru/previewfile/2412