added promo

This commit is contained in:
2024-10-07 17:35:22 -04:00
parent fec638a5c8
commit d91460fa82
8 changed files with 287 additions and 24 deletions

View File

@@ -12,7 +12,7 @@ from app.classes.employee import Employee_Employee
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.promo import Promo_Promo
@delivery.route("/<int:delivery_id>", methods=["GET"])
def get_a_delivery(delivery_id):
@@ -43,6 +43,9 @@ def get_a_delivery(delivery_id):
'driver_employee_id': get_delivery.driver_employee_id,
'driver_first_name': get_delivery.driver_first_name,
'driver_last_name': get_delivery.driver_last_name,
'promo_id': get_delivery.promo_id,
'promo_money_discount': get_delivery.promo_money_discount,
},
}), 200
@@ -59,6 +62,7 @@ def get_customer_past_delivery1(customer_id):
delivery_schema = Delivery_Delivery_schema(many=True)
return jsonify(delivery_schema.dump(get_customer_past_delivery))
@delivery.route("/past2/<int:customer_id>", methods=["GET"])
def get_customer_past_delivery2(customer_id):
@@ -104,6 +108,7 @@ def update_a_delivery_payment(delivery_id, type_of_payment):
return jsonify({"ok": True}), 200
@delivery.route("/all/<int:page>", methods=["GET"])
def get_deliveries_not_delivered_all(page):
"""
@@ -130,6 +135,7 @@ def get_deliveries_not_delivered_all(page):
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/customer/<int:customer_id>/<int:page>", methods=["GET"])
def get_deliveries_from_customer(customer_id, page):
"""
@@ -153,6 +159,8 @@ def get_deliveries_from_customer(customer_id, page):
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/all/order/<int:page>", methods=["GET"])
def get_deliveries_not_delivered(page):
@@ -176,6 +184,8 @@ def get_deliveries_not_delivered(page):
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/waiting/<int:page>", methods=["GET"])
def get_deliveries_waiting(page):
"""
@@ -198,6 +208,8 @@ def get_deliveries_waiting(page):
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/delivered/<int:page>", methods=["GET"])
def get_deliveries_delivered(page):
"""
@@ -220,6 +232,8 @@ def get_deliveries_delivered(page):
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/outfordelivery/<int:page>", methods=["GET"])
def get_deliveries_outfordelivery(page):
"""
@@ -269,6 +283,7 @@ def get_deliveries_tommorrow(page):
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/finalized/<int:page>", methods=["GET"])
def get_deliveries_finalized(page):
"""
@@ -316,6 +331,7 @@ def get_deliveries_cancelled(page):
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/partialdelivery/<int:page>", methods=["GET"])
def get_deliveries_partial(page):
"""
@@ -338,6 +354,8 @@ def get_deliveries_partial(page):
customer_schema = Delivery_Delivery_schema(many=True)
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/issue/<int:page>", methods=["GET"])
def get_deliveries_issue(page):
"""
@@ -361,6 +379,7 @@ def get_deliveries_issue(page):
return jsonify(customer_schema.dump(deliveries))
@delivery.route("/time/today", methods=["GET"])
def get_deliveries_today():
"""
@@ -404,13 +423,38 @@ def edit_a_delivery(delivery_id):
customer_wants_fill = request.json["customer_asked_for_fill"]
card_payment = request.json["credit"]
cash_payment = request.json["cash"]
delivery_driver_id = request.json["driver_employee_id"]
delivery_driver_id = request.json["driver_employee_id"]
get_driver = (db.session
.query(Employee_Employee)
.filter(Employee_Employee.id == delivery_driver_id)
.first())
## promo
try:
if request.json["promo_id"]:
promo_id = request.json["promo_id"]
else:
promo_id = None
except:
promo_id = None
if promo_id is not None:
get_promo_data = (db.session
.query(Promo_Promo)
.filter(Promo_Promo.id == promo_id)
.first())
promo_id_get_delivery =get_promo_data.id,
promo_money_discount_get_delivery = get_promo_data.money_off_delivery
else:
promo_id_get_delivery =None
promo_money_discount_get_delivery = None
if request.json["credit_card_id"]:
card_payment_id = request.json["credit_card_id"]
else:
@@ -469,7 +513,9 @@ def edit_a_delivery(delivery_id):
get_delivery.driver_last_name = get_driver.employee_last_name
get_delivery.driver_first_name = get_driver.employee_first_name
get_delivery.driver_employee_id = get_driver.id
get_delivery.promo_id =promo_id_get_delivery
get_delivery.promo_money_discount = promo_money_discount_get_delivery
db.session.add(get_delivery)
db.session.commit()
@@ -515,26 +561,41 @@ def create_a_delivery(user_id):
check_payment = request.json["check"]
other_payment = request.json["other"]
## promo
try:
if request.json["promo_id"]:
promo_id = request.json["promo_id"]
else:
promo_id = None
except:
promo_id = None
if promo_id is not None:
get_promo_data = (db.session
.query(Promo_Promo)
.filter(Promo_Promo.id == promo_id)
.first())
promo_id_get_delivery =get_promo_data.id,
promo_money_discount_get_delivery = get_promo_data.money_off_delivery
else:
promo_id_get_delivery =None
promo_money_discount_get_delivery = None
# 0 = cash only
# 1 = credit only
# 2 = credit /cash
# 3 = check
# 4 = other
# 5 = unknown
if card_payment is True and cash_payment is True:
delivery_payment_method = 2
elif cash_payment is True:
delivery_payment_method = 0
elif card_payment is True:
delivery_payment_method = 1
elif check_payment is True:
delivery_payment_method = 3
elif other_payment is True:
delivery_payment_method = 4
else:
delivery_payment_method = 4
if cash_payment is True:
delivery_payment_method = 1
if card_payment is True:
delivery_payment_method = 2
if check_payment is True:
delivery_payment_method = 3
if other_payment is True:
delivery_payment_method = 4
get_driver = (db.session
@@ -648,6 +709,10 @@ def create_a_delivery(user_id):
driver_last_name=driver_l_name,
driver_first_name=driver_f_name,
driver_employee_id=driver_emp_id,
promo_id =promo_id_get_delivery,
promo_money_discount = promo_money_discount_get_delivery
)
db.session.add(new_delivery)
@@ -811,7 +876,16 @@ def calculate_total(delivery_id):
.query(Delivery_Delivery)
.filter(Delivery_Delivery.id == delivery_id)
.first())
if get_delivery.promo_id:
get_promo_data = (db.session
.query(Promo_Promo)
.filter(Promo_Promo.id == get_delivery.promo_id)
.first())
discount = (get_delivery.total_price * get_promo_data.money_off_delivery)
total_amount_after_discount = (get_delivery.total_price - discount)
else:
discount = 0
total_amount_after_discount = 0
get_price_query = (db.session
.query(Pricing_Oil_Oil)
.order_by(Pricing_Oil_Oil.date.desc())
@@ -840,4 +914,6 @@ def calculate_total(delivery_id):
'pricesameday': pricesameday,
'priceemergency': priceemergency,
'total_amount':total,
'discount': discount,
'total_amount_after_discount':total_amount_after_discount,
}), 200