added pending waiting

This commit is contained in:
2024-10-30 17:04:58 -04:00
parent b3f0e85574
commit 5e5b9274e1
8 changed files with 144 additions and 77 deletions

View File

@@ -4,6 +4,9 @@ ENV PYTHONFAULTHANDLER=1
ENV PYTHONUNBUFFERED=1 ENV PYTHONUNBUFFERED=1
ENV TZ=America/New_York
# RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV MODE="PRODUCTION" ENV MODE="PRODUCTION"
RUN mkdir -p /app RUN mkdir -p /app

View File

@@ -28,12 +28,12 @@ class Delivery_Delivery(db.Model):
customer_filled = db.Column(db.INTEGER) customer_filled = db.Column(db.INTEGER)
# integer value if delivered, waiting, cancelled etc # integer value if delivered, waiting, cancelled etc
# waiting = 0 # waiting = 0
# delivered = 1 # cancelled = 1
# out for delivery = 2 # out for delivery = 2
# cancelled = 3 # tommorrow = 3
# partial delivery = 4
# issue = 5 # issue = 5
# finalized = 10 # finalized = 10
delivery_status = db.Column(db.INTEGER) delivery_status = db.Column(db.INTEGER)
# when the call to order took place # when the call to order took place
@@ -51,7 +51,7 @@ class Delivery_Delivery(db.Model):
customer_price = db.Column(db.DECIMAL(6, 2)) customer_price = db.Column(db.DECIMAL(6, 2))
# weather # weather
customer_temperature = db.Column(db.DECIMAL(6, 2)) customer_temperature = db.Column(db.DECIMAL(6, 2))
# services
dispatcher_notes = db.Column(db.TEXT()) dispatcher_notes = db.Column(db.TEXT())

View File

