@@ -129,21 +129,22 @@ def get_submission_filter(account_type, filters):
129129 )
130130
131131 submission_filter = Q (
132- outlay_filter & (Q (gross_outlay_amount_by_award_cpe__gt = 0 ) | Q (gross_outlay_amount_by_award_cpe__lt = 0 ))
132+ outlay_filter
133+ & Q (
134+ Q (gross_outlay_amount_by_award_cpe__gt = 0 )
135+ | Q (gross_outlay_amount_by_award_cpe__lt = 0 )
136+ | Q (ussgl487200_down_adj_pri_ppaid_undel_orders_oblig_refund_cpe__gt = 0 )
137+ | Q (ussgl487200_down_adj_pri_ppaid_undel_orders_oblig_refund_cpe__lt = 0 )
138+ | Q (ussgl497200_down_adj_pri_paid_deliv_orders_oblig_refund_cpe__gt = 0 )
139+ | Q (ussgl497200_down_adj_pri_paid_deliv_orders_oblig_refund_cpe__lt = 0 )
140+ )
133141 ) | Q (obligation_filter & Q (Q (transaction_obligated_amount__gt = 0 ) | Q (transaction_obligated_amount__lt = 0 )))
134142
135143 return submission_filter
136144
137145
138- def generate_gross_outlay_amount_derived_field (filters , account_type ):
139- column_name = {
140- "account_balances" : "gross_outlay_amount_by_tas_cpe" ,
141- "object_class_program_activity" : "gross_outlay_amount_by_program_object_class_cpe" ,
142- "award_financial" : "gross_outlay_amount_by_award_cpe" ,
143- }[account_type ]
144-
146+ def _generate_closed_period_for_derived_field (filters , column_name ):
145147 filter_year = filters .get ("fy" )
146-
147148 closed_periods = get_last_closed_periods_per_year ()
148149
149150 q = Q ()
@@ -163,6 +164,26 @@ def generate_gross_outlay_amount_derived_field(filters, account_type):
163164 return Cast (Value (None ), DecimalField (max_digits = 23 , decimal_places = 2 ))
164165
165166
167+ def generate_ussgl487200_derived_field (filters ):
168+ column_name = "ussgl487200_down_adj_pri_ppaid_undel_orders_oblig_refund_cpe"
169+ return _generate_closed_period_for_derived_field (filters , column_name )
170+
171+
172+ def generate_ussgl497200_derived_field (filters ):
173+ column_name = "ussgl497200_down_adj_pri_paid_deliv_orders_oblig_refund_cpe"
174+ return _generate_closed_period_for_derived_field (filters , column_name )
175+
176+
177+ def generate_gross_outlay_amount_derived_field (filters , account_type ):
178+ column_name = {
179+ "account_balances" : "gross_outlay_amount_by_tas_cpe" ,
180+ "object_class_program_activity" : "gross_outlay_amount_by_program_object_class_cpe" ,
181+ "award_financial" : "gross_outlay_amount_by_award_cpe" ,
182+ }[account_type ]
183+
184+ return _generate_closed_period_for_derived_field (filters , column_name )
185+
186+
166187def generate_treasury_account_query (queryset , account_type , tas_id , filters ):
167188 """ Derive necessary fields for a treasury account-grouped query """
168189 derived_fields = {
@@ -176,6 +197,19 @@ def generate_treasury_account_query(queryset, account_type, tas_id, filters):
176197 }
177198
178199 lmd = "last_modified_date" + NAMING_CONFLICT_DISCRIMINATOR
200+
201+ if account_type != "account_balances" :
202+ derived_fields .update (
203+ {
204+ "downward_adj_prior_yr_ppaid_undeliv_orders_oblig_refunds_cpe" : Sum (
205+ generate_ussgl487200_derived_field (filters )
206+ ),
207+ "downward_adj_prior_yr_paid_delivered_orders_oblig_refunds_cpe" : Sum (
208+ generate_ussgl497200_derived_field (filters )
209+ ),
210+ }
211+ )
212+
179213 if account_type == "award_financial" :
180214 # Separating out last_modified_date like this prevents unnecessary grouping in the full File
181215 # C TAS download. Keeping it as MAX caused grouping on every single column in the SQL statement.
@@ -201,6 +235,17 @@ def generate_federal_account_query(queryset, account_type, tas_id, filters):
201235 "gross_outlay_amount_fyb_to_period_end" : Sum (generate_gross_outlay_amount_derived_field (filters , account_type )),
202236 }
203237
238+ if account_type != "account_balances" :
239+ derived_fields .update (
240+ {
241+ "downward_adj_prior_yr_ppaid_undeliv_orders_oblig_refunds_cpe" : Sum (
242+ generate_ussgl487200_derived_field (filters )
243+ ),
244+ "downward_adj_prior_yr_paid_delivered_orders_oblig_refunds_cpe" : Sum (
245+ generate_ussgl497200_derived_field (filters )
246+ ),
247+ }
248+ )
204249 if account_type == "award_financial" :
205250 derived_fields = award_financial_derivations (derived_fields )
206251
0 commit comments