diff --git a/app/__init__.py b/app/__init__.py index fd3beef..93fcfb7 100755 --- a/app/__init__.py +++ b/app/__init__.py @@ -205,6 +205,9 @@ app.register_blueprint(info_blueprint, url_prefix='/info') from .stats import stats as stats_blueprint app.register_blueprint(stats_blueprint, url_prefix='/stats') +from .ticket import ticket as ticket_blueprint +app.register_blueprint(ticket_blueprint, url_prefix='/ticket') + with app.app_context(): db.configure_mappers() diff --git a/app/admin/views.py b/app/admin/views.py index b59d84a..5f5bcaa 100755 --- a/app/admin/views.py +++ b/app/admin/views.py @@ -6,7 +6,7 @@ from datetime import datetime from app.classes.pricing import ( Pricing_Oil_Oil, Pricing_Oil_Oil_schema) - +from app.classes.admin import Admin_Company, Admin_Company_schema @admin.route("/oil/create", methods=["POST"]) def create_oil_price(): @@ -36,53 +36,6 @@ def create_oil_price(): }), 200 -@admin.route("/service/create", methods=["POST"]) -def create_service_price(): - """ - Changes general labor rates prices - """ - now = datetime.utcnow() - - price_service_hour = request.json["price_service_hour"] - price_emergency_service_hourly_rate = request.json["price_emergency_service_hour"] - price_emergency_call = request.json["price_emergency_call"] - price_out_of_oil = request.json["price_out_of_oil"] - price_prime = request.json["price_prime"] - price_cleaning = request.json["price_cleaning"] - - - price_service = Pricing_Service_General( - price_service_hour=price_service_hour, - price_out_of_oil=price_out_of_oil, - price_emergency_service_hour=price_emergency_service_hourly_rate, - price_prime=price_prime, - price_emergency_call=price_emergency_call, - price_cleaning=price_cleaning, - date=now, - ) - - db.session.add(price_service) - db.session.commit() - - return jsonify({ - "ok": True, - 'price': price_service.id, - }), 200 - - -@admin.route("/service/get", methods=["GET"]) -def get_service_price(): - """ - gets service prices - """ - get_service_prices = (db.session - .query(Pricing_Service_General) - .order_by(Pricing_Service_General.date.desc()) - .first()) - - price_schema = Pricing_Service_General_schema(many=False) - return jsonify(price_schema.dump(get_service_prices)) - @admin.route("/oil/get", methods=["GET"]) def get_oil_price(): @@ -95,3 +48,13 @@ def get_oil_price(): .first()) price_schema = Pricing_Oil_Oil_schema(many=False) return jsonify(price_schema.dump(get_oil_prices)) + + +@admin.route("/company/", methods=["GET"]) +def get_company(company_id): + get_data_company = (db.session + .query(Admin_Company) + .first()) + + company_schema = Admin_Company_schema(many=False) + return jsonify(company_schema.dump(get_data_company)) diff --git a/app/classes/delivery.py b/app/classes/delivery.py index c0805c1..f45314b 100755 --- a/app/classes/delivery.py +++ b/app/classes/delivery.py @@ -36,9 +36,9 @@ class Delivery_Delivery(db.Model): # finalized = 10 delivery_status = db.Column(db.INTEGER) # when the call to order took place - when_ordered = db.Column(db.TIMESTAMP(), default=datetime.utcnow()) + when_ordered = db.Column(db.DATE(), default=datetime.utcnow()) # when the delivery date happened - when_delivered = db.Column(db.TIMESTAMP(), default=None) + when_delivered = db.Column(db.DATE(), default=None) # when the delivery is expected ie what day expected_delivery_date = db.Column(db.DATE(), default=None) # automatic delivery diff --git a/app/classes/printing.py b/app/classes/printing.py new file mode 100644 index 0000000..602bf02 --- /dev/null +++ b/app/classes/printing.py @@ -0,0 +1,25 @@ +from app import db, ma, login_manager +from datetime import datetime + + + + +class Printer_jobs(db.Model): + __tablename__ = "printer_jobs" + + id = db.Column(db.Integer, + primary_key=True, + autoincrement=True, + unique=False) + + delivery_id = db.Column(db.Integer) + date_added = db.Column(db.Date(), default=datetime.utcnow()) + date_completed = db.Column(db.Date(), default=datetime.utcnow()) + employee_id = db.Column(db.Integer) + #0 = waiting + #1 = printing + #2 = printed + #3 = error + status = db.Column(db.Integer) + + \ No newline at end of file diff --git a/app/delivery/views.py b/app/delivery/views.py index 6f6127c..456a0f3 100755 --- a/app/delivery/views.py +++ b/app/delivery/views.py @@ -3,7 +3,8 @@ from flask_login import current_user from datetime import date, datetime, timedelta from app.delivery import delivery from app import db -from app.classes.customer import Customer_Customer +from app.classes.customer import (Customer_Customer, + Customer_Customer_schema) from app.classes.delivery import (Delivery_Delivery, Delivery_Delivery_schema, Delivery_Notes_Driver, @@ -13,7 +14,7 @@ from app.classes.cards import Card_Card from app.classes.pricing import Pricing_Oil_Oil from app.classes.auth import Auth_User from app.classes.money import Money_delivery - +from app.classes.printing import Printer_jobs @delivery.route("/", methods=["GET"]) @@ -24,7 +25,8 @@ def get_a_delivery(delivery_id): .query(Delivery_Delivery)\ .filter(Delivery_Delivery.id == delivery_id)\ .first() - get_taxes = db.session.query(Money_delivery).all() + + return jsonify({ "ok": True, 'delivery': { @@ -47,6 +49,16 @@ def get_a_delivery(delivery_id): }, }), 200 +@delivery.route("/past/", methods=["GET"]) +def get_customer_past_delivery(customer_id): + + get_customer_past_delivery = (db.session + .query(Delivery_Delivery) + .filter(Delivery_Delivery.customer_id == customer_id) + .limit(10)) + + delivery_schema = Delivery_Delivery_schema(many=True) + return jsonify(delivery_schema.dump(get_customer_past_delivery)) @delivery.route("/order/", methods=["GET"]) @@ -81,17 +93,27 @@ def update_a_delivery_payment(delivery_id, type_of_payment): return jsonify({"ok": True}), 200 -@delivery.route("/all", methods=["GET"]) -def get_deliveries_not_delivered_all(): +@delivery.route("/all/", methods=["GET"]) +def get_deliveries_not_delivered_all(page): """ This will get deliveries not done """ - + per_page_amount = 50 + if page is None: + offset_limit = 0 + elif page == 1: + offset_limit = 0 + else: + offset_limit = (per_page_amount * page) - per_page_amount + + deliveries = (db.session .query(Delivery_Delivery) - .filter(Delivery_Delivery.delivery_status != 1) + .filter(Delivery_Delivery.delivery_status != 10) .filter(Delivery_Delivery.delivery_status != 3) - .all()) + .order_by(Delivery_Delivery.id.asc()) + .limit(per_page_amount).offset(offset_limit)) + customer_schema = Delivery_Delivery_schema(many=True) return jsonify(customer_schema.dump(deliveries)) @@ -102,6 +124,7 @@ def get_deliveries_from_customer(customer_id, page): """ This will get deliveries not done """ + per_page_amount = 50 if page is None: offset_limit = 0 @@ -119,7 +142,7 @@ def get_deliveries_from_customer(customer_id, page): customer_schema = Delivery_Delivery_schema(many=True) return jsonify(customer_schema.dump(deliveries)) -@delivery.route("/all/", methods=["GET"]) +@delivery.route("/all/order/", methods=["GET"]) def get_deliveries_not_delivered(page): """ @@ -201,13 +224,15 @@ def get_deliveries_outfordelivery(page): deliveries = (db.session .query(Delivery_Delivery) - .filter(Delivery_Delivery.delivery_status == 2) + .filter(Delivery_Delivery.expected_delivery_date == date.today()) .order_by(Delivery_Delivery.delivery_status.asc()) .limit(per_page_amount).offset(offset_limit)) customer_schema = Delivery_Delivery_schema(many=True) return jsonify(customer_schema.dump(deliveries)) + + @delivery.route("/tommorrow/", methods=["GET"]) def get_deliveries_tommorrow(page): """ @@ -359,10 +384,11 @@ def edit_a_delivery(delivery_id): if not get_delivery: return jsonify({"ok": False}), 200 else: - gallons_ordered = request.json["gallons_ordered"] delivery_status = request.json["delivery_status"] when_to_deliver = request.json["expected_delivery_date"] + print(when_to_deliver) + print(request.json["expected_delivery_date"]) dispatcher_notes_taken = request.json["dispatcher_notes_taken"] customer_wants_fill = request.json["customer_asked_for_fill"] card_payment = request.json["credit"] @@ -527,7 +553,6 @@ def create_a_delivery(user_id): else: same_day_asked = 0 - date_object = datetime.strptime(when_to_deliver, '%Y-%m-%d').date() customer_filled_name = get_customer.customer_last_name + ' ' + get_customer.customer_first_name now = datetime.utcnow() @@ -563,7 +588,7 @@ def create_a_delivery(user_id): delivery_status=0, when_ordered=now, when_delivered=None, - expected_delivery_date=date_object, + expected_delivery_date=when_to_deliver, automatic=get_customer.customer_automatic, oil_id=get_today_price.id, supplier_price=get_today_price.price_from_supplier, diff --git a/app/stats/views.py b/app/stats/views.py index 780ca31..b197c44 100755 --- a/app/stats/views.py +++ b/app/stats/views.py @@ -53,8 +53,9 @@ def total_deliveries_today_finished(): total_stops = (db.session .query(Delivery_Delivery) .filter(Delivery_Delivery.expected_delivery_date == date.today()) - .filter(or_(Delivery_Delivery.delivery_status == 1),(Delivery_Delivery.delivery_status == 10) - .count())) + .filter(or_(Delivery_Delivery.delivery_status == 1),(Delivery_Delivery.delivery_status == 10)) + .count()) + print(total_stops) return jsonify({"ok": True, 'data': total_stops, diff --git a/app/ticket/__init__.py b/app/ticket/__init__.py new file mode 100644 index 0000000..96b81fb --- /dev/null +++ b/app/ticket/__init__.py @@ -0,0 +1,7 @@ +# coding=utf-8 + +from flask import Blueprint + +ticket = Blueprint('ticket', __name__) + +from . import views \ No newline at end of file diff --git a/app/ticket/views.py b/app/ticket/views.py new file mode 100644 index 0000000..1389e0a --- /dev/null +++ b/app/ticket/views.py @@ -0,0 +1,14 @@ +from flask import jsonify +from app.ticket import ticket +from app import db +from app.classes.delivery import Delivery_Delivery + + +@ticket.route("/", methods=["GET"]) +def get_ticket_printer_letter(ticket_id): + + + + return jsonify({"ok": True, + + }), 200