Debug 1
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
from flask import request, Blueprint, render_template, session
|
||||
from flask import request, Blueprint, render_template
|
||||
from os import path
|
||||
from Database.sql_provider import SQLProvider
|
||||
from checker import check_auth, group_required
|
||||
from .requests_route import route
|
||||
from .requests_model import sklad, get_goods, get_sellers, materials_per_seller
|
||||
from datetime import date
|
||||
import json
|
||||
|
||||
with open(path.join(path.dirname(__file__), 'zapros_menu.json')) as f:
|
||||
requests_list = json.load(f)
|
||||
|
||||
sql_provider = SQLProvider(path.join(path.dirname(__file__), 'sql'))
|
||||
requests_bp = Blueprint('requests_bp', __name__, template_folder='templates')
|
||||
|
||||
@requests_bp.route('/', methods=['GET', 'POST'])
|
||||
@@ -19,59 +17,58 @@ def requests():
|
||||
if request.method == 'GET':
|
||||
return render_template('zapros_menu.html', options=requests_list)
|
||||
|
||||
@requests_bp.route('/req1', methods=['GET', 'POST'])
|
||||
@requests_bp.route('/sklad', methods=['GET', 'POST'])
|
||||
@check_auth
|
||||
@group_required
|
||||
def sklad_zapros():
|
||||
if request.method == 'GET':
|
||||
zagotovki = route(session['db_config'], {}, sql_provider, 'zagotovki.sql')
|
||||
zagotovki = get_goods()
|
||||
if zagotovki.status:
|
||||
return render_template('zagotovki.html', materials=zagotovki.result, header='Количество заготовок на складе')
|
||||
else:
|
||||
return render_template('error.html', error_message=zagotovki.error_message)
|
||||
else:
|
||||
material = dict(request.form)
|
||||
zagotovki = route(session['db_config'], material, sql_provider, 'zapros1.sql')
|
||||
zagotovki = sklad(material)
|
||||
if zagotovki.status:
|
||||
header = f'Заготовки на складе из материала \'{material["material"]}\''
|
||||
return render_template('output.html', items=zagotovki.result, object=header)
|
||||
else:
|
||||
return render_template('error.html', error_message=zagotovki.error_message)
|
||||
|
||||
@requests_bp.route('/req2', methods=['GET', 'POST'])
|
||||
# Под вопросом
|
||||
""" @requests_bp.route('/req2', methods=['GET', 'POST'])
|
||||
@check_auth
|
||||
@group_required
|
||||
def zagotovki_ship():
|
||||
if request.method == 'GET':
|
||||
zagotovki = route(session['db_config'], {}, sql_provider, 'zagotovki.sql')
|
||||
zagotovki = get_goods()
|
||||
if zagotovki.status:
|
||||
return render_template('zagotovki.html', materials=zagotovki.result, header='Поставки заготовок')
|
||||
else:
|
||||
return render_template('error.html', error_message=zagotovki.error_message)
|
||||
else:
|
||||
material = dict(request.form)
|
||||
zagotovki = route(session['db_config'], material, sql_provider, 'zapros2.sql')
|
||||
zagotovki = route(material, 'zapros2.sql')
|
||||
if zagotovki.status:
|
||||
header = f'Поставки заготовок из материала \'{material['material']}\''
|
||||
return render_template('output.html', items=zagotovki.result, object=header)
|
||||
else:
|
||||
return render_template('error.html', error_message=zagotovki.error_message)
|
||||
return render_template('error.html', error_message=zagotovki.error_message) """
|
||||
|
||||
@requests_bp.route('/req3', methods=['GET', 'POST'])
|
||||
@requests_bp.route('/shipments', methods=['GET', 'POST'])
|
||||
@check_auth
|
||||
@group_required
|
||||
def sellers_ship():
|
||||
if request.method == 'GET':
|
||||
zagotovki = route(session['db_config'], {}, sql_provider, 'sellers.sql')
|
||||
zagotovki = get_sellers()
|
||||
if zagotovki.status:
|
||||
min_year = '2000'
|
||||
max_year = str(date.today().year)
|
||||
return render_template('sellers_ship.html', sellers=zagotovki.result, year_from=min_year, year_to=max_year)
|
||||
return render_template('sellers_ship.html', sellers=zagotovki.result, year_from='2000', year_to=str(date.today().year))
|
||||
else:
|
||||
return render_template('error.html', error_message=zagotovki.error_message)
|
||||
else:
|
||||
seller = dict(request.form)
|
||||
zagotovki = route(session['db_config'], seller, sql_provider, 'zapros3.sql')
|
||||
zagotovki = materials_per_seller(seller)
|
||||
if zagotovki.status:
|
||||
header = f'Поставки от поставщика \'{seller['seller']}\''
|
||||
return render_template('output.html', items=zagotovki.result, object=header)
|
||||
|
||||
49
App/Requests/requests_model.py
Normal file
49
App/Requests/requests_model.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from dataclasses import dataclass
|
||||
from Database.select import select_list
|
||||
from Database.sql_provider import SQLProvider
|
||||
from flask import current_app
|
||||
from os import path
|
||||
|
||||
sql_provider = SQLProvider(path.join(path.dirname(__file__), 'sql'))
|
||||
@dataclass
|
||||
class InfoRespronse:
|
||||
result: tuple
|
||||
error_message: str
|
||||
status: bool
|
||||
|
||||
def get_goods() -> InfoRespronse:
|
||||
_sql = sql_provider.get('zagotovki.sql', {})
|
||||
result = select_list(current_app.config['db_config'], _sql)
|
||||
if result is None:
|
||||
return InfoRespronse(result,
|
||||
error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором',
|
||||
status=False)
|
||||
return InfoRespronse(result, error_message='', status=True)
|
||||
|
||||
def get_sellers() -> InfoRespronse:
|
||||
_sql = sql_provider.get('sellers.sql', {})
|
||||
result = select_list(current_app.config['db_config'], _sql)
|
||||
if result is None:
|
||||
return InfoRespronse(result,
|
||||
error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором',
|
||||
status=False)
|
||||
return InfoRespronse(result, error_message='', status=True)
|
||||
|
||||
def sklad(input_data) -> InfoRespronse:
|
||||
_sql = sql_provider.get('zapros1.sql', input_data)
|
||||
print("sql = ", _sql)
|
||||
result = select_list(current_app.config['db_config'], _sql)
|
||||
if result is None:
|
||||
return InfoRespronse(result,
|
||||
error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором',
|
||||
status=False)
|
||||
return InfoRespronse(result, error_message='', status=True)
|
||||
|
||||
def materials_per_seller(input_data) -> InfoRespronse:
|
||||
_sql = sql_provider.get('zapros3.sql', input_data)
|
||||
result = select_list(current_app.config['db_config'], _sql)
|
||||
if result is None:
|
||||
return InfoRespronse(result,
|
||||
error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором',
|
||||
status=False)
|
||||
return InfoRespronse(result, error_message='', status=True)
|
||||
@@ -1,15 +0,0 @@
|
||||
from dataclasses import dataclass
|
||||
from Database.select import select_list
|
||||
@dataclass
|
||||
class InfoRespronse:
|
||||
result: tuple
|
||||
error_message: str
|
||||
status: bool
|
||||
|
||||
def route(db_config, input_data, sql_provider, name) -> InfoRespronse:
|
||||
_sql = sql_provider.get(name, input_data)
|
||||
print("sql = ", _sql)
|
||||
result = select_list(db_config, _sql)
|
||||
if result is None:
|
||||
return InfoRespronse(result, error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором', status=False)
|
||||
return InfoRespronse(result, error_message='', status=True)
|
||||
@@ -1,5 +1,5 @@
|
||||
[
|
||||
{"name": "Количество заготовок на складе", "url": "requests_bp.sklad_zapros"},
|
||||
{"name": "Поставки заготовок", "url": "requests_bp.zagotovki_ship"},
|
||||
|
||||
{"name": "Поставки поставщиком за год", "url": "requests_bp.sellers_ship"}
|
||||
]
|
||||
Reference in New Issue
Block a user