@@ -27,6 +27,7 @@ def PREPAY_DEBITS_S3_BACKUP_FILEPATH(self):
2727 prepay_contacts : pandas .DataFrame
2828 prepay_debits_filepath : str
2929 upload_to_s3 : bool
30+ export_NERC_credits : bool = True # For testing purposes
3031
3132 @staticmethod
3233 def _load_prepay_debits (prepay_debits_filepath ):
@@ -53,6 +54,9 @@ def _process(self):
5354 self ._add_prepay_info ()
5455 self ._apply_prepayments ()
5556
57+ if self .export_NERC_credits :
58+ credits_snapshot = self ._get_prepay_credits_snapshot ()
59+ self ._export_prepay_credits_snapshot (credits_snapshot )
5660 self ._export_prepay_debits ()
5761 if self .upload_to_s3 :
5862 self ._export_s3_prepay_debits ()
@@ -200,13 +204,33 @@ def _apply_prepayments(self):
200204 self .prepay_debits .loc [
201205 debit_entry_mask , invoice .PREPAY_DEBIT_FIELD
202206 ] = prepay_amount_used
207+
208+ def _get_prepay_credits_snapshot (self ):
209+ managed_groups_list = list ()
210+ for group_name , group_dict in self .group_info_dict .items ():
211+ if group_dict [invoice .PREPAY_MANAGED_FIELD ]:
212+ managed_groups_list .append (group_name )
213+
214+ credits_mask = (
215+ self .prepay_credits [invoice .PREPAY_MONTH_FIELD ] == self .invoice_month
216+ ) & (
217+ self .prepay_credits [invoice .PREPAY_GROUP_NAME_FIELD ].isin (
218+ managed_groups_list
219+ )
220+ )
221+ return self .prepay_credits [credits_mask ]
203222
204223 def _backup_s3_prepay_debits (self ):
205224 invoice_bucket = util .get_invoice_bucket ()
206225 invoice_bucket .upload_file (
207226 self .prepay_debits_filepath , self .PREPAY_DEBITS_S3_BACKUP_FILEPATH
208227 )
209228
229+ def _export_prepay_credits_snapshot (self , credits_snapshot ):
230+ credits_snapshot .to_csv (
231+ f"NERC_Prepaid_Group-Credits-{ self .invoice_month } .csv" , index = False
232+ )
233+
210234 def _export_prepay_debits (self ):
211235 self .prepay_debits .to_csv (self .prepay_debits_filepath , index = False )
212236
0 commit comments