You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_django/common/utils/payment.py

31 lines
847 B
Python

import datetime
from models.enums import ContainerLength, ContainerType
PAYMENT_SCHEMA = {
"standart": [[0, 5, 25], [5, 20, 40], [40, 1000000, 75]],
"reefer": [[0, 7, 35], [7, 30, 60], [30, 1000000, 115]],
}
def calc_storage_amount(depot, container):
result = (depot.expedited_on - depot.received_on + datetime.timedelta(days=1)).days
if container.container_type == ContainerType.ct_reefer:
data = PAYMENT_SCHEMA["reefer"]
result -= 1
else:
data = PAYMENT_SCHEMA["standart"]
for i in data:
start, end, price = i
if start <= result < end:
price_per_day = price
break
if container.container_length in (
ContainerLength.cl_40_ft,
ContainerLength.cl_45_ft,
):
result *= 2
result = result * price_per_day
return result