Skip to content

Commit 3d14d79

Browse files
committed
Added MOCA Prepaid Invoice
This invoice has custom output filepaths for S3, and only lists projects belonging to prepay groups not managed by MGHPCC
1 parent e95349a commit 3d14d79

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from process_report.invoices import invoice
2+
import process_report.util as util
3+
4+
5+
class MOCAPrepaidInvoice(invoice.Invoice):
6+
export_columns_list = [
7+
invoice.INVOICE_DATE_FIELD,
8+
invoice.PROJECT_FIELD,
9+
invoice.PROJECT_ID_FIELD,
10+
invoice.PI_FIELD,
11+
invoice.INVOICE_EMAIL_FIELD,
12+
invoice.INVOICE_ADDRESS_FIELD,
13+
invoice.INSTITUTION_FIELD,
14+
invoice.INSTITUTION_ID_FIELD,
15+
invoice.SU_HOURS_FIELD,
16+
invoice.SU_TYPE_FIELD,
17+
invoice.RATE_FIELD,
18+
invoice.GROUP_NAME_FIELD,
19+
invoice.GROUP_INSTITUTION_FIELD,
20+
invoice.GROUP_BALANCE_FIELD,
21+
invoice.COST_FIELD,
22+
invoice.GROUP_BALANCE_USED_FIELD,
23+
invoice.CREDIT_FIELD,
24+
invoice.CREDIT_CODE_FIELD,
25+
invoice.BALANCE_FIELD,
26+
]
27+
28+
@property
29+
def output_path(self) -> str:
30+
return f"MOCA-A_Prepaid_Groups-{self.invoice_month}-Invoice.csv"
31+
32+
@property
33+
def output_s3_key(self) -> str:
34+
return f"Invoices/{self.invoice_month}/MOCA-A_Prepaid_Groups-{self.invoice_month}-Invoice.csv"
35+
36+
@property
37+
def output_s3_archive_key(self):
38+
return f"Invoices/{self.invoice_month}/Archive/MOCA-A_Prepaid_Groups-{self.invoice_month}-Invoice {util.get_iso8601_time()}.csv"
39+
40+
def _prepare_export(self):
41+
self.data = self.data[self.data[invoice.GROUP_MANAGED_FIELD] == False] # noqa: E712

process_report/process_report.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
NERC_total_invoice,
1616
bu_internal_invoice,
1717
pi_specific_invoice,
18+
MOCA_prepaid_invoice,
1819
)
1920
from process_report.processors import (
2021
validate_pi_alias_processor,
@@ -352,6 +353,10 @@ def main():
352353
name=args.output_folder, invoice_month=invoice_month, data=processed_data
353354
)
354355

356+
moca_prepaid_inv = MOCA_prepaid_invoice.MOCAPrepaidInvoice(
357+
name="", invoice_month=invoice_month, data=processed_data.copy()
358+
)
359+
355360
util.process_and_export_invoices(
356361
[
357362
lenovo_inv,
@@ -360,6 +365,7 @@ def main():
360365
nerc_total_inv,
361366
bu_internal_inv,
362367
pi_inv,
368+
moca_prepaid_inv,
363369
],
364370
args.upload_to_s3,
365371
)

0 commit comments

Comments
 (0)