diff --git a/App/Report/sql/report1.sql b/App/Report/sql/report1.sql new file mode 100644 index 0000000..bac1519 --- /dev/null +++ b/App/Report/sql/report1.sql @@ -0,0 +1,11 @@ +SELECT sellers.name AS 'Поставщик', + w.date_of_delivery AS 'Дата поставки', + SUM(wl.count) AS 'Общее количество заготовок', + SUM(wl.price) AS 'Общая стоимость поставленных заготовок' +FROM waybill w +JOIN waybill_lines wl USING(waybill_id) +JOIN workpiece USING(work_id) +JOIN sellers USING(sel_id) +WHERE workpiece.material = '${material}' +AND (w.date_of_delivery BETWEEN '${date_from}' AND '${date_to}') +GROUP BY sellers.name, w.date_of_delivery; diff --git a/App/Requests/requests.py b/App/Requests/requests.py index f37b02b..03af5ca 100644 --- a/App/Requests/requests.py +++ b/App/Requests/requests.py @@ -14,6 +14,7 @@ requests_bp = Blueprint('requests_bp', __name__, template_folder='templates') @requests_bp.route('/', methods=['GET', 'POST']) @check_auth +@group_required def requests(): if request.method == 'GET': return render_template('zapros_menu.html', options=requests_list) @@ -40,6 +41,25 @@ def sklad_zapros(): @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') + 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') + 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('/req3', methods=['GET', 'POST']) +@check_auth +@group_required def sellers_ship(): if request.method == 'GET': zagotovki = route(session['db_config'], {}, sql_provider, 'sellers.sql') @@ -51,28 +71,9 @@ def sellers_ship(): return render_template('error.html', error_message=zagotovki.error_message) else: seller = dict(request.form) - zagotovki = route(session['db_config'], seller, sql_provider, 'zapros2.sql') + zagotovki = route(session['db_config'], seller, sql_provider, 'zapros3.sql') if zagotovki.status: - header = f'Заготовки, поставленные поставщиком \'{seller['seller']}\'' - return render_template('output.html', items=zagotovki.result, object=header) - else: - return render_template('error.html', error_message=zagotovki.error_message) - -@requests_bp.route('/req3', methods=['GET', 'POST']) -@check_auth -@group_required -def zagotovki_ship(): - if request.method == 'GET': - zagotovki = route(session['db_config'], {}, sql_provider, 'zagotovki.sql') - 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, 'zapros3.sql') - if zagotovki.status: - header = f'Поставки заготовок из материала \'{material['material']}\'' + header = f'Поставки от поставщика \'{seller['seller']}\'' return render_template('output.html', items=zagotovki.result, object=header) else: return render_template('error.html', error_message=zagotovki.error_message) \ No newline at end of file