Untitled

 avatar
unknown
plain_text
a year ago
1.5 kB
3
Indexable
from inventory_report.inventory import Inventory
from datetime import datetime

from inventory_report.reports.report import Report


class SimpleReport(Report):
    def __init__(self):
        self.inventory_data = []

    def add_inventory(self, inventory: Inventory) -> None:
        self.inventory_data.append(inventory) 

    def _get_oldest_manufacturing_date(self) -> str:
        return min(
            product.manufacturing_date for inventory in self.inventory_data for product in inventory.data
        )

    def _get_closest_expiration_date(self) -> str:
        return min(
            product.expiration_date for inventory in self.inventory_data for product in inventory.data
        )

    def _get_largest_company(self) -> str:
        companies = [product.company_name for inventory in self.inventory_data for product in inventory.data]
        return max(companies, key=companies.count)


    def generate(self) -> str:
        if not self.inventory_data:
            return "Inventory is empty"

        oldest_manufacturing_date = self._get_oldest_manufacturing_date()
        closest_expiration_date = self._get_closest_expiration_date()
        largest_company = self._get_largest_company()

        result = (
            f"Oldest manufacturing date: {oldest_manufacturing_date}\n"
            f"Closest expiration date: {closest_expiration_date}\n"
            f"Company with the largest inventory: {largest_company}"
        )

        return result
Editor is loading...
Leave a Comment