Skip to content

Commit 2eddb93

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 e8ad7d8 commit 2eddb93

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
@@ -14,6 +14,7 @@
1414
NERC_total_invoice,
1515
bu_internal_invoice,
1616
pi_specific_invoice,
17+
MOCA_prepaid_invoice,
1718
)
1819
from process_report.processors import (
1920
validate_pi_alias_processor,
@@ -344,6 +345,10 @@ def main():
344345
name=args.output_folder, invoice_month=invoice_month, data=processed_data.copy()
345346
)
346347

348+
moca_prepaid_inv = MOCA_prepaid_invoice.MOCAPrepaidInvoice(
349+
name="", invoice_month=invoice_month, data=processed_data.copy()
350+
)
351+
347352
util.process_and_export_invoices(
348353
[
349354
lenovo_inv,
@@ -352,6 +357,7 @@ def main():
352357
nerc_total_inv,
353358
bu_internal_inv,
354359
pi_inv,
360+
moca_prepaid_inv,
355361
],
356362
args.upload_to_s3,
357363
)

0 commit comments

Comments
 (0)