@@ -40,7 +40,7 @@ def all_customers(page):
pagination all customers pagination all customers
""" """
per_page_amount = 50 per_page_amount = 10
if page is None: if page is None:
offset_limit = 0 offset_limit = 0
elif page == 1: elif page == 1:
@@ -200,7 +200,7 @@ def create_customer():
create_stats_customer = Stats_Customer( create_stats_customer = Stats_Customer(
customer_id = new_customer.id, customer_id = new_customer.id,
total_calls = 1, total_calls = 0,
service_calls_total = 0, service_calls_total = 0,
service_calls_total_spent = 0, service_calls_total_spent = 0,
service_calls_total_profit = 0, service_calls_total_profit = 0,

View File

@@ -3,6 +3,7 @@ from flask_login import current_user
from datetime import date, datetime, timedelta from datetime import date, datetime, timedelta
from app.delivery import delivery from app.delivery import delivery
from app import db from app import db
from sqlalchemy import or_
from app.classes.customer import (Customer_Customer) from app.classes.customer import (Customer_Customer)
from app.classes.delivery import (Delivery_Delivery, from app.classes.delivery import (Delivery_Delivery,
Delivery_Delivery_schema, Delivery_Delivery_schema,
@@ -16,6 +17,82 @@ from app.classes.promo import Promo_Promo
from app.classes.stats_customer import Stats_Customer from app.classes.stats_customer import Stats_Customer
@delivery.route("/updatestatus", methods=["GET"])
def move_deliveries():
"""
This will get deliveries not done
"""
counter = 0
today = date.today()
deliveries_today = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status != 10)
.filter(Delivery_Delivery.delivery_status != 5)
.filter(Delivery_Delivery.delivery_status != 1)
.filter(Delivery_Delivery.expected_delivery_date == today)
.all())
for f in deliveries_today:
if f.delivery_status != 2:
f.delivery_status = 2
db.session.add(f)
counter = counter + 1
tomm = date.today() + timedelta(days=1)
deliveries_tom = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status != 10)
.filter(Delivery_Delivery.delivery_status != 5)
.filter(Delivery_Delivery.delivery_status != 1)
.filter(Delivery_Delivery.expected_delivery_date == tomm)
.all())
for g in deliveries_tom:
if g.delivery_status != 3:
g.delivery_status = 3
db.session.add(g)
counter = counter + 1
deliveries_waiting = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status != 10)
.filter(Delivery_Delivery.delivery_status != 5)
.filter(Delivery_Delivery.delivery_status != 1)
.filter(Delivery_Delivery.expected_delivery_date != tomm)
.filter(Delivery_Delivery.expected_delivery_date > today)
.all())
for r in deliveries_waiting:
if r.delivery_status != 0:
r.delivery_status = 0
db.session.add(r)
counter = counter + 1
deliveries_pending = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status != 10)
.filter(Delivery_Delivery.delivery_status != 5)
.filter(Delivery_Delivery.delivery_status != 1)
.filter(Delivery_Delivery.expected_delivery_date < today)
.all())
for t in deliveries_pending:
if t.delivery_status != 9:
t.delivery_status = 9
db.session.add(t)
counter = counter + 1
if counter > 0:
db.session.commit()
return jsonify({
"ok": True,
'update': True,
}), 200
return jsonify({"ok": True}), 200
@delivery.route("/<int:delivery_id>", methods=["GET"]) @delivery.route("/<int:delivery_id>", methods=["GET"])
def get_a_delivery(delivery_id): def get_a_delivery(delivery_id):
""" """
@@ -33,7 +110,7 @@ def get_a_delivery(delivery_id):
'delivery_expected_delivery_date': str(get_delivery.expected_delivery_date), 'delivery_expected_delivery_date': str(get_delivery.expected_delivery_date),
'delivery_asked_for_fill': get_delivery.customer_asked_for_fill, 'delivery_asked_for_fill': get_delivery.customer_asked_for_fill,
'delivery_gallons_ordered': get_delivery.gallons_ordered, 'delivery_gallons_ordered': get_delivery.gallons_ordered,
'delivery_dispatcher_notes': get_delivery.dispatcher_notes, 'dispatcher_notes_taken': get_delivery.dispatcher_notes,
'delivery_prime': get_delivery.prime, 'delivery_prime': get_delivery.prime,
'delivery_emergency': get_delivery.emergency, 'delivery_emergency': get_delivery.emergency,
'delivery_same_day': get_delivery.same_day, 'delivery_same_day': get_delivery.same_day,
@@ -112,7 +189,7 @@ def update_a_delivery_payment(delivery_id, type_of_payment):
@delivery.route("/all/<int:page>", methods=["GET"]) @delivery.route("/all/<int:page>", methods=["GET"])
def get_deliveries_not_delivered_all(page): def get_deliveries_all(page):
""" """
This will get deliveries not done This will get deliveries not done
""" """
@@ -177,7 +254,7 @@ def get_deliveries_not_delivered(page):
deliveries = (db.session deliveries = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status == 0) .filter(Delivery_Delivery.delivery_status != 10)
.order_by(Delivery_Delivery.when_ordered.desc()) .order_by(Delivery_Delivery.when_ordered.desc())
.limit(per_page_amount).offset(offset_limit)) .limit(per_page_amount).offset(offset_limit))
@@ -201,7 +278,10 @@ def get_deliveries_waiting(page):
deliveries = (db.session deliveries = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status == 0) .filter(or_(Delivery_Delivery.delivery_status == 0,
)
)
.filter(Delivery_Delivery.expected_delivery_date != date.today())
.order_by(Delivery_Delivery.when_ordered.desc()) .order_by(Delivery_Delivery.when_ordered.desc())
.limit(per_page_amount).offset(offset_limit)) .limit(per_page_amount).offset(offset_limit))
@@ -210,10 +290,10 @@ def get_deliveries_waiting(page):
@delivery.route("/delivered/<int:page>", methods=["GET"])
def get_deliveries_delivered(page): @delivery.route("/pending/<int:page>", methods=["GET"])
def get_deliveries_pending(page):
""" """
This will get deliveries not done
""" """
per_page_amount = 50 per_page_amount = 50
if page is None: if page is None:
@@ -225,19 +305,16 @@ def get_deliveries_delivered(page):
deliveries = (db.session deliveries = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status == 1) .filter(Delivery_Delivery.delivery_status == 9)
.order_by(Delivery_Delivery.when_ordered.desc()) .order_by(Delivery_Delivery.delivery_status.asc())
.limit(per_page_amount).offset(offset_limit)) .limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True) customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries)) return jsonify(customer_schema.dump(deliveries))
@delivery.route("/outfordelivery/<int:page>", methods=["GET"]) @delivery.route("/outfordelivery/<int:page>", methods=["GET"])
def get_deliveries_outfordelivery(page): def get_deliveries_outfordelivery(page):
""" """
This will get deliveries not done
""" """
per_page_amount = 50 per_page_amount = 50
if page is None: if page is None:
@@ -249,8 +326,7 @@ def get_deliveries_outfordelivery(page):
deliveries = (db.session deliveries = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.expected_delivery_date == date.today()) .filter(Delivery_Delivery.delivery_status == 2)
.filter(Delivery_Delivery.delivery_status != 10)
.order_by(Delivery_Delivery.delivery_status.asc()) .order_by(Delivery_Delivery.delivery_status.asc())
.limit(per_page_amount).offset(offset_limit)) .limit(per_page_amount).offset(offset_limit))
@@ -275,10 +351,11 @@ def get_deliveries_tommorrow(page):
deliveries = (db.session deliveries = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.expected_delivery_date == tomm) .filter(Delivery_Delivery.delivery_status == 3)
.order_by(Delivery_Delivery.when_ordered.desc()) .order_by(Delivery_Delivery.when_ordered.desc())
.limit(per_page_amount).offset(offset_limit)) .limit(per_page_amount).offset(offset_limit))
customer_schema = Delivery_Delivery_schema(many=True) customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries)) return jsonify(customer_schema.dump(deliveries))
@@ -323,7 +400,7 @@ def get_deliveries_cancelled(page):
deliveries = (db.session deliveries = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status == 3) .filter(Delivery_Delivery.delivery_status == 1)
.order_by(Delivery_Delivery.when_ordered.desc()) .order_by(Delivery_Delivery.when_ordered.desc())
.limit(per_page_amount).offset(offset_limit)) .limit(per_page_amount).offset(offset_limit))
@@ -388,7 +465,7 @@ def get_deliveries_today():
deliveries = (db.session deliveries = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.expected_delivery_date == date.today()) .filter(Delivery_Delivery.delivery_status == 2)
.all()) .all())
customer_schema = Delivery_Delivery_schema(many=True) customer_schema = Delivery_Delivery_schema(many=True)
@@ -399,7 +476,7 @@ def get_deliveries_today():
@delivery.route("/edit/<int:delivery_id>", methods=["POST"]) @delivery.route("/edit/<int:delivery_id>", methods=["POST"])
def edit_a_delivery(delivery_id): def edit_a_delivery(delivery_id):
""" """
This will create a delivery using a customer id This will edit a delivery using a delivery id
""" """
get_delivery = db.session \ get_delivery = db.session \
.query(Delivery_Delivery) \ .query(Delivery_Delivery) \
@@ -419,11 +496,10 @@ def edit_a_delivery(delivery_id):
delivery_status = request.json["delivery_status"] delivery_status = request.json["delivery_status"]
when_to_deliver = request.json["expected_delivery_date"] when_to_deliver = request.json["expected_delivery_date"]
when_ordered = request.json["created_delivery_date"] when_ordered = request.json["created_delivery_date"]
dispatcher_notes_taken = request.json["dispatcher_notes_taken"]
customer_wants_fill = request.json["customer_asked_for_fill"] customer_wants_fill = request.json["customer_asked_for_fill"]
card_payment = request.json["credit"] card_payment = request.json["credit"]
cash_payment = request.json["cash"] cash_payment = request.json["cash"]
dispatcher_notes = request.json["dispatcher_notes_taken"]
delivery_driver_id = request.json["driver_employee_id"] delivery_driver_id = request.json["driver_employee_id"]
@@ -500,12 +576,13 @@ def edit_a_delivery(delivery_id):
else: else:
prime_info = 0 prime_info = 0
dispatcher_notes
get_delivery.dispatcher_notes = dispatcher_notes
get_delivery.delivery_status = delivery_status get_delivery.delivery_status = delivery_status
get_delivery.gallons_ordered = gallons_ordered get_delivery.gallons_ordered = gallons_ordered
get_delivery.customer_asked_for_fill = customer_wants_fill get_delivery.customer_asked_for_fill = customer_wants_fill
get_delivery.expected_delivery_date = when_to_deliver get_delivery.expected_delivery_date = when_to_deliver
get_delivery.when_ordered = when_ordered get_delivery.when_ordered = when_ordered
get_delivery.dispatcher_notes = dispatcher_notes_taken
get_delivery.prime = prime_info get_delivery.prime = prime_info
get_delivery.same_day = same_day_info get_delivery.same_day = same_day_info
get_delivery.gallons_ordered = gallons_ordered get_delivery.gallons_ordered = gallons_ordered
@@ -547,6 +624,7 @@ def create_a_delivery(user_id):
if not get_customer: if not get_customer:
return jsonify({"ok": False}), 200 return jsonify({"ok": False}), 200
else: else:
gallons_ordered = request.json["gallons_ordered"] gallons_ordered = request.json["gallons_ordered"]
customer_wants_fill = request.json["customer_asked_for_fill"] customer_wants_fill = request.json["customer_asked_for_fill"]
when_to_deliver = request.json["expected_delivery_date"] when_to_deliver = request.json["expected_delivery_date"]
@@ -650,7 +728,7 @@ def create_a_delivery(user_id):
same_day_asked = 0 same_day_asked = 0
customer_filled_name = get_customer.customer_last_name + ' ' + get_customer.customer_first_name customer_filled_name = get_customer.customer_first_name + ' ' + get_customer.customer_last_name
now = datetime.utcnow() now = datetime.utcnow()
# Pricing # Pricing
@@ -747,7 +825,7 @@ def cancel_a_delivery(delivery_id):
.filter(Delivery_Delivery.id == delivery_id)\ .filter(Delivery_Delivery.id == delivery_id)\
.first() .first()
get_delivery.delivery_status = 3 get_delivery.delivery_status = 1
db.session.add(get_delivery) db.session.add(get_delivery)
db.session.commit() db.session.commit()
@@ -837,7 +915,7 @@ def delivery_note_driver(delivery_id):
@delivery.route("/delete/<int:delivery_id>", methods=["DELETE"]) @delivery.route("/delete/<int:delivery_id>", methods=["DELETE"])
def service_delete_call(delivery_id): def delete_call(delivery_id):
""" """
delete a delivery call delete a delivery call
""" """
@@ -851,30 +929,6 @@ def service_delete_call(delivery_id):
return jsonify({"ok": True}), 200 return jsonify({"ok": True}), 200
@delivery.route("/updatestatus/outfordelivery", methods=["GET"])
def move_waiting_to_outtodelivery():
"""
This will get deliveries not done
"""
counter = 0
deliveries = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status == 0)
.filter(Delivery_Delivery.expected_delivery_date == date.today())
.all())
for f in deliveries:
f.delivery_status = 2
db.session.add(f)
counter = counter + 1
if counter > 0:
db.session.commit()
return jsonify({
"ok": True,
'update': True,
}), 200
return jsonify({"ok": True}), 200
@delivery.route("/total/<int:delivery_id>", methods=["GET"]) @delivery.route("/total/<int:delivery_id>", methods=["GET"])

