From a37163772f9fc52eba9269df8c60cfe0bcf396ea Mon Sep 17 00:00:00 2001 From: Tony Locke Date: Mon, 4 Sep 2023 13:09:46 +0100 Subject: [PATCH] i --- chellow/e/views.py | 34 ++++++++++++---------- chellow/templates/e/site_add_e_supply.html | 3 +- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/chellow/e/views.py b/chellow/e/views.py index 207a4bc33..17a9f9ed8 100644 --- a/chellow/e/views.py +++ b/chellow/e/views.py @@ -3909,9 +3909,10 @@ def site_add_e_supply_form_get(site_id): sscs = g.sess.scalars( select(Ssc) .select_from(MtcSsc) - .join(MtcParticipant) - .join(MtcLlfcSsc) + .join(Ssc, MtcSsc.ssc_id == Ssc.id) + .join(MtcLlfcSsc, MtcLlfcSsc.mtc_ssc_id == MtcSsc.id) .join(MtcLlfcSscPc) + .join(MtcParticipant) .where( MtcParticipant.participant == participant, MtcLlfcSscPc.pc == pc, @@ -3921,7 +3922,11 @@ def site_add_e_supply_form_get(site_id): .distinct() .order_by(Ssc.code, Ssc.valid_from.desc()) ).all() - ssc = sscs[0] + ssc_id = req_int_none("ssc_id") + if ssc_id in {s.id for s in sscs}: + ssc = Ssc.get_by_id(g.sess, ssc_id) + else: + ssc = sscs[0] if pc.code == "00": mtc_participants = [ @@ -3940,11 +3945,11 @@ def site_add_e_supply_form_get(site_id): mtc_participant for mtc_participant, mtc in g.sess.execute( select(MtcParticipant, Mtc) - .select_from(MtcParticipant) - .join(Mtc) - .join(MtcSsc) + .select_from(MtcLlfcSscPc) .join(MtcLlfcSsc) - .join(MtcLlfcSscPc) + .join(MtcSsc) + .join(MtcParticipant) + .join(Mtc) .where( MtcParticipant.participant == participant, MtcLlfcSscPc.pc == pc, @@ -3956,11 +3961,6 @@ def site_add_e_supply_form_get(site_id): .order_by(Mtc.code, MtcParticipant.valid_from.desc()) ) ] - if len(mtc_participants) == 0: - raise BadRequest( - f"For DNO {dno.dno_code}, PC {pc.code} and SSC {ssc.code} there " - f"are no valid MTCs from {hh_format(start_date)}." - ) mtc_participant_id = req_int_none("mtc_participant_id") if mtc_participant_id is None: @@ -3987,9 +3987,10 @@ def site_add_e_supply_form_get(site_id): else: imp_llfcs = g.sess.scalars( select(Llfc) - .select_from(MtcSsc) - .join(MtcLlfcSsc) + .select_from(MtcLlfcSsc) + .join(Llfc, Llfc.id == MtcLlfcSsc.llfc_id) .join(MtcLlfcSscPc) + .join(MtcSsc, MtcSsc.id == MtcLlfcSsc.mtc_ssc_id) .where( MtcSsc.mtc_participant == mtc_participant, MtcLlfcSscPc.pc == pc, @@ -4018,9 +4019,10 @@ def site_add_e_supply_form_get(site_id): else: exp_llfcs = g.sess.scalars( select(Llfc) - .select_from(MtcSsc) - .join(MtcLlfcSsc) + .select_from(MtcLlfcSsc) + .join(Llfc, Llfc.id == MtcLlfcSsc.llfc_id) .join(MtcLlfcSscPc) + .join(MtcSsc, MtcSsc.id == MtcLlfcSsc.mtc_ssc_id) .where( MtcSsc.mtc_participant == mtc_participant, MtcLlfcSscPc.pc == pc, diff --git a/chellow/templates/e/site_add_e_supply.html b/chellow/templates/e/site_add_e_supply.html index 3831cb8ee..45a921d4a 100644 --- a/chellow/templates/e/site_add_e_supply.html +++ b/chellow/templates/e/site_add_e_supply.html @@ -14,7 +14,7 @@
+ hx-include="[name='source_id'],[name='start_year'],[name='start_month'],[name='start_day'],[name='start_hour'],[name='start_minute'],[name='pc_id'],[name='name'],[name='imp_mpan_core'],[name='exp_mpan_core'],[name='mop_account'],[name='dc_account'],[name='dc_contract_id'],[name='mop_contract_id'],[name='imp_supplier_account'],[name='exp_supplier_account'],[name='imp_llfc_id'],[name='exp_llfc_id'],[name='mtc_participant_id'],[name='has_imp_mpan'],[name='has_exp_mpan'],[name='dno_id'],[name='gsp_group_id'],[name='ssc_id']"> @@ -42,6 +42,7 @@ value="{{request.values.exp_supplier_account}}"> +
{% endblock %}