Переделанный второй запрос

This commit is contained in:
Anton Kamalov
2024-10-24 22:48:26 +03:00
parent 6ae3bd327a
commit 42720af4e2
5 changed files with 35 additions and 33 deletions

View File

@@ -40,18 +40,18 @@ def sklad_zapros():
@check_auth @check_auth
def zagotovki_ship(): def zagotovki_ship():
if request.method == 'GET': if request.method == 'GET':
zagotovki = route(session['db_config'], {}, sql_provider, 'zagotovki.sql') zagotovki = route(session['db_config'], {}, sql_provider, 'sellers.sql')
if zagotovki.status: if zagotovki.status:
date_from = '2000-01-01' min_year = '2000'
date_to = date.today().strftime('%Y-%m-%d') max_year = str(date.today().year)
return render_template('zagotovki_ship.html', materials=zagotovki.result, date_from=date_from, date_to=date_to) return render_template('zagotovki_ship.html', sellers=zagotovki.result, year_from=min_year, year_to=max_year)
else: else:
return render_template('error.html', error_message=zagotovki.error_message) return render_template('error.html', error_message=zagotovki.error_message)
else: else:
material = dict(request.form) seller = dict(request.form)
zagotovki = route(session['db_config'], material, sql_provider, 'zapros2.sql') zagotovki = route(session['db_config'], seller, sql_provider, 'zapros2.sql')
if zagotovki.status: if zagotovki.status:
header = f'Поставленные заготовки из материала \'{material["material"]}\'' header = f'Заготовки, поставленные поставщиком \'{seller['seller']}\''
return render_template('output.html', items=zagotovki.result, object=header) return render_template('output.html', items=zagotovki.result, object=header)
else: else:
return render_template('error.html', error_message=zagotovki.error_message) return render_template('error.html', error_message=zagotovki.error_message)

View File

@@ -0,0 +1,3 @@
SELECT name FROM sellers
ORDER BY name
LIMIT 100;

View File

@@ -1,11 +1,9 @@
SELECT sellers.name AS 'Поставщик', SELECT w.date_of_delivery AS 'Дата поставки',
w.date_of_delivery AS 'Дата поставки', SUM(w.sum) AS 'Общая сумма',
SUM(wl.count) AS 'Общее количество заготовок', SUM(wl.cnt) as 'Количество'
SUM(wl.price) AS 'Общая стоимость поставленных заготовок'
FROM waybill w FROM waybill w
JOIN waybill_lines wl USING(waybill_id) JOIN (SELECT waybill_id, SUM(count) AS cnt FROM waybill_lines wl GROUP BY waybill_id)wl USING (waybill_id)
JOIN workpiece USING(work_id)
JOIN sellers USING(sel_id) JOIN sellers USING(sel_id)
WHERE workpiece.material = '${material}' WHERE sellers.name = '${seller}'
AND (w.date_of_delivery BETWEEN '${date_from}' AND '${date_to}') AND YEAR(date_of_delivery) = '${date}'
GROUP BY sellers.name, w.date_of_delivery; GROUP BY date_of_delivery

View File

@@ -2,7 +2,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Поставки заготовок</title> <title>Поставки за год</title>
<link href="/static/css/main.css" type="text/css" rel="stylesheet"> <link href="/static/css/main.css" type="text/css" rel="stylesheet">
</head> </head>
<body> <body>
@@ -10,22 +10,23 @@
<a href="{{ url_for('logout') }}"><button>Выход</button></a> <a href="{{ url_for('logout') }}"><button>Выход</button></a>
</div> </div>
<!-- Input --> <!-- Input -->
<h1>Поставки заготовок</h1> <h1>Поставки за год</h1>
<p>Выберите материал</p> <div class="form">
<p>Выберите поставщика</p>
<form action="" method="post"> <form action="" method="post">
<select name="material"> <select name="seller">
{% for item in materials %} {% for item in sellers %}
<option value="{{ item['material'] }}">{{ item['material'] }}</option> <option value="{{ item['name'] }}">{{ item['name'] }}</option>
{% endfor %} {% endfor %}
</select> </select>
<p>Выберите даты:</p> <p>Выберите год:</p>
<p>с <input type="date" name="date_from" required min={{ date_from }} max={{ date_to }} id="date_from"></p> <p><input type="number" name="date" required min={{ year_from }} max={{ year_to }} value="2024"></p>
<p>по <input type="date" name="date_to" required min={{ date_from }} max= {{ date_to }}" id="date_to"></p>
<input type="submit" value="Отправить"> <input type="submit" value="Отправить">
</form> </form>
<div class="return"> <div class="return">
<a href="{{ url_for('requests_bp.requests') }}"><button>Обратно в меню запросов</button></a> <a href="{{ url_for('requests_bp.requests') }}"><button>Обратно в меню запросов</button></a>
</div> </div>
</div>
</body> </body>
</html> </html>

View File

@@ -1,4 +1,4 @@
[ [
{"name": "Материалы заготовок", "url": "requests_bp.sklad_zapros", "roles" : "admin, user"}, {"name": "Материалы заготовок", "url": "requests_bp.sklad_zapros", "roles" : "admin, user"},
{"name": "Поставки заготовок", "url": "requests_bp.zagotovki_ship", "roles" : "admin, user"} {"name": "Поставки заготовок за год", "url": "requests_bp.zagotovki_ship", "roles" : "admin, user"}
] ]