View File

@@ -17,8 +17,7 @@ def delivered_delivery():
delivery_ticket = (db.session delivery_ticket = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(or_(Delivery_Delivery.delivery_status == 1, .filter(Delivery_Delivery.delivery_status == 10)
Delivery_Delivery.delivery_status == 10))
.all()) .all())
@@ -30,8 +29,7 @@ def delivered_delivery_count():
delivery_ticket = (db.session delivery_ticket = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(or_(Delivery_Delivery.delivery_status == 1, .filter(Delivery_Delivery.delivery_status == 10)
Delivery_Delivery.delivery_status == 10))
.count()) .count())
return jsonify({ return jsonify({
@@ -39,6 +37,7 @@ def delivered_delivery_count():
'count':delivery_ticket, 'count':delivery_ticket,
}), 200 }), 200
@deliverystatus.route("/today/driver/<int:user_id>", methods=["GET"]) @deliverystatus.route("/today/driver/<int:user_id>", methods=["GET"])
def get_deliveries_driver_today(user_id): def get_deliveries_driver_today(user_id):
""" """
@@ -56,17 +55,13 @@ def get_deliveries_driver_today(user_id):
@deliverystatus.route("/count/today", methods=["GET"]) @deliverystatus.route("/count/today", methods=["GET"])
def get_deliveries_driver_today_count(): def get_deliveries_today_count():
""" """
Get deliveries for driver that day Get deliveries for driver that day
""" """
get_delivery = (db.session get_delivery = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status != 10) .filter(Delivery_Delivery.delivery_status == 2)
.filter(Delivery_Delivery.delivery_status != 5)
.filter(Delivery_Delivery.delivery_status != 3)
.filter(Delivery_Delivery.delivery_status != 1)
.filter(Delivery_Delivery.expected_delivery_date == date.today())
.count()) .count())
return jsonify({ return jsonify({
@@ -85,7 +80,7 @@ def get_deliveries_driver_tommorrow(user_id):
get_delivery = (db.session get_delivery = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.driver_employee_id == user_id) .filter(Delivery_Delivery.driver_employee_id == user_id)
.filter(Delivery_Delivery.expected_delivery_date == tomm) .filter(Delivery_Delivery.delivery_status == 3)
.all()) .all())
delivery_schema = Delivery_Delivery_schema(many=True) delivery_schema = Delivery_Delivery_schema(many=True)
@@ -99,7 +94,7 @@ def get_deliveries_driver_tommorrow_count():
tomm = date.today() + timedelta(days=1) tomm = date.today() + timedelta(days=1)
get_delivery = (db.session get_delivery = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.expected_delivery_date == tomm) .filter(Delivery_Delivery.delivery_status == 3)
.count()) .count())
return jsonify({ return jsonify({
@@ -119,8 +114,6 @@ def get_deliveries_driver_waiting(user_id):
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.driver_employee_id == user_id) .filter(Delivery_Delivery.driver_employee_id == user_id)
.filter(Delivery_Delivery.delivery_status == 0) .filter(Delivery_Delivery.delivery_status == 0)
.filter(Delivery_Delivery.expected_delivery_date != tomm)
.filter(Delivery_Delivery.expected_delivery_date != date.today())
.all()) .all())
delivery_schema = Delivery_Delivery_schema(many=True) delivery_schema = Delivery_Delivery_schema(many=True)
@@ -128,17 +121,32 @@ def get_deliveries_driver_waiting(user_id):
@deliverystatus.route("/count/waiting", methods=["GET"]) @deliverystatus.route("/count/waiting", methods=["GET"])
def get_deliveries_driver_waiting_count(): def get_deliveries_waiting_count():
""" """
waiting deliveries scheduled out waiting deliveries scheduled out
""" """
tomm = date.today() + timedelta(days=1) tomm = date.today() + timedelta(days=1)
get_delivery = (db.session get_delivery = (db.session
.query(Delivery_Delivery) .query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status == 0) .filter(Delivery_Delivery.delivery_status == 0)
.filter(Delivery_Delivery.expected_delivery_date != tomm) .count())
.filter(Delivery_Delivery.expected_delivery_date != date.today())
return jsonify({
"ok": True,
'count':get_delivery,
}), 200
@deliverystatus.route("/count/pending", methods=["GET"])
def get_deliveries_pending_count():
"""
"""
get_delivery = (db.session
.query(Delivery_Delivery)
.filter(Delivery_Delivery.delivery_status == 9)
.count()) .count())

