Add transfer button

This commit is contained in:
BuildTools 2023-06-30 17:20:15 +02:00 committed by Paul Brinkmeier
parent 9211d1f9b4
commit 8fda78c466
3 changed files with 50 additions and 13 deletions

View File

@ -0,0 +1,5 @@
INSERT INTO garfield.inventory_correction (item_id, delta, correction_comment)
VALUES (%(from_item_id)s, -%(amount)s, CONCAT('Umbuchung auf ', %(to_item_id)s));
INSERT INTO garfield.inventory_correction (item_id, delta, correction_comment)
VALUES (%(to_item_id)s, %(amount)s, CONCAT('Umbuchung von ', %(from_item_id)s));

View File

@ -80,3 +80,28 @@ def create_correction():
db.get_db().commit()
return redirect(request.referrer)
@bp.post("/transfer")
def transfer_items():
try:
from_item_id = int(request.form.get("from_item_id"))
to_item_id = int(request.form.get("to_item_id"))
amount = int(request.form.get("amount"))
except:
return "Incomplete or mistyped form", 400
if amount == 0:
return "Amount may not be 0", 400
if from_item_id == to_item_id:
return "Transfers must be between different items", 400
db.run_query("transfer_items.sql", {
"from_item_id": from_item_id,
"to_item_id": to_item_id,
"amount": amount
})
db.get_db().commit()
return redirect(request.referrer)

View File

@ -22,8 +22,7 @@
<th class="--align-left">Einkaufspreis (Netto)</th>
<td>{{ format_currency(item.unit_price) }}</td>
</tr>
<tr>
<th class="--align-left">Kaufdatum</th>
<tr> <th class="--align-left">Kaufdatum</th>
<td>{{ format_date(item.bought) }}</td>
</tr>
<tr>
@ -121,25 +120,33 @@
<th title="Aktive Snackeinträge">AS</th>
<th>Aktiv?</th>
</tr>
{% for item in same_barcode_items %}
{% for other_item in same_barcode_items %}
<tr>
<td><a href="/inventory/item/{{ item.item_id }}">{{ item.item_id }}</a></td>
<td><code>{{ item.item_barcode }}</code></td>
<td>{{ item.name }}</td>
<td><a href="/inventory/item/{{ other_item.item_id }}">{{ other_item.item_id }}</a></td>
<td><code>{{ other_item.item_barcode }}</code></td>
<td>{{ other_item.name }}</td>
<td class="--align-right">{{ format_currency(item.unit_price) }}</td>
<td>{{ format_date(item.bought) }}</td>
<td>{{ item.group_name }} ({{ item.item_group }})</td>
<td class="--align-right">{{ item.sales_units }}</td>
<td class="--align-right">{% if item.correction_delta > 0 %}+{% endif %}{{ item.correction_delta }}</td>
<td class="--align-right">{{ item.units_left }}</td>
<td>{{ other_item.group_name }} ({{ other_item.item_group }})</td>
<td class="--align-right">{{ other_item.sales_units }}</td>
<td class="--align-right">{% if other_item.correction_delta > 0 %}+{% endif %}{{ other_item.correction_delta }}</td>
<td class="--align-right">{{ other_item.units_left }}</td>
<td class="--centered">
{% if item.active_mappings != 0 %}
{{ item.active_mappings_array | join(", ") }}
{% if other_item.active_mappings != 0 %}
{{ other_item.active_mappings_array | join(", ") }}
{% else %}
-
{% endif %}
</td>
<td class="--centered">{{ format_bool(item.available) }}</td>
<td class="--centered">{{ format_bool(other_item.available) }}</td>
<td>
<form method="POST" action="/inventory/transfer">
<input type="hidden" name="from_item_id" value="{{ item.item_id }}">
<input type="hidden" name="to_item_id" value="{{ other_item.item_id }}">
<input type="hidden" name="amount" value="{{ item.units_left }}">
<button{% if not other_item.available or other_item.item_id == item.item_id %} disabled{% endif %}>{{ item.units_left }} Artikel umbuchen</button>
</form>
</td>
</tr>
{% endfor %}
</table>