working money and delivery dates
This commit is contained in:
@@ -206,6 +206,7 @@ from .stats import stats as stats_blueprint
|
||||
app.register_blueprint(stats_blueprint, url_prefix='/stats')
|
||||
|
||||
with app.app_context():
|
||||
|
||||
db.configure_mappers()
|
||||
db.create_all()
|
||||
db.session.commit()
|
||||
|
||||
@@ -15,8 +15,8 @@ class Company_Company(db.Model):
|
||||
company_dba_name = db.Column(db.VARCHAR(250))
|
||||
company_llc_name = db.Column(db.VARCHAR(250))
|
||||
company_town = db.Column(db.VARCHAR(140))
|
||||
company_state = db.Column(db.VARCHAR(140))
|
||||
company_zip = db.Column(db.INTEGER)
|
||||
company_state = db.Column(db.INTEGER)
|
||||
company_zip = db.Column(db.VARCHAR(25))
|
||||
|
||||
|
||||
class Company_Company_schema(ma.SQLAlchemyAutoSchema):
|
||||
|
||||
@@ -13,7 +13,7 @@ class Money_delivery(db.Model):
|
||||
unique=False)
|
||||
|
||||
delivery_id = db.Column(db.INTEGER)
|
||||
time_added = db.Column(db.TIMESTAMP(), datetime.now(timezone.utc).replace(tzinfo=None))
|
||||
time_added = db.Column(db.TIMESTAMP(), default=datetime.utcnow())
|
||||
gallons_delivered = db.Column(db.DECIMAL(50, 2))
|
||||
supplier_price = db.Column(db.DECIMAL(50, 2))
|
||||
customer_price = db.Column(db.DECIMAL(50, 2))
|
||||
@@ -23,7 +23,7 @@ class Money_delivery(db.Model):
|
||||
total_amount_same_day = db.Column(db.DECIMAL(50, 2))
|
||||
total_amount_fee = db.Column(db.DECIMAL(50, 2))
|
||||
total_amount = db.Column(db.DECIMAL(50, 2))
|
||||
|
||||
total_profit_oil = db.Column(db.DECIMAL(50, 2))
|
||||
taxes_paid = db.Column(db.DECIMAL(50, 2))
|
||||
total_profit = db.Column(db.DECIMAL(50, 2))
|
||||
|
||||
@@ -39,7 +39,7 @@ class Pricing_Taxes(db.Model):
|
||||
__bind_key__ = 'eamco'
|
||||
__table_args__ = {"schema": "public"}
|
||||
|
||||
id = db.Column(dn.Integer,
|
||||
id = db.Column(db.Integer,
|
||||
primary_key=True,
|
||||
autoincrement=True,
|
||||
unique=False)
|
||||
|
||||
16
app/classes/taxes.py
Normal file
16
app/classes/taxes.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from app import db, ma
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class Pricing_Taxes(db.Model):
|
||||
__tablename__ = 'taxes_pricing'
|
||||
__bind_key__ = 'eamco'
|
||||
__table_args__ = {"schema": "public"}
|
||||
|
||||
id = db.Column(db.Integer,
|
||||
primary_key=True,
|
||||
autoincrement=True,
|
||||
unique=False)
|
||||
state_id = db.Column(db.Integer)
|
||||
taxes_oil = db.Column(db.DECIMAL(50, 2))
|
||||
taxes_other = db.Column(db.DECIMAL(50, 2))
|
||||
@@ -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.money import Money_delivery
|
||||
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ 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': {
|
||||
@@ -112,6 +113,7 @@ def get_deliveries_from_customer(customer_id, page):
|
||||
deliveries = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.customer_id == customer_id)
|
||||
.order_by(Delivery_Delivery.id.desc())
|
||||
.limit(per_page_amount).offset(offset_limit))
|
||||
|
||||
customer_schema = Delivery_Delivery_schema(many=True)
|
||||
@@ -200,7 +202,7 @@ def get_deliveries_outfordelivery(page):
|
||||
deliveries = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.delivery_status == 2)
|
||||
.order_by(Delivery_Delivery.when_ordered.desc())
|
||||
.order_by(Delivery_Delivery.delivery_status.asc())
|
||||
.limit(per_page_amount).offset(offset_limit))
|
||||
|
||||
customer_schema = Delivery_Delivery_schema(many=True)
|
||||
@@ -348,10 +350,6 @@ def edit_a_delivery(delivery_id):
|
||||
.filter(Delivery_Delivery.id == delivery_id) \
|
||||
.first()
|
||||
|
||||
get_today_price = (db.session
|
||||
.query(Pricing_Oil_Oil)
|
||||
.order_by(Pricing_Oil_Oil.id.desc())
|
||||
.first())
|
||||
|
||||
get_customer = db.session \
|
||||
.query(Customer_Customer) \
|
||||
@@ -706,3 +704,65 @@ def service_delete_call(delivery_id):
|
||||
db.session.commit()
|
||||
|
||||
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:
|
||||
print(f.id)
|
||||
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"])
|
||||
def calculate_total(delivery_id):
|
||||
"""
|
||||
This will get deliveries not done
|
||||
"""
|
||||
|
||||
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.id == delivery_id)
|
||||
.first())
|
||||
get_price_query = (db.session
|
||||
.query(Pricing_Oil_Oil)
|
||||
.order_by(Pricing_Oil_Oil.date.desc())
|
||||
.first())
|
||||
|
||||
|
||||
if get_delivery.prime == 1:
|
||||
priceprime = get_price_query.price_prime
|
||||
else:
|
||||
priceprime = 0
|
||||
if get_delivery.same_day == 1:
|
||||
pricesameday = get_price_query.price_prime
|
||||
else:
|
||||
pricesameday = 0
|
||||
|
||||
total = float(get_delivery.total_price) + float(priceprime) + float(pricesameday)
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
'priceprime': priceprime,
|
||||
'pricesameday': pricesameday,
|
||||
'total_amount':total
|
||||
}), 200
|
||||
@@ -5,8 +5,7 @@ from app.classes.customer import Customer_Customer
|
||||
from app.classes.delivery import Delivery_Delivery
|
||||
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.stats_employee import Stats_Employee_Oil
|
||||
from app.classes.stats_employee import Stats_Employee_Oil, Stats_Employee_Office
|
||||
|
||||
|
||||
|
||||
@@ -25,11 +24,6 @@ def office_finalize_delivery(delivery_id):
|
||||
.filter(Delivery_Delivery.id == delivery_id) \
|
||||
.first()
|
||||
|
||||
get_today_price = db.session \
|
||||
.query(Pricing_Oil_Oil) \
|
||||
.order_by(Pricing_Oil_Oil.id.desc()) \
|
||||
.first()
|
||||
|
||||
get_customer = db.session \
|
||||
.query(Customer_Customer) \
|
||||
.filter(Customer_Customer.id == get_delivery.customer_id) \
|
||||
@@ -65,7 +59,6 @@ def office_finalize_delivery(delivery_id):
|
||||
else:
|
||||
delivery_payment_method = 3
|
||||
|
||||
|
||||
same_day_info = request.json["same_day"]
|
||||
if same_day_info is True:
|
||||
same_day_info = 1
|
||||
@@ -107,32 +100,30 @@ def driver_finalize_delivery(delivery_id):
|
||||
"""
|
||||
Finalizes a delivery from office
|
||||
"""
|
||||
print(request.json)
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.id == delivery_id)
|
||||
.first())
|
||||
|
||||
get_today_price = (db.session
|
||||
.query(Pricing_Oil_Oil)
|
||||
.order_by(Pricing_Oil_Oil.id.desc())
|
||||
.first())
|
||||
|
||||
print(get_delivery.id)
|
||||
get_stats = (db.session
|
||||
.query(Stats_Employee_Oil)
|
||||
.filter(Stats_Employee_Oil == get_delivery.driver_employee_id)
|
||||
.filter(Stats_Employee_Oil.employee_id == get_delivery.driver_employee_id)
|
||||
.first())
|
||||
|
||||
|
||||
gallons_delivered = request.json["gallons_delivered"]
|
||||
|
||||
if request.json["driver_employee_id"]:
|
||||
delivery_driver_id = request.json["delivery_driver_id"]
|
||||
|
||||
|
||||
delivery_driver_id = request.json["driver_employee_id"]
|
||||
|
||||
get_driver = (db.session
|
||||
.query(Employee_Employee)
|
||||
.filter(Employee_Employee.id == delivery_driver_id)
|
||||
.first())
|
||||
same_driver = False
|
||||
else:
|
||||
same_driver = True
|
||||
|
||||
|
||||
customer_filled = request.json["customer_filled"]
|
||||
if customer_filled is True:
|
||||
@@ -160,7 +151,7 @@ def driver_finalize_delivery(delivery_id):
|
||||
get_delivery.customer_filled = customer_filled
|
||||
get_delivery.cash_recieved = cash_amount
|
||||
|
||||
if same_driver == False:
|
||||
|
||||
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
|
||||
@@ -174,7 +165,6 @@ def driver_finalize_delivery(delivery_id):
|
||||
get_stats.total_gallons_delivered = current_gallons_delivered
|
||||
|
||||
|
||||
|
||||
# update delivery status to delivered
|
||||
if get_delivery.payment_type == 0:
|
||||
get_delivery.delivery_status = 10
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
from flask import jsonify
|
||||
|
||||
from datetime import date, timedelta
|
||||
from app.delivery_status import deliverystatus
|
||||
from app import db
|
||||
from sqlalchemy import or_
|
||||
from datetime import datetime
|
||||
|
||||
from app.classes.delivery import (Delivery_Delivery,
|
||||
Delivery_Delivery_schema,
|
||||
)
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
from flask import request, jsonify
|
||||
from flask_login import current_user
|
||||
|
||||
from sqlalchemy import or_
|
||||
from datetime import date, timedelta
|
||||
|
||||
from flask_login import login_required
|
||||
from app.employees import employees
|
||||
from app import db
|
||||
from datetime import datetime
|
||||
from app.classes.employee import Employee_Employee, Employee_Employee_schema
|
||||
|
||||
from app.classes.stats_employee import Stats_Employee_Oil, Stats_Employee_Office
|
||||
|
||||
@employees.route("/<int:userid>", methods=["GET"])
|
||||
@login_required
|
||||
@@ -132,8 +131,25 @@ def employee_create():
|
||||
employee_phone_number=e_phone_number,
|
||||
)
|
||||
|
||||
|
||||
db.session.add(new_employee)
|
||||
db.session.commit()
|
||||
db.session.flush()
|
||||
|
||||
new_stats_office = Stats_Employee_Office(
|
||||
employee_id = new_employee.id,
|
||||
total_orders = 0,
|
||||
total_credit_cards_proccessed = 0,
|
||||
)
|
||||
db.session.add(new_stats_office)
|
||||
|
||||
new_stats_oil = Stats_Employee_Oil(
|
||||
employee_id = new_employee.id,
|
||||
total_deliveries = 0,
|
||||
total_gallons_delivered = 0,
|
||||
total_primes = 0,
|
||||
oil_total_profit_delivered = 0,
|
||||
)
|
||||
db.session.add(new_stats_oil)
|
||||
|
||||
return jsonify({"ok": True,
|
||||
'user_id': new_employee.id,
|
||||
|
||||
@@ -1,21 +1,36 @@
|
||||
from flask import jsonify
|
||||
from app.info import info
|
||||
from app import db
|
||||
from app.classes.pricing import Pricing_Oil_Oil
|
||||
from app.classes.pricing import Pricing_Oil_Oil, Pricing_Oil_Oil_schema
|
||||
from app.classes.admin import Admin_Company
|
||||
|
||||
|
||||
@info.route("/price/oil", methods=["GET"])
|
||||
def get_oil_price():
|
||||
def get_oil_price_today():
|
||||
get_price_query = (db.session
|
||||
.query(Pricing_Oil_Oil)
|
||||
.order_by(Pricing_Oil_Oil.date.desc())
|
||||
.first())
|
||||
return jsonify({"ok": True,
|
||||
'price': get_price_query.price_for_customer,
|
||||
'price_from_supplier': get_price_query.price_from_supplier,
|
||||
'price_for_customer': get_price_query.price_for_customer,
|
||||
'price_for_employee': get_price_query.price_for_employee,
|
||||
'price_same_day': get_price_query.price_same_day,
|
||||
'price_prime': get_price_query.price_prime,
|
||||
}), 200
|
||||
|
||||
|
||||
@info.route("/price/oil/table", methods=["GET"])
|
||||
def get_pricing():
|
||||
get_price_query = (db.session
|
||||
.query(Pricing_Oil_Oil)
|
||||
.order_by(Pricing_Oil_Oil.date.desc())
|
||||
.first())
|
||||
delivery_schema = Pricing_Oil_Oil_schema(many=False)
|
||||
return jsonify(delivery_schema.dump(get_price_query))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@info.route("/company", methods=["GET"])
|
||||
|
||||
@@ -1,20 +1,28 @@
|
||||
from flask import request, jsonify
|
||||
from flask_login import current_user
|
||||
from datetime import date, timedelta
|
||||
from flask import jsonify
|
||||
from app.query import query
|
||||
from app import db
|
||||
from datetime import datetime
|
||||
from app.classes.query import Query_StateList, \
|
||||
Query_DeliveryStatusList, \
|
||||
Query_DeliveryStatusList_Schema, \
|
||||
Query_StateList_Schema, \
|
||||
Query_CustomerTypeList, \
|
||||
Query_CustomerTypeList_Schema,\
|
||||
Query_EmployeeTypeList, \
|
||||
Query_EmployeeTypeList_Schema,\
|
||||
Query_ServiceTypeList,\
|
||||
Query_ServiceTypeList_Schema
|
||||
from app.classes.admin import Admin_Company
|
||||
from app.classes.query import (Query_StateList,
|
||||
Query_DeliveryStatusList,
|
||||
Query_DeliveryStatusList_Schema,
|
||||
Query_StateList_Schema,
|
||||
Query_CustomerTypeList,
|
||||
Query_CustomerTypeList_Schema,
|
||||
Query_EmployeeTypeList,
|
||||
Query_EmployeeTypeList_Schema)
|
||||
|
||||
@query.route("/company/<int:company_id>", methods=["GET"])
|
||||
def get_company(company_id):
|
||||
"""
|
||||
This will get the company from env variable
|
||||
"""
|
||||
|
||||
query_data = (db.session
|
||||
.query(Admin_Company)
|
||||
.filter(Admin_Company.id == company_id)
|
||||
.first())
|
||||
delivery_schema = Query_DeliveryStatusList_Schema(many=False)
|
||||
return jsonify(delivery_schema.dump(query_data))
|
||||
|
||||
@query.route("/states", methods=["GET"])
|
||||
def get_state_list():
|
||||
@@ -43,17 +51,6 @@ def get_customer_type_list():
|
||||
return jsonify(customer_schema.dump(query_data))
|
||||
|
||||
|
||||
@query.route("/servicetype", methods=["GET"])
|
||||
def get_service_type_list():
|
||||
"""
|
||||
This will get types of service
|
||||
"""
|
||||
|
||||
query_data = db.session \
|
||||
.query(Query_ServiceTypeList) \
|
||||
.all()
|
||||
customer_schema = Query_ServiceTypeList_Schema(many=True)
|
||||
return jsonify(customer_schema.dump(query_data))
|
||||
|
||||
|
||||
@query.route("/employeetype", methods=["GET"])
|
||||
@@ -80,3 +77,6 @@ def get_delivery_status_list():
|
||||
.all()
|
||||
delivery_schema = Query_DeliveryStatusList_Schema(many=True)
|
||||
return jsonify(delivery_schema.dump(query_data))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from flask import jsonify
|
||||
from sqlalchemy import func
|
||||
from sqlalchemy import func, or_
|
||||
from datetime import date
|
||||
from app.stats import stats
|
||||
from app import db
|
||||
@@ -23,9 +23,9 @@ def total_gallons_delivered_driver(driver_id):
|
||||
'data': sum_of_gallons,
|
||||
}), 200
|
||||
|
||||
|
||||
@stats.route("/delivery/total/<int:driver_id>", methods=["GET"])
|
||||
def total_deliveries_driver(driver_id):
|
||||
print(driver_id)
|
||||
total_stops = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.driver_employee_id == driver_id)
|
||||
@@ -34,3 +34,28 @@ def total_deliveries_driver(driver_id):
|
||||
return jsonify({"ok": True,
|
||||
'data': total_stops,
|
||||
}), 200
|
||||
|
||||
|
||||
@stats.route("/delivery/count/today", methods=["GET"])
|
||||
def total_deliveries_today():
|
||||
total_stops = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.expected_delivery_date == date.today())
|
||||
.count())
|
||||
print(total_stops)
|
||||
return jsonify({"ok": True,
|
||||
'data': total_stops,
|
||||
}), 200
|
||||
|
||||
|
||||
@stats.route("/delivery/count/delivered/today", methods=["GET"])
|
||||
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()))
|
||||
print(total_stops)
|
||||
return jsonify({"ok": True,
|
||||
'data': total_stops,
|
||||
}), 200
|
||||
|
||||
Reference in New Issue
Block a user