124 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from flask import request, jsonify
 | |
| from flask_login import current_user
 | |
| from datetime import date
 | |
| from app.delivery_data import delivery_data
 | |
| from app import db
 | |
| from datetime import datetime
 | |
| from app.classes.customer import Customer_Customer
 | |
| from app.classes.delivery import (Delivery_Delivery,
 | |
|                                   Delivery_Delivery_schema,
 | |
|                                   Delivery_Notes_Driver,
 | |
|                                   Delivery_Payment,
 | |
|                                   Delivery_Payment_schema,
 | |
|                                   )
 | |
| 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.pricing import Pricing_Service_General
 | |
| 
 | |
| 
 | |
| 
 | |
| @delivery_data.route("/pending", methods=["GET"])
 | |
| def pending_delivery():
 | |
|     """
 | |
|     Get deliveries that have been delivered
 | |
|     """
 | |
| 
 | |
|     delivery_ticket = (db.session
 | |
|                      .query(Delivery_Delivery)
 | |
|                      .filter(Delivery_Delivery.delivery_status!=0)
 | |
|                      .all())
 | |
| 
 | |
| 
 | |
|     delivery_schema = Delivery_Delivery_schema(many=True)
 | |
|     return jsonify(delivery_schema.dump(delivery_ticket))
 | |
| 
 | |
| 
 | |
| 
 | |
| @delivery_data.route("/finalize/<int:delivery_id>", methods=["PUT"])
 | |
| def finalize_delivery(delivery_id):
 | |
|     """
 | |
|     Get deliveries that have been delivered
 | |
|     """
 | |
| 
 | |
|     """
 | |
|     Finalizes a delivery from office
 | |
|     """
 | |
|     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()
 | |
| 
 | |
|     get_customer = db.session \
 | |
|         .query(Customer_Customer) \
 | |
|         .filter(Customer_Customer.id == get_delivery.customer_id) \
 | |
|         .first()
 | |
| 
 | |
| 
 | |
|     gallons_delivered = request.json["gallons_delivered"]
 | |
|     card_payment = request.json["credit"]
 | |
|     cash_payment = request.json["cash"]
 | |
| 
 | |
|     if request.json["credit_card_id"]:
 | |
|         card_payment_id = request.json["credit_card_id"]
 | |
|     else:
 | |
|         card_payment_id = None
 | |
| 
 | |
| 
 | |
|     if card_payment_id is not None:
 | |
|         get_card = (db.session
 | |
|                     .query(Card_Card)
 | |
|                     .filter(Card_Card.id == card_payment_id)
 | |
|                     .filter(Card_Card.user_id == get_customer.id)
 | |
|                     .first())
 | |
|         card_id_from_customer = get_card.id
 | |
|     else:
 | |
|         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:
 | |
|         delivery_payment_method = 2
 | |
|     else:
 | |
|         delivery_payment_method = 3
 | |
| 
 | |
| 
 | |
| 
 | |
|     same_day_info = request.json["same_day"]
 | |
|     if same_day_info is True:
 | |
|         same_day_info = 1
 | |
|     else:
 | |
|         same_day_info = 0
 | |
| 
 | |
|     prime_info = request.json["prime"]
 | |
|     if prime_info is True:
 | |
|         prime_info = 1
 | |
|     else:
 | |
|         prime_info = 0
 | |
| 
 | |
|     get_delivery.gallons_delivered = gallons_delivered
 | |
|     get_delivery.prime = prime_info
 | |
|     get_delivery.same_day = same_day_info
 | |
|     get_delivery.payment_type = delivery_payment_method
 | |
|     get_delivery.payment_card_id = card_id_from_customer
 | |
| 
 | |
|     get_delivery.delivery_status = 10
 | |
|     db.session.add(get_delivery)
 | |
|     db.session.commit()
 | |
| 
 | |
|     return jsonify({
 | |
|         "ok": True,
 | |
|         'delivery': {
 | |
|             'id': get_delivery.id,
 | |
|         },
 | |
|     }), 200
 | |
| 
 |