fix: money can now be entered in decimal

This commit is contained in:
Lunaresk 2024-08-18 18:39:56 +02:00
parent 14b7e1f84c
commit b127733a7e
4 changed files with 8 additions and 6 deletions

3
.gitignore vendored
View File

@ -354,4 +354,5 @@ tests*
*.pdf
*.backup
Dockerfile.*
docker-compose.*
docker-compose.*
*debug.py

View File

@ -1,12 +1,12 @@
from models import LoginToken
from flask_wtf import FlaskForm
from wtforms import DateField, FloatField, IntegerField, SelectField, SelectMultipleField, StringField, SubmitField
from wtforms.validators import DataRequired, Optional
from wtforms import DateField, DecimalField, SelectField, SubmitField
from wtforms.validators import DataRequired
class NewPaymentForm(FlaskForm):
token = SelectField("User", validators=[DataRequired()], render_kw={"class": "form-control"})
date = DateField("Date", validators=[DataRequired()], render_kw={"class": "form-control"})
amount = IntegerField("Amount (in ct)", validators=[DataRequired()], render_kw={"class": "form-control"})
amount = DecimalField("Amount (€)", validators=[DataRequired()], render_kw={"class": "form-control"})
submit = SubmitField("Submit", render_kw={"class": "btn btn-primary mt-3"})
@classmethod

View File

@ -17,7 +17,7 @@ def insert_payment(establishment_id: int):
if form.validate_on_submit():
new_payment = Payment(token = form.token.data,
date = form.date.data,
amount = form.amount.data)
amount = int(form.amount.data*100))
db.session.add(new_payment)
db.session.commit()
return redirect(url_for("main.index"))

View File

@ -1,4 +1,5 @@
from datetime import date
from decimal import Decimal
from models import AmountChange, Item, PriceChange, Receipt, ReceiptItem
from src import db, LOGGER
@ -35,7 +36,7 @@ def insert_existing_item(formitemdict: dict[str: str], receipt_date: date = None
db.session.commit()
def insert_item_to_receipt(receipt: Receipt, item_dict: dict[str: str], item_index:int=0):
receipt.ReceiptItem.append(ReceiptItem(item=item_index, name=item_dict.get('itemname'), amount=item_dict.get('amount'), price=int(str(item_dict.get('price')).replace(',','').replace('.', ''))))
receipt.ReceiptItem.append(ReceiptItem(item=item_index, name=item_dict.get('itemname'), amount=item_dict.get('amount'), price=int(item_dict.get('price')*100)))
db.session.add(receipt)
db.session.commit()