File size: 1,166 Bytes
b13fa7f
ff33a83
b13fa7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from config import WRITE_OFF_RATE, BASE_STOCK, DEFAULT_SERVICE_LEVEL, MC_SIMS
#Inventory_Manager
class InventoryManager:
    def __init__(self, order_processor, agent):
        self.inventory = BASE_STOCK
        self.order_processor = order_processor
        self.total_write_off_quantity = 0
        self.agent = agent

    def reorder(self, time_period):
        reorder_point = self.agent.compute_reorder_point(time_period)
        if self.inventory <= reorder_point:
            self.order_processor.place_order(time_period, reorder_point)

    def inventory_update(self, demand_quantity):
        if self.inventory >= demand_quantity:
            self.inventory -= demand_quantity
        else:
            self.inventory = 0

    def apply_writeoff(self, time_period):
            write_off_quantity = int(self.inventory * WRITE_OFF_RATE)
            self.inventory -= write_off_quantity
            self.total_write_off_quantity += write_off_quantity
            return write_off_quantity

    def process_deliveries(self, time_period):
        processed_delivery = self.order_processor.manage_order(time_period)
        self.inventory += processed_delivery