예제 #1
0
            objs.append(purchase)
            objs.append(delivery)

        return objs


sheet_columns = [
    "Face Shields",
    "ISO Gowns "
]

item_mappings = [
    Mapping(
        sheet_column_name=column,
        obj_column_name=column.strip().lower().replace(" ", "_"),
        proc=parse_int_or_zero,
    )
    for column in sheet_columns
]

EDC_PO_TRACKER = SheetMapping(
    data_file=DataFile.SUPPLIERS_PARTNERS_XLSX,
    sheet_name="Daily Delivery Roll up",
    mappings={
        *item_mappings,
        Mapping(sheet_column_name="Date", obj_column_name="delivery_date", proc=parse_date),
    },
    include_raw=True,
    obj_constructor=MakeRow,
    header_row_idx=3
예제 #2
0
        if self.eta is not None:
            deliveries.append(
                models.ScheduledDelivery(purchase=purchase,
                                         delivery_date=self.eta,
                                         quantity=self.quantity))

        return [purchase, *deliveries]


HNH_VENTS = SheetMapping(
    sheet_name=RegexMatch("H\+H (\d+-\d+) \d+[AP]M",
                          take_latest=True),  # 'H+H 4-3 3PM',
    data_file=DataFile.PPE_ORDERINGCHARTS_DATE_XLSX,
    mappings={
        Mapping(
            sheet_column_name="Equipment Detail",
            obj_column_name="type",
        ),
        Mapping(sheet_column_name="Adjusted ETA",
                obj_column_name="eta",
                proc=parse_date),
        Mapping(
            sheet_column_name="Quantity Ordered",
            obj_column_name="quantity",
            proc=parse_int,
        ),
        Mapping(
            sheet_column_name="Quantity Delivered",
            obj_column_name="quantity_delivered",
            proc=parse_int,
        ),
        Mapping(sheet_column_name="Functionality",
예제 #3
0
def date_or_pending(s: str, error_collector: ErrorCollector):
    if isinstance(s, str) and "pending" in s.lower():
        return None
    else:
        utils.parse_date(s, error_collector)


DONATION_DATA = SheetMapping(
    data_file=DataFile.CSH_DONATIONS,
    sheet_name=RegexMatch(
        # 05-12-20, not currently multiple sheets per workbook
        "(\d+-\d+-\d+)|({\w{8}-\w{4}-\w{4}-\w{4}-\w{5})"),
    header_row_idx=2,
    mappings={
        Mapping(
            sheet_column_name="Donor",
            obj_column_name="donor",
        ),
        Mapping(
            sheet_column_name="Notified Date",
            obj_column_name="notification_date",
            proc=utils.parse_date,
        ),
        Mapping(
            sheet_column_name="Person Of Contact",
            obj_column_name="contact_person",
        ),
        Mapping(
            sheet_column_name="Detailed Item Description",
            obj_column_name="description",
        ),
        Mapping(
예제 #4
0

def date_or_pending(s: str, error_collector: ErrorCollector):
    if isinstance(s, str) and "pending" in s.lower():
        return None
    else:
        utils.parse_date(s, error_collector)


DONATION_DATA = SheetMapping(
    data_file=DataFile.CSH_DONATIONS,
    sheet_name="List of Donations",
    header_row_idx=2,
    mappings={
        Mapping(
            sheet_column_name="Donor",
            obj_column_name="donor",
        ),
        Mapping(
            # NOTE: typo. They might fix.
            sheet_column_name="Donation notifcation Date",
            obj_column_name="notification_date",
            proc=utils.parse_date,
        ),
        Mapping(
            sheet_column_name="Person of Contact",
            obj_column_name="contact_person",
        ),
        Mapping(
            sheet_column_name="Detailed item description",
            obj_column_name="description",
        ),
예제 #5
0
            models.ScheduledDelivery(
                purchase=purchase, delivery_date=date, quantity=self.quantity,
            )
            for date in dates
        ]

        return [purchase, *delivery]


SUPPLIERS_AND_PARTNERS = SheetMapping(
    data_file=DataFile.SUPPLIERS_PARTNERS_XLSX,
    sheet_name="Wkly Delivery Tracker - CH",
    mappings={
        Mapping(
            sheet_column_name="Supply / Service",
            obj_column_name="item",
            proc=asset_name_to_item,
        ),
        Mapping(
            sheet_column_name="Number of Units",
            obj_column_name="quantity",
            proc=parse_int,
        ),
        Mapping(
            sheet_column_name="Delivery Date",
            obj_column_name="delivery_date",
            proc=parse_date,
        ),
        Mapping(sheet_column_name="Delivery Date", obj_column_name="raw_date"),
        Mapping(
            sheet_column_name="Counterparty Name (for procurement)",
예제 #6
0
                                 quantity=qt))
        return objs


sheet_columns = [
    "N95 Respirators", "Other Respirators", "Face Masks", "Face Shields",
    "Goggles", "Gloves", "Gowns", "Ponchos", "Aprons", "Vents",
    "Ventilator Parts", "Post Mortem Bags", "BiPap", "BiPap Parts",
    "Coveralls", "Shoe/Boot Covers", "Scrubs", "Multipurpose PPE",
    "Hand Sanitizer", "Misc", "Misc Non-Deployable"
]

item_mappings = [
    Mapping(
        sheet_column_name=column,
        obj_column_name=column,
        proc=parse_int_or_zero,
    ) for column in sheet_columns
]

FACILITY_DELIVERIES = SheetMapping(
    sheet_name="Facility Deliveries Summaries",
    data_file=DataFile.FACILITY_DELIVERIES,
    mappings={
        Mapping(sheet_column_name="Date",
                obj_column_name="date",
                proc=parse_date),
        Mapping(
            sheet_column_name="Facility Name or Network",
            obj_column_name="facility_name",
        ),
예제 #7
0
    "Face Masks",
    "Eyewear",
    "Gloves",
    "Gowns",
    "Ponchos",
    "Coveralls",
    "Vents",
    "BiPaps",
    "Multipurpose PPE",
    "Post Mortem Bags",
    "Scrubs",
]
item_mappings = [
    Mapping(
        sheet_column_name=column,
        obj_column_name=column.lower().replace(" ", "_"),
        proc=parse_int_or_zero,
    ) for column in sheet_columns
]
INVENTORY = SheetMapping(
    sheet_name="Inventory Levels",
    data_file=DataFile.FACILITY_DELIVERIES,
    mappings={
        *item_mappings,
        Mapping(sheet_column_name="Date",
                obj_column_name="date",
                proc=parse_date),
    },
    include_raw=True,
    obj_constructor=InventoryRow,
)
예제 #8
0
                          as_of=self.date,
                          raw_data=self.raw_data))
        return objs


sheet_columns = [
    "N95 Respirators", "Other Respirators", "Face Masks", "Face Shields",
    "Goggles", "Gloves", "Gowns", "Lab Coats", "Ponchos", "Coveralls",
    "Shoe Covers", "Aprons", "Vents", "Vent Parts", "Vent Medicines", "BiPaps",
    "BiPap Parts", "Multipurpose PPE", "Post Mortem Bags", "Scrubs", "Misc",
    "Misc Non-Deployable", "Hand Sanitizer"
]
item_mappings = [
    Mapping(
        sheet_column_name=column,
        obj_column_name=column,
        proc=parse_int_or_zero,
    ) for column in sheet_columns
]
INVENTORY = SheetMapping(
    sheet_name="Inventory Levels",
    data_file=DataFile.FACILITY_DELIVERIES,
    mappings={
        *item_mappings,
        Mapping(sheet_column_name="Date",
                obj_column_name="date",
                proc=parse_date),
    },
    include_raw=True,
    obj_constructor=InventoryRow,
)
                    models.ScheduledDelivery(
                        purchase=purchase,
                        delivery_date=getattr(self, f"delivery_day_{day}"),
                        quantity=quantity,
                    ))
        return [purchase, *deliveries]


DCAS_DAILY_SOURCING = SheetMapping(
    sheet_name=RegexMatch("DCAS (\d+-\d+) \d+[AP]M",
                          take_latest=True),  #'DCAS 4-12 3PM',
    data_file=DataFile.PPE_ORDERINGCHARTS_DATE_XLSX,
    mappings={
        Mapping(
            sheet_column_name="Critical Asset",
            obj_column_name="item",
            proc=asset_name_to_item,
        ),
        Mapping(
            sheet_column_name="Description",
            obj_column_name="description",
        ),
        Mapping(
            sheet_column_name="Total Qty Ordered",
            obj_column_name="quantity",
            proc=parse_int,
        ),
        Mapping(
            sheet_column_name="Received Qty",
            obj_column_name="received_quantity",
            proc=parse_int,
예제 #10
0
    def to_objects(self, error_collector):
        return [
            models.Inventory(
                item=self.item,
                raw_data=self.raw_data,
                quantity=self.quantity,
            )
        ]

    def __repr__(self):
        return repr_no_raw(self)


INVENTORY = SheetMapping(
    sheet_name="InventoryHand",
    data_file=DataFile.INVENTORY,
    mappings={
        Mapping(
            sheet_column_name="Item",
            obj_column_name="item",
            proc=asset_name_to_item,
        ),
        Mapping(sheet_column_name="CITY",
                obj_column_name="quantity",
                proc=parse_int),
    },
    include_raw=True,
    obj_constructor=InventoryRow,
)
                demand=self.demand,
                start_date=self.week_start_date,
                end_date=self.week_end_date,
            )
        ]


sheet_columns = ["Item", "Demand", "Week Start", "Week End"]

WEEKLY_DEMANDS = SheetMapping(
    sheet_name=None,
    data_file=DataFile.HOSPITAL_DEMANDS,
    mappings={
        Mapping(
            sheet_column_name="Item",
            obj_column_name="item",
            proc=asset_name_to_item,
        ),
        Mapping(sheet_column_name="Demand",
                obj_column_name="demand",
                proc=parse_int_or_zero),
        Mapping(
            sheet_column_name="Week Start",
            obj_column_name="week_start_date",
            proc=parse_date,
        ),
        Mapping(
            sheet_column_name="Week End",
            obj_column_name="week_end_date",
            proc=parse_date,
        ),