From cc7fcc560ed2a659e95ab9e1a31a4a0ee3a09d29 Mon Sep 17 00:00:00 2001 From: TheGreatDevourer Date: Sat, 3 Feb 2024 03:20:25 -0400 Subject: [PATCH] [refactor]updated invoice to be automatic --- App/controllers/import_export.py | 7 +++++-- App/controllers/transactionLog.py | 13 +++++++------ App/models/transactionLog.py | 9 ++++++--- App/static/lockers.js | 1 - App/static/manage_locker_offline.html | 5 ----- App/static/sw.js | 2 +- App/templates/addrent.html | 5 ----- App/templates/manage_locker.html | 4 ---- App/templates/studentDetails.html | 4 ---- App/templates/transactionLog.html | 5 ----- App/views/transactionLog.py | 10 +++++----- 11 files changed, 24 insertions(+), 41 deletions(-) diff --git a/App/controllers/import_export.py b/App/controllers/import_export.py index 3b51a00..5748260 100644 --- a/App/controllers/import_export.py +++ b/App/controllers/import_export.py @@ -195,12 +195,15 @@ def import_transactionLog(uploaded_file): except: print('Invalid date conversation') restore_transaction(tL['id'],tL['rent_id'], tL['currency'],tL['transaction_date'], tL['amount'], tL['description'], tL['type'], tL['receipt_number']) - seq = Sequence(name='transaction_log_id_seq') + seq = Sequence(name='transaction_log_id_seq') + seq2 = Sequence(name='transaction_log_receipt_number_seq') key = db.session.execute(seq) + key2 = db.session.execute(seq2) while (key < tLog_json[len(tLog_json)-1]['id']): key = db.session.execute(seq) - + db.session.execute(seq2) + return True diff --git a/App/controllers/transactionLog.py b/App/controllers/transactionLog.py index 7231331..6495bea 100644 --- a/App/controllers/transactionLog.py +++ b/App/controllers/transactionLog.py @@ -4,15 +4,13 @@ from sqlalchemy import or_,Sequence from sqlalchemy.exc import SQLAlchemyError -def add_new_transaction(rent_id, currency, transaction_date, amount, description, t_type,receipt_number): - seq = Sequence(name='transaction_log_id_seq') +def add_new_transaction(rent_id, currency, transaction_date, amount, description, t_type): try: - new_transaction = TransactionLog(rent_id, currency,transaction_date, amount, description, t_type,receipt_number) + new_transaction = TransactionLog(rent_id, currency,transaction_date, amount, description, t_type) rent = Rent.query.filter_by(id=rent_id).first() rent.update_payments(amount) db.session.add(new_transaction) db.session.add(rent) - db.session.execute(seq) db.session.commit() return new_transaction except SQLAlchemyError as e: @@ -21,14 +19,17 @@ def add_new_transaction(rent_id, currency, transaction_date, amount, description def restore_transaction(id,rent_id, currency, transaction_date, amount, description, t_type,receipt_number): try: - new_transaction = TransactionLog(rent_id, currency,transaction_date, amount, description, t_type,receipt_number) + new_transaction = TransactionLog(rent_id, currency,transaction_date, amount, description, t_type) new_transaction.id = id + new_transaction.receipt_number = id rent = Rent.query.filter_by(id=rent_id).first() rent.update_payments(amount) db.session.add(new_transaction) db.session.add(rent) seq = Sequence(name='transaction_log_id_seq') - key = db.session.execute(seq) + seq2 = Sequence(name='transaction_log_receipt_number_seq') + db.session.execute(seq) + db.session.execute(seq2) db.session.commit() return new_transaction except SQLAlchemyError as e: diff --git a/App/models/transactionLog.py b/App/models/transactionLog.py index ea664c8..182ae26 100644 --- a/App/models/transactionLog.py +++ b/App/models/transactionLog.py @@ -2,6 +2,10 @@ from App.database import db from enum import Enum +from sqlalchemy import Sequence + +seq = Sequence('transaction_log_receipt_number_seq') + class TransactionType(Enum): CREDIT = "credit" DEBIT = "debit" @@ -13,10 +17,10 @@ class TransactionLog(db.Model): transaction_date = db.Column(db.Date,nullable = False) amount = db.Column(db.Float , nullable = False) description = db.Column(db.String, nullable = False) - receipt_number = db.Column(db.Integer,nullable=False,unique=True) + receipt_number = db.Column(db.Integer,seq,nullable=False,unique=True) type = db.Column(db.Enum(TransactionType), nullable = False) - def __init__(self, rent_id, currency, transaction_date, amount, description, type,receipt_number): + def __init__(self, rent_id, currency, transaction_date, amount, description, type): self.rent_id = rent_id self.currency = currency self.transaction_date = transaction_date @@ -24,7 +28,6 @@ def __init__(self, rent_id, currency, transaction_date, amount, description, typ self.description = description if type.upper() in TransactionType.__members__: self.type = TransactionType[type.upper()] - self.receipt_number = receipt_number def toJSON(self): return { diff --git a/App/static/lockers.js b/App/static/lockers.js index bd0bc18..ac0aaa7 100644 --- a/App/static/lockers.js +++ b/App/static/lockers.js @@ -353,7 +353,6 @@ function createRent(studentID,locker_code){ date_returned: fields['date_returned'].value, currency:fields2['currency'].value, amount:fields2['t_amount'].value, - r_number:fields2['receipt_number'].value, t_date:fields2['transaction_date'].value, t_type:fields2['t_type'].value } diff --git a/App/static/manage_locker_offline.html b/App/static/manage_locker_offline.html index 306db50..a47da29 100644 --- a/App/static/manage_locker_offline.html +++ b/App/static/manage_locker_offline.html @@ -311,10 +311,6 @@
New Transaction
-
-

Receipt Number

- -
Cancel @@ -761,7 +757,6 @@
Swap Rent
amount: fields['amount'].value, description:fields['description'].value, t_type:fields['t_type'].value, - receipt_number:fields['receipt_number'].value, } elem = document.getElementById('new_transaction'); instance = M.Modal.getInstance(elem) diff --git a/App/static/sw.js b/App/static/sw.js index d535280..310876f 100644 --- a/App/static/sw.js +++ b/App/static/sw.js @@ -15,7 +15,7 @@ const {precacheAndRoute,cleanupOutdatedCaches,addRoute} = workbox.precaching; const {CacheableResponse, CacheableResponsePlugin} = workbox.cacheableResponse; cleanupOutdatedCaches() -precacheAndRoute([{"revision":"bc56a6869ac03cd8815461a8a58ca256","url":"autocomplete.js"},{"revision":"9d295ec8b213fdfaac1595e739a950ef","url":"keep_alive.js"},{"revision":"1dae51f3d83761609553b73750834ac4","url":"lockers.js"},{"revision":"870b5ea4295065881458d40c6df53a78","url":"main.js"},{"revision":"fb0a89c8298881c0a8ddd6f05866a486","url":"manage_locker_offline.html"},{"revision":"5c939ef677a57602e5e12eaa34058ead","url":"map_init.js"},{"revision":"b0663391a6dd5efed956259f29fa18dd","url":"materialize.css"},{"revision":"74ac8fd1cd0b94f532c54d4c707a86ae","url":"materialize.js"},{"revision":"ec1df3ba49973dcb9ff212f052d39483","url":"materialize.min.css"},{"revision":"5dcfc8944ed380b2215dc28b3f13835f","url":"materialize.min.js"},{"revision":"b7a97dc36dffb61a3b3e165b9dbe20d2","url":"offline.html"},{"revision":"7a2b4050bd5b0159ba5101b00d60b40f","url":"static-user.html"},{"revision":"ceac046cad1656146e8d521968b87cda","url":"style.css"},{"revision":"1d8179f18fcc6c658c386f9f30ef126b","url":"util.js"},{"revision":"2cd1cbbe5f9d94f135c89263d2eb4d2b","url":"workbox-a482575e.js"}]); +precacheAndRoute([{"revision":"bc56a6869ac03cd8815461a8a58ca256","url":"autocomplete.js"},{"revision":"9d295ec8b213fdfaac1595e739a950ef","url":"keep_alive.js"},{"revision":"fd841d32365795926b84a5e556672d9f","url":"lockers.js"},{"revision":"870b5ea4295065881458d40c6df53a78","url":"main.js"},{"revision":"c01b9890e3758f1d282b70956b1ee70f","url":"manage_locker_offline.html"},{"revision":"5c939ef677a57602e5e12eaa34058ead","url":"map_init.js"},{"revision":"b0663391a6dd5efed956259f29fa18dd","url":"materialize.css"},{"revision":"74ac8fd1cd0b94f532c54d4c707a86ae","url":"materialize.js"},{"revision":"ec1df3ba49973dcb9ff212f052d39483","url":"materialize.min.css"},{"revision":"5dcfc8944ed380b2215dc28b3f13835f","url":"materialize.min.js"},{"revision":"b7a97dc36dffb61a3b3e165b9dbe20d2","url":"offline.html"},{"revision":"7a2b4050bd5b0159ba5101b00d60b40f","url":"static-user.html"},{"revision":"ceac046cad1656146e8d521968b87cda","url":"style.css"},{"revision":"1d8179f18fcc6c658c386f9f30ef126b","url":"util.js"},{"revision":"2cd1cbbe5f9d94f135c89263d2eb4d2b","url":"workbox-a482575e.js"}]); setDefaultHandler(new NetworkFirst()); diff --git a/App/templates/addrent.html b/App/templates/addrent.html index 43122b9..28498a5 100644 --- a/App/templates/addrent.html +++ b/App/templates/addrent.html @@ -160,11 +160,6 @@
New Transaction
-
-

Receipt Number

- {{trans.receipt_number(size=18, class="validate")}} -
-
{{trans.submit(id="t_submit",class="purple darken-4 waves-light btn")}} Cancel diff --git a/App/templates/manage_locker.html b/App/templates/manage_locker.html index 409ed58..83e1968 100644 --- a/App/templates/manage_locker.html +++ b/App/templates/manage_locker.html @@ -341,10 +341,6 @@
New Transaction
{% endfor %}
-
-

Receipt Number

- {{trans.receipt_number(size=18, class="validate white-text")}} -
-
-

Receipt Number

- {{trans.receipt_number(size=18, class="validate white-text")}} -
-
-

Receipt Number

- {{form.receipt_number(size=18, class="validate white-text")}} -
-
{{form.submit(class=" right purple darken-4 waves-light btn")}} Cancel diff --git a/App/views/transactionLog.py b/App/views/transactionLog.py index 8933149..d74051b 100644 --- a/App/views/transactionLog.py +++ b/App/views/transactionLog.py @@ -47,7 +47,7 @@ def create_new_transaction(): amount = int(request.form.get('amount')) description = request.form.get('description') t_type =request.form.get('t_type') - receipt_number = request.form.get('receipt_number') + #receipt_number = request.form.get('receipt_number') if t_type == "CREDIT": if amount > 0: @@ -56,7 +56,7 @@ def create_new_transaction(): if amount < 0: amount = amount * -1 - newTransaction = add_new_transaction (rent_id,currency,transaction_date,amount,description, t_type, receipt_number) + newTransaction = add_new_transaction (rent_id,currency,transaction_date,amount,description, t_type) if not newTransaction: flash('Error adding transaction') @@ -103,7 +103,7 @@ def manage_transaction_pages_multi(offset): next = num_pages else: next = offset + 1 - return render_template('transactionLog.html', transaction_data = transaction_data, form = TransactionAdd(), search=SearchForm(),searchMode=False, num_pages= num_pages,current_page=1, next=next, previous= previous) + return render_template('transactionLog.html', transaction_data = transaction_data, form = TransactionAdd(), search=SearchForm(),searchMode=False, num_pages= num_pages,current_page=offset, next=next, previous= previous) @transactionLog_views.route('/transactionLog/search/', methods=['GET']) @login_required @@ -151,9 +151,9 @@ def create_new_transaction_api(): amount = request.json.get('amount') description = request.json.get('description') t_type =request.json.get('t_type') - receipt_number = request.json.get('receipt_number') + #receipt_number = request.json.get('receipt_number') - newTransaction = add_new_transaction (rent_id,currency,transaction_date,amount,description, t_type, receipt_number) + newTransaction = add_new_transaction (rent_id,currency,transaction_date,amount,description, t_type) if not newTransaction: return jsonify({"error": "Rental not created"}),400