View File

@@ -111,7 +111,7 @@ def create_user_card(user_id):
type_of_card = request.json["type_of_card"] type_of_card = request.json["type_of_card"]
security_number = request.json["security_number"] security_number = request.json["security_number"]
main_card = request.json["main_card"] main_card = request.json["main_card"]
zip_code = request.json["main_card"] zip_code = request.json["zip_code"]
card_number = request.json["card_number"] card_number = request.json["card_number"]
last_four = card_number[-4] last_four = card_number[-4]

View File

@@ -20,6 +20,7 @@ def get_customer_posts(customer_id, page):
customer_posts = (db.session customer_posts = (db.session
.query(Customer_Customer_Social) .query(Customer_Customer_Social)
.filter(Customer_Customer_Social.customer_id == customer_id) .filter(Customer_Customer_Social.customer_id == customer_id)
.order_by(Customer_Customer_Social.id.desc())
.limit(per_page_amount).offset(offset_limit)) .limit(per_page_amount).offset(offset_limit))
customer_social_schema = Customer_Customer_Social_schema(many=True) customer_social_schema = Customer_Customer_Social_schema(many=True)
return jsonify(customer_social_schema.dump(customer_posts)) return jsonify(customer_social_schema.dump(customer_posts))

View File

@@ -160,6 +160,7 @@ def get_user_last_delivery(user_id):
get_delivery= db.session \ get_delivery= db.session \
.query(Delivery_Delivery) \ .query(Delivery_Delivery) \
.filter(Delivery_Delivery.customer_id == user_id) \ .filter(Delivery_Delivery.customer_id == user_id) \
.filter(Delivery_Delivery.delivery_status == 10) \
.order_by(Delivery_Delivery.id.desc())\ .order_by(Delivery_Delivery.id.desc())\
.first() .first()
if get_delivery: if get_delivery:
@@ -167,7 +168,7 @@ def get_user_last_delivery(user_id):
else: else:
date_delivered = "no deliveries on record" date_delivered = "no deliveries on record"
return jsonify({"ok": True, return jsonify({"ok": True,
'date': date_delivered, 'date': str(date_delivered),
}), 200 }), 200