コード例 #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,
)
コード例 #9
0
                    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,
)
コード例 #11
0
                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,
        ),