added checks and finalize ticket
This commit is contained in:
@@ -36,6 +36,7 @@ class Delivery_Delivery(db.Model):
|
|||||||
# issue = 5
|
# issue = 5
|
||||||
# finalized = 10
|
# finalized = 10
|
||||||
delivery_status = db.Column(db.INTEGER)
|
delivery_status = db.Column(db.INTEGER)
|
||||||
|
emergency = db.Column(db.INTEGER)
|
||||||
# when the call to order took place
|
# when the call to order took place
|
||||||
when_ordered = db.Column(db.DATE(), default=datetime.utcnow())
|
when_ordered = db.Column(db.DATE(), default=datetime.utcnow())
|
||||||
# when the delivery date happened
|
# when the delivery date happened
|
||||||
@@ -58,6 +59,8 @@ class Delivery_Delivery(db.Model):
|
|||||||
# cash = 0
|
# cash = 0
|
||||||
# credit = 1
|
# credit = 1
|
||||||
# credit/cash = 2
|
# credit/cash = 2
|
||||||
|
# check = 3
|
||||||
|
# other = 4
|
||||||
payment_type = db.Column(db.INTEGER)
|
payment_type = db.Column(db.INTEGER)
|
||||||
payment_card_id = db.Column(db.INTEGER)
|
payment_card_id = db.Column(db.INTEGER)
|
||||||
cash_recieved = db.Column(db.DECIMAL(50, 2))
|
cash_recieved = db.Column(db.DECIMAL(50, 2))
|
||||||
@@ -69,6 +72,7 @@ class Delivery_Delivery(db.Model):
|
|||||||
pre_charge_amount = db.Column(db.DECIMAL(50, 2))
|
pre_charge_amount = db.Column(db.DECIMAL(50, 2))
|
||||||
total_price = db.Column(db.DECIMAL(50, 2))
|
total_price = db.Column(db.DECIMAL(50, 2))
|
||||||
final_price = db.Column(db.DECIMAL(50, 2))
|
final_price = db.Column(db.DECIMAL(50, 2))
|
||||||
|
check_number = db.Column(db.VARCHAR(20))
|
||||||
|
|
||||||
class Delivery_Delivery_schema(ma.SQLAlchemyAutoSchema):
|
class Delivery_Delivery_schema(ma.SQLAlchemyAutoSchema):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
21
app/classes/stats_company.py
Normal file
21
app/classes/stats_company.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
from app import db, ma
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
|
class Stats_Company(db.Model):
|
||||||
|
__tablename__ = 'stats_company'
|
||||||
|
__bind_key__ = 'eamco'
|
||||||
|
__table_args__ = {"schema": "public"}
|
||||||
|
|
||||||
|
id = db.Column(db.Integer,
|
||||||
|
primary_key=True,
|
||||||
|
autoincrement=True,
|
||||||
|
unique=False)
|
||||||
|
|
||||||
|
total_calls = db.Column(db.BigInteger)
|
||||||
|
|
||||||
|
|
||||||
|
class Stats_Company_schema(ma.SQLAlchemyAutoSchema):
|
||||||
|
class Meta:
|
||||||
|
model = Stats_Company
|
||||||
@@ -27,3 +27,6 @@ class Stats_Customer(db.Model):
|
|||||||
class Stats_Customer_schema(ma.SQLAlchemyAutoSchema):
|
class Stats_Customer_schema(ma.SQLAlchemyAutoSchema):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Stats_Customer
|
model = Stats_Customer
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -235,6 +235,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.expected_delivery_date == date.today())
|
||||||
|
.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))
|
||||||
|
|
||||||
|
|||||||
@@ -30,19 +30,80 @@ def office_finalize_delivery(delivery_id):
|
|||||||
.query(Customer_Customer) \
|
.query(Customer_Customer) \
|
||||||
.filter(Customer_Customer.id == get_delivery.customer_id) \
|
.filter(Customer_Customer.id == get_delivery.customer_id) \
|
||||||
.first()
|
.first()
|
||||||
|
|
||||||
|
delivery_driver_id = request.json["driver_employee_id"]
|
||||||
|
if delivery_driver_id is None:
|
||||||
|
delivery_driver_id = 2
|
||||||
|
if delivery_driver_id == 0:
|
||||||
|
delivery_driver_id = 2
|
||||||
|
|
||||||
|
get_driver = (db.session
|
||||||
|
.query(Employee_Employee)
|
||||||
|
.filter(Employee_Employee.id == delivery_driver_id)
|
||||||
|
.first())
|
||||||
|
|
||||||
|
get_stats = (db.session
|
||||||
|
.query(Stats_Employee_Oil)
|
||||||
|
.filter(Stats_Employee_Oil.employee_id == get_delivery.driver_employee_id)
|
||||||
|
.first())
|
||||||
|
|
||||||
|
if get_stats is None:
|
||||||
|
create_stats = Stats_Employee_Oil(
|
||||||
|
employee_id = get_delivery.driver_employee_id,
|
||||||
|
total_deliveries = 0,
|
||||||
|
total_gallons_delivered = 0,
|
||||||
|
total_primes = 0,
|
||||||
|
oil_total_profit_delivered = 0,
|
||||||
|
)
|
||||||
|
db.session.add(create_stats)
|
||||||
|
db.session.flush()
|
||||||
|
|
||||||
|
|
||||||
|
get_stats = (db.session
|
||||||
|
.query(Stats_Employee_Oil)
|
||||||
|
.filter(Stats_Employee_Oil.employee_id == get_delivery.driver_employee_id)
|
||||||
|
.first())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
customer_filled = request.json["customer_filled"]
|
||||||
|
if customer_filled is True:
|
||||||
|
customer_filled = 1
|
||||||
|
else:
|
||||||
|
customer_filled = 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if request.json["cash_recieved"]:
|
||||||
|
cash_amount = request.json["cash_recieved"]
|
||||||
|
else:
|
||||||
|
cash_amount = None
|
||||||
|
|
||||||
|
|
||||||
|
prime_info = request.json["prime"]
|
||||||
|
if prime_info is True:
|
||||||
|
prime_info = 1
|
||||||
|
current_primes = get_stats.total_primes
|
||||||
|
newprimes = current_primes + 1
|
||||||
|
get_stats.total_primes = newprimes
|
||||||
|
else:
|
||||||
|
prime_info = 0
|
||||||
|
|
||||||
|
|
||||||
gallons_delivered = request.json["gallons_delivered"]
|
gallons_delivered = request.json["gallons_delivered"]
|
||||||
card_payment = request.json["credit"]
|
cash = request.json["cash"]
|
||||||
cash_payment = request.json["cash"]
|
card_payment = request.json["card"]
|
||||||
|
check_payment = request.json["check"]
|
||||||
|
other_payment = request.json["other"]
|
||||||
|
|
||||||
|
check_number = request.json["other"]
|
||||||
|
|
||||||
|
|
||||||
if request.json["credit_card_id"]:
|
if request.json["credit_card_id"]:
|
||||||
card_payment_id = request.json["credit_card_id"]
|
card_payment_id = request.json["credit_card_id"]
|
||||||
else:
|
else:
|
||||||
card_payment_id = None
|
card_payment_id = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if card_payment_id is not None:
|
if card_payment_id is not None:
|
||||||
get_card = (db.session
|
get_card = (db.session
|
||||||
.query(Card_Card)
|
.query(Card_Card)
|
||||||
@@ -53,15 +114,20 @@ def office_finalize_delivery(delivery_id):
|
|||||||
else:
|
else:
|
||||||
card_id_from_customer = None
|
card_id_from_customer = None
|
||||||
|
|
||||||
if cash_payment is True and card_payment is False:
|
|
||||||
delivery_payment_method = 0
|
|
||||||
elif card_payment is True and cash_payment is False:
|
|
||||||
delivery_payment_method = 1
|
|
||||||
|
|
||||||
elif card_payment is True and cash_payment is True:
|
if cash is True and card_payment is False:
|
||||||
|
delivery_payment_method = 0
|
||||||
|
elif card_payment is True and cash is False:
|
||||||
|
delivery_payment_method = 1
|
||||||
|
elif card_payment is True and cash is True:
|
||||||
delivery_payment_method = 2
|
delivery_payment_method = 2
|
||||||
else:
|
elif check_payment is True :
|
||||||
delivery_payment_method = 3
|
delivery_payment_method = 3
|
||||||
|
elif other_payment is True :
|
||||||
|
delivery_payment_method = 4
|
||||||
|
else:
|
||||||
|
delivery_payment_method = 4
|
||||||
|
|
||||||
|
|
||||||
same_day_info = request.json["same_day"]
|
same_day_info = request.json["same_day"]
|
||||||
if same_day_info is True:
|
if same_day_info is True:
|
||||||
@@ -69,24 +135,35 @@ def office_finalize_delivery(delivery_id):
|
|||||||
else:
|
else:
|
||||||
same_day_info = 0
|
same_day_info = 0
|
||||||
|
|
||||||
prime_info = request.json["prime"]
|
|
||||||
if prime_info is True:
|
emergency_info = request.json["emergency"]
|
||||||
prime_info = 1
|
if emergency_info is True:
|
||||||
|
emergency_info = 1
|
||||||
else:
|
else:
|
||||||
prime_info = 0
|
emergency_info = 0
|
||||||
|
|
||||||
|
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.gallons_delivered = gallons_delivered
|
get_delivery.gallons_delivered = gallons_delivered
|
||||||
get_delivery.prime = prime_info
|
get_delivery.prime = prime_info
|
||||||
|
get_delivery.emergency = emergency_info
|
||||||
get_delivery.same_day = same_day_info
|
get_delivery.same_day = same_day_info
|
||||||
get_delivery.payment_type = delivery_payment_method
|
get_delivery.payment_type = delivery_payment_method
|
||||||
get_delivery.payment_card_id = card_id_from_customer
|
get_delivery.payment_card_id = card_id_from_customer
|
||||||
|
get_delivery.cash_recieved = cash_amount
|
||||||
|
get_delivery.check_number = check_number
|
||||||
get_delivery.delivery_status = 10
|
get_delivery.delivery_status = 10
|
||||||
|
|
||||||
|
# update stats
|
||||||
|
current_deliveres = get_stats.total_deliveries + 1
|
||||||
|
get_stats.total_deliveries = current_deliveres
|
||||||
|
|
||||||
|
current_gallons_delivered = Decimal(get_stats.total_gallons_delivered) + Decimal(gallons_delivered)
|
||||||
|
get_stats.total_gallons_delivered = current_gallons_delivered
|
||||||
|
|
||||||
print(get_delivery.gallons_delivered)
|
|
||||||
print(get_delivery.payment_type)
|
|
||||||
print(get_delivery.delivery_status)
|
|
||||||
|
|
||||||
db.session.add(get_delivery)
|
db.session.add(get_delivery)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
@@ -158,27 +235,25 @@ def driver_finalize_delivery(delivery_id):
|
|||||||
else:
|
else:
|
||||||
customer_filled = 1
|
customer_filled = 1
|
||||||
|
|
||||||
if get_delivery.automatic == 0:
|
|
||||||
if request.json["cash_amount"]:
|
if request.json["cash_amount"]:
|
||||||
cash_amount = request.json["cash_amount"]
|
cash_amount = request.json["cash_amount"]
|
||||||
else:
|
|
||||||
cash_amount = None
|
|
||||||
else:
|
else:
|
||||||
cash_amount = None
|
cash_amount = None
|
||||||
|
|
||||||
if get_delivery.automatic == 0:
|
|
||||||
prime_info = request.json["prime"]
|
|
||||||
if prime_info is True:
|
prime_info = request.json["prime"]
|
||||||
prime_info = 1
|
if prime_info is True:
|
||||||
current_primes = get_stats.total_primes
|
prime_info = 1
|
||||||
newprimes = current_primes + 1
|
current_primes = get_stats.total_primes
|
||||||
get_stats.total_primes = newprimes
|
newprimes = current_primes + 1
|
||||||
else:
|
get_stats.total_primes = newprimes
|
||||||
prime_info = 0
|
|
||||||
else:
|
else:
|
||||||
prime_info = 0
|
prime_info = 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## AUTOMATIC
|
## AUTOMATIC
|
||||||
if get_delivery.automatic == 1:
|
if get_delivery.automatic == 1:
|
||||||
get_auto_delivery = (db.session
|
get_auto_delivery = (db.session
|
||||||
|
|||||||
@@ -4,6 +4,36 @@ from datetime import date
|
|||||||
from app.stats import stats
|
from app.stats import stats
|
||||||
from app import db
|
from app import db
|
||||||
from app.classes.delivery import Delivery_Delivery
|
from app.classes.delivery import Delivery_Delivery
|
||||||
|
from app.classes.stats_company import Stats_Company, Stats_Company_schema
|
||||||
|
|
||||||
|
|
||||||
|
@stats.route("/calls/add", methods=["PUT"])
|
||||||
|
def total_calls_post():
|
||||||
|
total_calls_today = (db.session
|
||||||
|
.query(Stats_Company)
|
||||||
|
.filter(Stats_Company.expected_delivery_date == date.today())
|
||||||
|
.first())
|
||||||
|
current_call_count = total_calls_today.total_calls
|
||||||
|
new_call = current_call_count + 1
|
||||||
|
total_calls_today.total_calls = new_call
|
||||||
|
|
||||||
|
db.session.add(total_calls_today)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
return jsonify({"ok": True,}), 200
|
||||||
|
|
||||||
|
|
||||||
|
@stats.route("/calls/count/today", methods=["GET"])
|
||||||
|
def total_calls_today():
|
||||||
|
total_calls_today = (db.session
|
||||||
|
.query(Stats_Company)
|
||||||
|
.filter(Stats_Company.expected_delivery_date == date.today())
|
||||||
|
.count())
|
||||||
|
|
||||||
|
return jsonify({"ok": True,
|
||||||
|
'data': total_calls_today,
|
||||||
|
}), 200
|
||||||
|
|
||||||
|
|
||||||
@stats.route("/gallons/total/<int:driver_id>", methods=["GET"])
|
@stats.route("/gallons/total/<int:driver_id>", methods=["GET"])
|
||||||
@@ -64,7 +94,7 @@ def total_deliveries_today_finished():
|
|||||||
total_stops = (db.session
|
total_stops = (db.session
|
||||||
.query(Delivery_Delivery)
|
.query(Delivery_Delivery)
|
||||||
.filter(Delivery_Delivery.expected_delivery_date == date.today())
|
.filter(Delivery_Delivery.expected_delivery_date == date.today())
|
||||||
.filter(or_(Delivery_Delivery.delivery_status == 1),(Delivery_Delivery.delivery_status == 10))
|
.filter((Delivery_Delivery.delivery_status == 10))
|
||||||
.count())
|
.count())
|
||||||
|
|
||||||
return jsonify({"ok": True,
|
return jsonify({"ok": True,
|
||||||
|
|||||||
Reference in New Issue
Block a user