From 0037264a2a98afe1ead5b36bc8b1347d90e36afc Mon Sep 17 00:00:00 2001 From: pauboixsom Date: Fri, 22 Nov 2024 11:21:55 +0100 Subject: [PATCH 01/18] =?UTF-8?q?=F0=9F=9A=A7=20AUVI=20CCPP=20first=20appr?= =?UTF-8?q?oach?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/report_backend_ccpp.py | 1 + .../report/components/auvi.mako | 15 +++++++++++++++ .../report/components/disclaimers.mako | 8 +++++--- .../report/components/prices_info.mako | 8 ++++++-- 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 som_polissa_condicions_generals/report/components/auvi.mako diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index b617bb853..749b65a27 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -159,6 +159,7 @@ def get_polissa_data(self, cursor, uid, pol, context=None): # res['fiscal_position'] = pol.fiscal_position res['potencia_max'] = pol.potencia res['mode_facturacio'] = pol.mode_facturacio + res['auvi'] = pol.te_auvidi res['te_assignacio_gkwh'] = pol.te_assignacio_gkwh res['bank'] = pol.bank or False diff --git a/som_polissa_condicions_generals/report/components/auvi.mako b/som_polissa_condicions_generals/report/components/auvi.mako new file mode 100644 index 000000000..6f623da0f --- /dev/null +++ b/som_polissa_condicions_generals/report/components/auvi.mako @@ -0,0 +1,15 @@ +<%def name="avui(polissa, prices)"> + + ${_(u"Terme energia (€/kWh)")} + + + ${_(u"Tarifa autoconsum virtual")}${_(u"(2) - el preu horari (PH) es calcula d'acord amb la fórmula:")} + +
+ + ${_(u"PH = 1,015 * [(PHM + Pc + Sc + Dsv + GdO + POsOm) (1 + Perd) + FE + F] + PTD + CA")} +
+ ${_(u"Percentatge i assignat")} + + + diff --git a/som_polissa_condicions_generals/report/components/disclaimers.mako b/som_polissa_condicions_generals/report/components/disclaimers.mako index fd0759ff7..46d30e5a8 100644 --- a/som_polissa_condicions_generals/report/components/disclaimers.mako +++ b/som_polissa_condicions_generals/report/components/disclaimers.mako @@ -1,13 +1,15 @@ <%def name="disclaimers(polissa)">

- ${_(u"Al contractar s’accepten aquestes ")} + ${_(u"Al contractar s'accepten aquestes ")} %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes']) or polissa['modcon_pendent_indexada']: ${_(u"Condicions Particulars, Específiques i les Condicions Generals,")} + %elif polissa['auvi']: + ${_(u"Condicions Particulars, Específiques de l'Autoconsum Virtual, Específiques de la tarifa Indexada i les Condicions Generals,")} %else: - ${_(u"Condicions Particulars i les Condicions Generals")} + ${_(u"Condicions Particulars i les Condicions Generals,")} %endif - ${_(u"que es poden consultar a les pàgines següents. Si ens cal modificar-les, a la clàusula 9 de les Condicions Generals s’explica el procediment que seguirem. En cas que hi hagi alguna discrepància, prevaldrà el que estigui previst en aquestes Condicions Particulars.")} + ${_(u"que es poden consultar a les pàgines següents. Si ens cal modificar-les, a la clàusula 9 de les Condicions Generals s'explica el procediment que seguirem. En cas que hi hagi alguna discrepància, prevaldrà el que estigui previst en aquestes Condicions Particulars.")}

diff --git a/som_polissa_condicions_generals/report/components/prices_info.mako b/som_polissa_condicions_generals/report/components/prices_info.mako index ed8e9cbce..0ce603996 100644 --- a/som_polissa_condicions_generals/report/components/prices_info.mako +++ b/som_polissa_condicions_generals/report/components/prices_info.mako @@ -105,6 +105,10 @@ %endfor %endif + %endif + %if polissa['auvi']: + <%namespace file="/som_polissa_condicions_generals/report/components/auvi.mako" import="auvi"/> + ${auvi(polissa, prices)} %endif ${_(u"Terme energia (€/kWh)")} @@ -184,7 +188,7 @@ %endif %endif %endfor - + %endif %if polissa['te_assignacio_gkwh']: @@ -270,7 +274,7 @@ %if polissa['te_assignacio_gkwh']: (1) ${_(u"Terme d'energia en cas de participar-hi, segons condicions del contracte GenerationkWh.")}
%endif - %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes']) or polissa['modcon_pendent_indexada']: + %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes']) or polissa['modcon_pendent_indexada'] or polissa['auvi']: (2) ${_(u"Pots consultar el significat de les variables a les condicions específiques que trobaràs a continuació.")} %endif From a64415a06415cf320ff488dc8d92d00fdadd5937 Mon Sep 17 00:00:00 2001 From: pauboixsom Date: Fri, 22 Nov 2024 13:29:36 +0100 Subject: [PATCH 02/18] =?UTF-8?q?=F0=9F=9A=A7=20Subcomponent=20working=20w?= =?UTF-8?q?ithout=20variables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pere Montagud Ferragud --- som_polissa_condicions_generals/report/components/auvi.mako | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/som_polissa_condicions_generals/report/components/auvi.mako b/som_polissa_condicions_generals/report/components/auvi.mako index 6f623da0f..0588999bc 100644 --- a/som_polissa_condicions_generals/report/components/auvi.mako +++ b/som_polissa_condicions_generals/report/components/auvi.mako @@ -1,4 +1,4 @@ -<%def name="avui(polissa, prices)"> +<%def name="auvi(polissa, prices)"> ${_(u"Terme energia (€/kWh)")} @@ -6,8 +6,8 @@ ${_(u"Tarifa autoconsum virtual")}${_(u"(2) - el preu horari (PH) es calcula d'acord amb la fórmula:")}
- - ${_(u"PH = 1,015 * [(PHM + Pc + Sc + Dsv + GdO + POsOm) (1 + Perd) + FE + F] + PTD + CA")} + + ${_(u"PHAUVI = 1,015 * [(PAUVI + Pc + Sc + Dsv + GdO + POsOm) (1 + Perd) + FE + F] + PTD + CA")}
${_(u"Percentatge i assignat")} From 35a763df1bb3b70ebb431778aff2e2d2789c394d Mon Sep 17 00:00:00 2001 From: pedropote Date: Mon, 25 Nov 2024 07:22:32 +0100 Subject: [PATCH 03/18] [FIX] Test --- .../tests/tests_report_backend_ccpp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py b/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py index ed95cf395..33bec58a4 100644 --- a/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py +++ b/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py @@ -95,6 +95,7 @@ def test_get_polissa_data_ok(self): pricelist = 12 self.assertEqual(result, { u'auto': u'00', + u'auvi': False, u'bank': False, u'contract_type': u'Anual', u'data_baixa': '2099-01-01', From 1a5818d3e894dd5b287135877870c50c96bfc32a Mon Sep 17 00:00:00 2001 From: pedropote Date: Mon, 25 Nov 2024 13:25:03 +0100 Subject: [PATCH 04/18] =?UTF-8?q?=F0=9F=9A=A7=20Get=20data=20and=20show=20?= =?UTF-8?q?it=20in=20report?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/report_backend_ccpp.py | 19 +++++++++++++++++++ .../report/components/auvi.mako | 19 +++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index 749b65a27..914af18f5 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -235,6 +235,7 @@ def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 prod_obj = self.pool.get("product.product") pricelist_obj = self.pool.get('product.pricelist') fp_obj = self.pool.get('account.fiscal.position') + sgpol_obj = self.pool.get('giscedata.servei.generacio.polissa') polissa = pol_obj.browse(cursor, uid, pol.id) if context.get('tarifa_provisional', False): dict_preus_tp_energia = context.get('tarifa_provisional')['preus_provisional_energia'] @@ -406,6 +407,24 @@ def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 res['coeficient_k_untaxed'] = coeficient_k_untaxed res['coeficient_k'] = coeficient_k + auvi_pauvi = 0.0 + auvi_name = "" + auvi_percent = 0 + if polissa.te_auvidi: + sgpol_ids = sgpol_obj.search(cursor, uid, [ + ('polissa_id', '=', pol.id), + ('data_sortida', '=', False) + ]) + if sgpol_ids: + sgpol = sgpol_obj.browse(cursor, uid, sgpol_ids[0]) + auvi_pauvi = 5.2 + auvi_percent = sgpol.percentatge + auvi_name = sgpol.servei_generacio_id.name + + res['auvi_pauvi'] = auvi_pauvi + res['auvi_name'] = auvi_name + res['auvi_percent'] = auvi_percent + return res diff --git a/som_polissa_condicions_generals/report/components/auvi.mako b/som_polissa_condicions_generals/report/components/auvi.mako index 0588999bc..d0238f62b 100644 --- a/som_polissa_condicions_generals/report/components/auvi.mako +++ b/som_polissa_condicions_generals/report/components/auvi.mako @@ -8,8 +8,23 @@
${_(u"PHAUVI = 1,015 * [(PAUVI + Pc + Sc + Dsv + GdO + POsOm) (1 + Perd) + FE + F] + PTD + CA")} -
- ${_(u"Percentatge i assignat")} + + + + ${_(u"on PAUVI")} + + + ${formatLang(prices['auvi_pauvi'], digits=6)} + + ${_(u" €/MWh")} + + + + ${_(u"percentatge assignat")} + + + ${prices['auvi_name']} ${formatLang(prices['auvi_percent'], digits=2)} ${_(u"%")} + From 8f8f046d386de88547459a99bc247703daf9136f Mon Sep 17 00:00:00 2001 From: pedropote Date: Tue, 26 Nov 2024 06:27:19 +0100 Subject: [PATCH 05/18] =?UTF-8?q?=E2=9C=85=20Fix=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- som_polissa_condicions_generals/models/report_backend_ccpp.py | 2 +- .../tests/tests_report_backend_ccpp.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index 914af18f5..ea8ae4fce 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -409,7 +409,7 @@ def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 auvi_pauvi = 0.0 auvi_name = "" - auvi_percent = 0 + auvi_percent = 0.0 if polissa.te_auvidi: sgpol_ids = sgpol_obj.search(cursor, uid, [ ('polissa_id', '=', pol.id), diff --git a/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py b/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py index 33bec58a4..b8e7de35c 100644 --- a/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py +++ b/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py @@ -124,6 +124,9 @@ def test_get_prices_data_ok(self): result = self.backend_obj.get_prices_data(self.cursor, self.uid, pol_20td, context={}) self.assertEqual(result, { + u'auvi_name': u'', + u'auvi_pauvi': 0.0, + u'auvi_percent': 0.0, u'coeficient_k': False, u'coeficient_k_untaxed': 0.0, u'dict_preus_tp_energia': False, From f87057dc53cb5bf117b60794a7807ec2f436be9e Mon Sep 17 00:00:00 2001 From: pedropote Date: Tue, 26 Nov 2024 07:23:50 +0100 Subject: [PATCH 06/18] =?UTF-8?q?=E2=9C=A8=20Auvi=20mako=20component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/components/auvi.mako | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/report/components/auvi.mako b/som_polissa_condicions_generals/report/components/auvi.mako index d0238f62b..df3c8fb65 100644 --- a/som_polissa_condicions_generals/report/components/auvi.mako +++ b/som_polissa_condicions_generals/report/components/auvi.mako @@ -8,6 +8,11 @@
${_(u"PHAUVI = 1,015 * [(PAUVI + Pc + Sc + Dsv + GdO + POsOm) (1 + Perd) + FE + F] + PTD + CA")} + %if polissa['tarifa'] != "2.0TD": +
+ ${_(u"on la franja de la cooperativa")} +  ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k_untaxed'], digits=6)} + %endif @@ -23,8 +28,19 @@ ${_(u"percentatge assignat")} - ${prices['auvi_name']} ${formatLang(prices['auvi_percent'], digits=2)} ${_(u"%")} + ${("AUVI %s") % prices['auvi_name']} ${formatLang(prices['auvi_percent'], digits=2)} ${_(u"%")} + %if polissa['tarifa'] == "2.0TD": + + ${_(u"on la franja de la cooperativa")} + + ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k_untaxed'], digits=6)} + + + ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k'], digits=6)} + + + %endif From 8433175f749c07a7ed620daad9d61b5e7b8e7dba Mon Sep 17 00:00:00 2001 From: pedropote Date: Tue, 26 Nov 2024 12:03:34 +0100 Subject: [PATCH 07/18] =?UTF-8?q?=F0=9F=90=9B=20Fix=20disclaimer=20mako=20?= =?UTF-8?q?component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/components/disclaimers.mako | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/report/components/disclaimers.mako b/som_polissa_condicions_generals/report/components/disclaimers.mako index 46d30e5a8..11da21912 100644 --- a/som_polissa_condicions_generals/report/components/disclaimers.mako +++ b/som_polissa_condicions_generals/report/components/disclaimers.mako @@ -2,7 +2,7 @@

${_(u"Al contractar s'accepten aquestes ")} - %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes']) or polissa['modcon_pendent_indexada']: + %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes'] and not polissa['auvi']) or polissa['modcon_pendent_indexada']: ${_(u"Condicions Particulars, Específiques i les Condicions Generals,")} %elif polissa['auvi']: ${_(u"Condicions Particulars, Específiques de l'Autoconsum Virtual, Específiques de la tarifa Indexada i les Condicions Generals,")} From 3d3370a7f45f2f19bd645a5543c55b055b4d55a6 Mon Sep 17 00:00:00 2001 From: pedropote Date: Tue, 26 Nov 2024 13:53:26 +0100 Subject: [PATCH 08/18] =?UTF-8?q?=F0=9F=9A=A7=20Remove=20AUVI=20hardcoded?= =?UTF-8?q?=20text=20in=20auvi=20mako=20component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- som_polissa_condicions_generals/report/components/auvi.mako | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/report/components/auvi.mako b/som_polissa_condicions_generals/report/components/auvi.mako index df3c8fb65..dd1a56444 100644 --- a/som_polissa_condicions_generals/report/components/auvi.mako +++ b/som_polissa_condicions_generals/report/components/auvi.mako @@ -28,7 +28,7 @@ ${_(u"percentatge assignat")} - ${("AUVI %s") % prices['auvi_name']} ${formatLang(prices['auvi_percent'], digits=2)} ${_(u"%")} + ${("%s") % prices['auvi_name']} ${formatLang(prices['auvi_percent'], digits=2)} ${_(u"%")} From a04820f1023d9c9e578d8aee70d09c9cd22f1142 Mon Sep 17 00:00:00 2001 From: pedropote Date: Tue, 3 Dec 2024 18:01:46 +0100 Subject: [PATCH 09/18] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Refactor=20including?= =?UTF-8?q?=20more=20cases=20to=20show=20auvi=20data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/report_backend_ccpp.py | 87 ++++++++++++++----- .../report/components/disclaimers.mako | 4 +- .../report/components/prices_info.mako | 4 +- .../condicions_particulars_puppeteer.mako | 5 +- 4 files changed, 75 insertions(+), 25 deletions(-) diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index ea8ae4fce..fff71eb6a 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -159,7 +159,6 @@ def get_polissa_data(self, cursor, uid, pol, context=None): # res['fiscal_position'] = pol.fiscal_position res['potencia_max'] = pol.potencia res['mode_facturacio'] = pol.mode_facturacio - res['auvi'] = pol.te_auvidi res['te_assignacio_gkwh'] = pol.te_assignacio_gkwh res['bank'] = pol.bank or False @@ -184,11 +183,14 @@ def get_polissa_data(self, cursor, uid, pol, context=None): if pol.state == 'esborrany': res['modcon_pendent_indexada'] = False res['modcon_pendent_periodes'] = False + res['modcon_pendent_auvi'] = False elif pol.state != 'esborrany' and not res['lead']: res['last_modcon_state'] = pol.modcontractuals_ids[0].state res['last_modcon_facturacio'] = pol.modcontractuals_ids[0].mode_facturacio + res['last_modcon_auvi'] = pol.modcontractuals_ids[0].te_auvidi res['modcon_pendent_indexada'] = res['last_modcon_state'] == 'pendent' and res['last_modcon_facturacio'] == 'index' # noqa: E501 res['modcon_pendent_periodes'] = res['last_modcon_state'] == 'pendent' and res['last_modcon_facturacio'] == 'atr' # noqa: E501 + res['modcon_pendent_auvi'] = res['last_modcon_state'] == 'pendent' and res['last_modcon_auvi'] # noqa: E501 if res['modcon_pendent_indexada'] or res['modcon_pendent_periodes']: res['pricelist'] = pol.modcontractuals_ids[0].llista_preu @@ -223,6 +225,66 @@ def get_cups_data(self, cursor, uid, pol, context=None): return res + def get_mostra_auvi(self, cursor, uid, pol, context=None): + res = False + if pol.state == 'esborrany' and pol.te_auvidi: + # Pol esborrany amb AUVI + res = True + elif pol.state != 'esborrany' and not context.get('lead', False): + # Pol activa + last_modcon_state = pol.modcontractuals_ids[0].state + last_modcon_facturacio = pol.modcontractuals_ids[0].mode_facturacio + last_modcon_auvi = pol.modcontractuals_ids[0].te_auvidi + modcon_pendent_periodes = last_modcon_state == 'pendent' and last_modcon_facturacio == 'atr' # noqa: E501 + modcon_pendent_auvi = last_modcon_state == 'pendent' and last_modcon_auvi + modcon_pendent_quit_auvi = last_modcon_state == 'pendent' \ + and pol.te_auvidi and not pol.modcontractuals_ids[0].te_auvidi + + if not pol.te_auvidi \ + or (pol.te_auvidi and (modcon_pendent_periodes or modcon_pendent_quit_auvi)): + res = False + elif (pol.te_auvidi and not modcon_pendent_periodes and not modcon_pendent_quit_auvi) \ + or modcon_pendent_auvi: + res = True + return res + + def get_auvi_data(self, cursor, uid, pol, context=None): + res = {} + auvi = self.get_mostra_auvi(cursor, uid, pol, context=context) + auvi_pauvi = 0.0 + auvi_name = "" + auvi_percent = 0.0 + sgpol_obj = self.pool.get('giscedata.servei.generacio.polissa') + if self.get_mostra_auvi(cursor, uid, pol, context=context): + today_str = datetime.today().strftime("%Y-%m-%d") + sgpol_ids = sgpol_obj.search(cursor, uid, [ + ('polissa_id', '=', pol.id), + ('cups_name', '=', pol.cups.name), + '|', + ('data_sortida', '=', False), + ('data_sortida', '>', today_str), + '|', + '&', + ('data_inici', '!=', False), + ('data_inici', '<=', today_str), + '&', + ('data_inici', '=', False), + ('data_incorporacio', '<=', today_str), + ]) + if len(sgpol_ids) > 0: + sgpol = sgpol_obj.browse(cursor, uid, sgpol_ids[0]) + auvi_pauvi = 5.2 + auvi_percent = sgpol.percentatge + auvi_name = sgpol.servei_generacio_id.name + + res = { + 'auvi': auvi, + 'auvi_pauvi': auvi_pauvi, + 'auvi_name': auvi_name, + 'auvi_percent': auvi_percent, + } + return res + def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 res = {} lead = context.get('lead') @@ -235,7 +297,6 @@ def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 prod_obj = self.pool.get("product.product") pricelist_obj = self.pool.get('product.pricelist') fp_obj = self.pool.get('account.fiscal.position') - sgpol_obj = self.pool.get('giscedata.servei.generacio.polissa') polissa = pol_obj.browse(cursor, uid, pol.id) if context.get('tarifa_provisional', False): dict_preus_tp_energia = context.get('tarifa_provisional')['preus_provisional_energia'] @@ -285,7 +346,7 @@ def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 elif dades_tarifa['date_end'] and dades_tarifa['date_start']: text_vigencia = _(u"(vigents fins al {})").format( (datetime.strptime(dades_tarifa['date_end'], '%Y-%m-%d')).strftime('%d/%m/%Y')) - elif datetime.strptime(dades_tarifa['date_start'], '%Y-%m-%d') > datetime.today(): + elif dades_tarifa['date_start'] and datetime.strptime(dades_tarifa['date_start'], '%Y-%m-%d') > datetime.today(): # noqa: E501 text_vigencia = _(u"(vigents a partir del {})").format( datetime.strptime(dades_tarifa['date_start'], '%Y-%m-%d').strftime('%d/%m/%Y')) ctx.update({'date': datetime.strptime(dades_tarifa['date_start'], '%Y-%m-%d')}) @@ -407,23 +468,9 @@ def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 res['coeficient_k_untaxed'] = coeficient_k_untaxed res['coeficient_k'] = coeficient_k - auvi_pauvi = 0.0 - auvi_name = "" - auvi_percent = 0.0 - if polissa.te_auvidi: - sgpol_ids = sgpol_obj.search(cursor, uid, [ - ('polissa_id', '=', pol.id), - ('data_sortida', '=', False) - ]) - if sgpol_ids: - sgpol = sgpol_obj.browse(cursor, uid, sgpol_ids[0]) - auvi_pauvi = 5.2 - auvi_percent = sgpol.percentatge - auvi_name = sgpol.servei_generacio_id.name - - res['auvi_pauvi'] = auvi_pauvi - res['auvi_name'] = auvi_name - res['auvi_percent'] = auvi_percent + # AUVI + auvi_data = self.get_auvi_data(cursor, uid, pol, context) + res.update(auvi_data) return res diff --git a/som_polissa_condicions_generals/report/components/disclaimers.mako b/som_polissa_condicions_generals/report/components/disclaimers.mako index 11da21912..c1c84b9db 100644 --- a/som_polissa_condicions_generals/report/components/disclaimers.mako +++ b/som_polissa_condicions_generals/report/components/disclaimers.mako @@ -1,10 +1,10 @@ -<%def name="disclaimers(polissa)"> +<%def name="disclaimers(polissa, prices)">

${_(u"Al contractar s'accepten aquestes ")} %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes'] and not polissa['auvi']) or polissa['modcon_pendent_indexada']: ${_(u"Condicions Particulars, Específiques i les Condicions Generals,")} - %elif polissa['auvi']: + %elif prices['auvi']: ${_(u"Condicions Particulars, Específiques de l'Autoconsum Virtual, Específiques de la tarifa Indexada i les Condicions Generals,")} %else: ${_(u"Condicions Particulars i les Condicions Generals,")} diff --git a/som_polissa_condicions_generals/report/components/prices_info.mako b/som_polissa_condicions_generals/report/components/prices_info.mako index 0ce603996..1f392c8ad 100644 --- a/som_polissa_condicions_generals/report/components/prices_info.mako +++ b/som_polissa_condicions_generals/report/components/prices_info.mako @@ -106,7 +106,7 @@ %endfor %endif %endif - %if polissa['auvi']: + %if prices['auvi']: <%namespace file="/som_polissa_condicions_generals/report/components/auvi.mako" import="auvi"/> ${auvi(polissa, prices)} %endif @@ -274,7 +274,7 @@ %if polissa['te_assignacio_gkwh']: (1) ${_(u"Terme d'energia en cas de participar-hi, segons condicions del contracte GenerationkWh.")}
%endif - %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes']) or polissa['modcon_pendent_indexada'] or polissa['auvi']: + %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes']) or polissa['modcon_pendent_indexada'] or prices['auvi']: (2) ${_(u"Pots consultar el significat de les variables a les condicions específiques que trobaràs a continuació.")} %endif

diff --git a/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako b/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako index f7a17623a..c7e1e09ea 100644 --- a/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako +++ b/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako @@ -50,11 +50,14 @@ ${gurb(informe['gurb'])} %endif ${payment_info(informe['polissa'])} - ${disclaimers(informe['polissa'])} + ${disclaimers(informe['polissa'], informe['prices'])} ${footer(informe['polissa'], informe['titular'])}

%if informe['titular']['lang'] == 'ca_ES': ${generals_ca()} + %if informe['prices']['auvi']: + ${auvi_ca()} + %endif %if informe['prices']['mostra_indexada']: ${indexada_ca()}

From 462019e1fc1292618405def3cd8495f04a97402b Mon Sep 17 00:00:00 2001 From: pedropote Date: Tue, 3 Dec 2024 18:03:51 +0100 Subject: [PATCH 10/18] =?UTF-8?q?=E2=9C=A8=20Add=20CCEE=20Auvi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/condicions_especifiques_auvi.mako | 251 ++++++++++++++++++ .../condicions_particulars_puppeteer.mako | 1 + 2 files changed, 252 insertions(+) create mode 100644 som_polissa_condicions_generals/report/condicions_especifiques_auvi.mako diff --git a/som_polissa_condicions_generals/report/condicions_especifiques_auvi.mako b/som_polissa_condicions_generals/report/condicions_especifiques_auvi.mako new file mode 100644 index 000000000..0813954b5 --- /dev/null +++ b/som_polissa_condicions_generals/report/condicions_especifiques_auvi.mako @@ -0,0 +1,251 @@ +<%def name="auvi_ca()"> +

+
+
+ +
+ + + +

+ Condiciones Específicas del Proyecto Piloto del Autoconsumo Virtual +

+

TABLA DE CONTENIDOS

+
+

1. DEFINICIONES. +1

+

2. OBJETO 1

+

3. FORMALIZACIÓN DEL CONTRATO 2

+

4. ENTRADA EN VIGOR Y VIGENCIA 3

+

5. FECHA DE INICIO DE LA TARIFA AUTOCONSUMO VIRTUAL Y/O CONTRATO DE SUMINISTRO 4

+

6. FINALIZACIÓN DE LA TARIFA AUTOCONSUMO VIRTUAL Y/O CONTRATO DE SUMINISTRO 5

+

7. PRECIO Y ACTUALIZACIÓN. +6

+

8. FACTURACIÓN. +10

+

9. RESPONSABILIDAD 11

+
+

+ 1. DEFINICIONES. + + - + + Subir al índice ↑ + + +

+

Todos los términos en mayúsculas incluidos en el presente documento serán interpretados conforme se definen en el mismo y, en ausencia de definición, tal y como están definidos en el Contrato de Suministro de energía eléctrica suscrito entre la Contratante y SOM ENERGIA SCCL (en adelante, SOM ENERGIA).

+

+ 2. OBJETO + + - + + Subir al índice ↑ + + +

+

EOLPOP S.L. +(en adelante, EOLPOP), titular del proyecto eólico “Viure de l’Aire del Cel” (en adelante, “la Instalación”), está interesada en que las personas que han participado en su financiación así como personas que estén vinculadas a dicho proyecto y que sean designadas expresamente por EOLPOP (en adelante, las “Participantes”) puedan beneficiarse directamente de la energía generada por la Instalación. +Para ello, EOLPOP y SOM ENERGIA han suscrito un contrato en la fecha indicada en dicho documento (en adelante, el “Convenio”) en el que se contempla la creación de un proyecto piloto en el que se establecen las condiciones en las que las Participantes pueden recibir el suministro eléctrico beneficiándose de la energía generada por la Instalación, a través de lo más parecido a un autoconsumo colectivo, al no reunirse las características establecidas en el Real Decreto, de 5 de abril, por el que se regulan las condiciones administrativas, técnicas y económicas del autoconsumo de energía eléctrica o la normativa que la sustituya (en adelante, el “Proyecto Piloto del Autoconsumo Virtual” o, alternativamente el “Proyecto Piloto”).

+

En concreto, en dicho Convenio SOM ENERGIA y EOLPOP han establecido, entre otros aspectos, las condiciones de participación en el Proyecto Piloto, el reparto de la energía generada por la Instalación entre las diferentes Participantes y la metodología de cálculo del precio aplicable a dicha energía. +Una copia de este Convenio ha sido recibida por la Contratante previo a la recepción de las presentes Condiciones Específicas. +Son condiciones esenciales para contratar el Autoconsumo Virtual (según viene definido en el Convenio) y participar en el Proyecto Piloto, (i) haber formalizado previa o simultáneamente el Contrato de Suministro con las Condiciones Específicas de Tarifa Indexada con SOM ENERGIA, y (ii) el cumplimiento de todas las obligaciones recogidas en este documento de Condiciones Específicas. +No es, por tanto, compatible con el Autoconsumo Virtual (i) estar asociado a otra instalación de autoconsumo colectivo o mantener o contratar el servicio GURB, (ii) mantener o contratar la tarifa Generation kWh, (iii) mantener o contratar la Tarifa Períodos, (iv) mantener o contratar la Tarifa Indexada para empresas, (v) estar adherido o adherirse a otro proyecto piloto igual o de similares características a este Autoconsumo Virtual y (vi) tener o contratar el suministro eléctrico con otra comercializadora distinta a SOM ENERGIA.

+

La Contratante acepta que la facturación de su consumo de energía se realizará por parte de SOM ENERGIA según viene establecido en la cláusula 8 de las presentes Condiciones Específicas del Proyecto Piloto del Autoconsumo Virtual. +Asimismo la Contratante acepta que EOLPOP, como propietaria de la Instalación, puede comunicar a SOM ENERGIA de manera unilateral un cambio en el porcentaje asignado a la Contratante, teniendo en cuenta que la fecha a partir de la cual se hará efectivo el cambio de porcentaje asignado será a partir de la fecha de la presentación de la solicitud por escrito a SOM ENERGIA. +Del mismo modo, EOLPOP podrá comunicar de forma escrita a SOM ENERGIA, y con copia a la misma Contratante, su eliminación como participante en el Proyecto Piloto.

+

El objeto del presente documento es adaptar la aplicación de las condiciones acordadas en el Contrato de Suministro y en las Condiciones Específicas de la Tarifa Indexada como consecuencia de la participación de la Contratante en el Proyecto Piloto. +

+

Así, las presentes Condiciones Específicas del Proyecto Piloto del Autoconsumo Virtual se integran y forman parte inseparable del Contrato de Suministro y de las Condiciones Específicas de la Tarifa Indexada, y su contenido prevalecerá sobre todo lo recogido en sus Condiciones Generales así como sobre las Condiciones Específicas de la Tarifa Indexada. +En caso que la Contratante haya contratado más de un producto adicional al Contrato de Suministro, y sus Condiciones Específicas entren en contradicción, prevalecerá la de fecha más reciente.

+

+ 3. FORMALIZACIÓN DEL CONTRATO + + - + + Subir al índice ↑ + + +

+

3.1 Las características del servicio Autoconsumo Virtual asociadas al CUPS de la Contratante, en concreto el porcentaje asignado correspondiente establecido en el Convenio, quedarán recogidas en las Condiciones Particulares.

+

El procedimiento de formalización del Contrato variará en función de si la Contratante dispone de contrato de suministro vigente con Som Energia, o no dispone del mismo:

+
    +
  1. Para el supuesto de que la Contratante no tenga un contrato de suministro con Som Energia, la Contratante recibirá una primera comunicación por parte de Som Energia en la que se le informará del procedimiento de contratación del suministro -en concreto, la contratación de la Tarifa Indexada-, y asimismo se le acompañará la información contractual del Autoconsumo Virtual y se le informará además del porcentaje propuesto por EOLPOP en el Convenio para el caso de contratar el Autoconsumo Virtual.
  2. +
+

Una vez la Contratante haya aceptado el contrato de suministro con Tarifa Indexada, la Contratante recibirá una segunda comunicación en su correo electrónico con la información contractual para proceder a la contratación del servicio de Autoconsumo Virtual y activar así su porcentaje asignado. +Una vez aceptado el servicio de Autoconsumo Virtual por la Contratante y, a través del correo electrónico, recibirá una tercera comunicación por parte de Som Energia con las Condiciones Particulares de contratación, que juntamente con estas Condiciones Específicas, las Condiciones Específicas de la Tarifa Indexada, las Condiciones Generales y el Convenio integran el Contrato de Suministro.

+
    +
  1. Para el supuesto de que la Contratante tenga un contrato de suministro con Som Energia con tarifa períodos, la Contratante recibirá una primera comunicación por parte de Som Energia en la que se le informará del procedimiento de contratación del suministro -en concreto, la contratación de la Tarifa Indexada- y del procedimiento para contratar el Autoconsumo Virtual y activar así su porcentaje asignado. +Una vez aceptado el servicio de Autoconsumo Virtual por la Contratante y, a través del correo electrónico, recibirá una segunda comunicación con las Condiciones Particulares de contratación, que juntamente con estas Condiciones Específicas, las Condiciones Específicas de la Tarifa Indexada, las Condiciones Generales y el Convenio integran el Contrato de Suministro.

  2. +
  3. Para el supuesto de que la Contratante tenga un contrato de suministro con Som Energia con tarifa indexada, la Contratante recibirá una primera comunicación por parte de Som Energia en la que se le informará del procedimiento para contratar el Autoconsumo Virtual y activar así su porcentaje asignado. +Una vez aceptado el servicio de Autoconsumo Virtual por la Contratante y, a través del correo electrónico, recibirá una segunda comunicación con las Condiciones Particulares de contratación, que juntamente con estas Condiciones Específicas, las Condiciones Específicas de la Tarifa Indexada, las Condiciones Generales y el Convenio integran el Contrato de Suministro.

  4. +
+

En caso de que los datos facilitados por la Contratante a través de correo electrónico no se correspondan con los datos facilitados por EOLPOP, Som Energia validará con la Contratante y con EOLPOP mediante correo electrónico los datos y procederá a su confirmación posterior y modificación. +La Contratante se obliga a proporcionar a Som Energia los mismos datos facilitados por EOLPOP según lo establecido en el Convenio. +En caso de que dichos datos no coincidan, Som Energia no estará obligada a aceptar la contratación, hasta que dichos datos sean subsanados.

+

+ 4. ENTRADA EN VIGOR Y VIGENCIA + + - + + Subir al índice ↑ + + +

+

4.1. Las presentes Condiciones Específicas estarán en vigor desde la fecha que consta en las mismas y su duración es de un (1) año, sin perjuicio de que pueda prorrogarse automáticamente por otro año en virtud del Convenio entre SOM ENERGIA y EOLPOP -si ninguna de las partes comunica a la otra su voluntad de resolver el Contrato de Suministro.

+

La vigencia del Contrato de Suministro, de las Condiciones Específicas de la Tarifa Indexada y de las presentes Condiciones Específicas estará sujeta a lo previsto en la cláusula 3.4 de las Condiciones Generales del Contrato de Suministro, de manera que si la compañía distribuidora propietaria de la red a la que se conecta la Contratante denegase bien el alta del Punto de Suministro o bien los cambios en el contrato de acceso a red necesarios para hacer efectivo el Contrato de Suministro o de las Condiciones Específicas, bien el Contrato de Suministro, bien las Condiciones Específicas o bien ambos, en caso de contratación simultánea, se considerarán resueltos automáticamente sin derecho a indemnización por ninguna de las Partes.

+

4.2. Igualmente la resolución por cualquier causa del Contrato de Suministro, conllevará automáticamente la resolución de las presentes Condiciones Específicas, al ser requisito esencial para poder participar del Proyecto Piloto la existencia de un Contrato de Suministro en vigor.

+

4.3. En caso de que la Contratante ya tuviera suscrito un contrato de suministro con SOM ENERGIA, la duración del Contrato de Suministro establecida en las Condiciones Generales queda modificada con la suscripción del presente documento de manera que el cómputo del período de un (1) año se iniciará en la fecha de las presentes Condiciones Específicas, o la más tardía de sus fechas en caso de contratarse más de un producto adicional que fuera compatible con este Proyecto Piloto.

+

4.4. En todo caso, la participación en Proyecto Piloto no incluye una obligación de permanencia mínima, de forma que la Contratante podrá resolver su contratación en cualquier momento comunicando su voluntad a SOM ENERGIA SCCL por escrito, mediante el envío de un correo electrónico.

+

4.5. Igualmente, SOM ENERGIA SCCL podrá resolver unilateralmente las Condiciones Específicas del Proyecto Piloto del Autoconsumo Virtual en caso de resolución del Convenio, comunicándolo con un preaviso de treinta (30) días naturales de antelación a su fecha de efectos y sin perjuicio de lo que establece la cláusula 11 de las Condiciones Generales del Contrato de Suministro.

+

+ 5. FECHA DE INICIO DE LA TARIFA AUTOCONSUMO VIRTUAL Y/O CONTRATO DE SUMINISTRO + + - + + Subir al índice ↑ + + +

+

5.1. Sin perjuicio de lo establecido en la cláusula anterior sobre la entrada en vigor y vigencia, las Partes acuerdan que las condiciones del Proyecto Piloto del Autoconsumo Virtual comenzarán a aplicarse en momentos diferentes en función de si la Contratante tiene suscrito el contrato de suministro con SOM ENERGIA SCCL, o no lo tiene suscrito.

+

5.2. Si la Contratación del Proyecto Piloto del Autoconsumo Virtual se realiza mediante solicitud de modificación de una de las tarifas vigentes con SOM ENERGIA, SCCL, sin perjuicio de lo establecido en la cláusula anterior sobre la entrada en vigor y vigencia, las partes acuerdan que la tarifa del Autoconsumo Virtual contratada comience a aplicarse a partir del primer día del ciclo de facturación siguiente a la fecha de las presentes Condiciones Específicas. +La energía consumida durante el ciclo de facturación en curso en el momento de la firma de estas Condiciones Específicas será facturada con la tarifa que se aplicaba antes de contratar la Tarifa Autoconsumo Virtual.

+

5.3. Si la Contratación del Proyecto Piloto del Autoconsumo Virtual es simultánea a la formalización del contrato de suministro con tarifa Indexada con SOM ENERGIA, SCCL, la Tarifa Autoconsumo Virtual comenzará a aplicarse tras cumplirse las condiciones establecidas en cláusula 3 de las Condiciones Generales de Contratación y en la cláusula 4 de las presentes condiciones de contratación del Proyecto Piloto del Autoconsumo Virtual.

+

+ 6. FINALIZACIÓN DE LA TARIFA AUTOCONSUMO VIRTUAL Y/O CONTRATO DE SUMINISTRO + + - + + Subir al índice ↑ + + +

+

6.1 Causas de la resolución anticipada. +Sin perjuicio de las causas recogidas en las Condiciones Generales del Contrato de Suministro, serán también causas de resolución del Proyecto Piloto la resolución del Convenio suscrito entre SOM ENERGIA, SCCL y EOLPOP. +Asimismo, la Contratante es consciente y acepta que EOLPOP, en tanto propietaria de la Instalación, es la única responsable de la designación del porcentaje asignado en favor de la Contratante y, por lo tanto, puede en cualquier momento eliminar a dicha Contratante como participante en el Proyecto Piloto. +En dicho caso se entenderán las condiciones aplicables al Autoconsumo Virtual resueltas anticipadamente y la Contratante podrá mantener el contrato de suministro con SOM ENERGIA con las Condiciones Específicas de la Tarifa Indexada.

+

6.2. En caso de resolución del Contrato por alguna de las causas indicadas en las cláusula 12.2 de las Condiciones Generales de Contratación o por la causa indicada en la cláusula 6.1 de las presentes condiciones específicas, la Contratante estará obligada a abonar el suministro hasta la fecha de baja del servicio, así como los intereses aplicables y de existir los daños y perjuicios derivados para SOM ENERGIA SCCL. +Lo indicado en la presente cláusula no será de aplicación en los casos b), la c) de la cláusula 12.2 de las Condiciones Generales de Contratación o cuando la normativa vigente en materia de protección de personas consumidoras y usuarias establezca lo contrario.

+

6.3. Si, una vez iniciada la aplicación de la tarifa Autoconsumo Virtual, la Contratante solicita la baja del Proyecto Piloto del Autoconsumo Virtual, en el momento de contratación de la nueva tarifa se aplicará a efectos de facturación la tarifa Autoconsumo Virtual hasta el último día del ciclo de facturación en curso. +En todo caso, la Contratante mantendrá en vigor el contrato de suministro con SOM ENERGIA SCCL con las Condiciones Específicas de Tarifa Indexada, sin perjuicio de que la Contratante sea informada de su derecho a contratar con las demás tarifas ofrecidas por SOM ENERGIA que estuvieran vigentes en ese momento.

+

6.4. Si una vez iniciada la aplicación de la tarifa Autoconsumo Virtual, la Contratante solicita la resolución unilateral del contrato de suministro con SOM ENERGIA SCCL, el Proyecto Piloto del Autoconsumo Virtual finalizará de forma simultánea al contrato de suministro y le serán de aplicación las condiciones establecidas en esta cláusula 12 de las Condiciones Generales de Contratación.

+

+ 7. PRECIO Y ACTUALIZACIÓN. + + - + + Subir al índice ↑ + + +

+

7.1. Con la participación en el Proyecto Piloto, la Contratante acepta que le sea de aplicación la tarifa Autoconsumo Virtual. +El importe a pagar en concepto de energía en aplicación de la tarifa Autoconsumo Virtual será calculado a partir de la parte de la energía consumida horariamente por la Contratante teniendo en cuenta el porcentaje asignado según el Anexo 1 del Convenio entre SOM ENERGIA y EOLPOP (en adelante, la Generación Asignada Horariamente) y la energía producida por la Instalación (en adelante, la Generación Producida Horariamente) al precio pactado en el Anexo 2 de dicho Convenio. +La Contratante podrá utilizar la totalidad de la Generación Asignada horariamente (entendiéndose ésta como la Generación Aprovechada Horariamente).

+

En caso de que la Contratante consuma horariamente más energía que la que tiene asignada según el porcentaje asignado, al resto de la energía restante y consumida por la Contratante, se le aplicará el precio de la Tarifa Indexada.

+

Una vez aplicada la Tarifa Autoconsumo Virtual y en su caso, la Tarifa Indexada, la Contratante abonará en contraprestación del suministro contratado el precio y demás conceptos descritos, así como los impuestos aplicables al tipo vigente en cada momento y todas aquellas prestaciones patrimoniales y/o otras legalmente exigibles. +Asimismo, si la Contratante lo solicita, se incluirá en la factura el importe correspondiente al donativo voluntario para ayudar al desarrollo de la cooperativa.

+

7.2. El cálculo de la Generación Asignada a cada Participante para determinar el precio de la tarifa Autoconsumo Virtual se realizará teniendo en cuenta su porcentaje asignado y será determinado en base a la siguiente fórmula:

+

Generación asignada = producción de cada hora x % correspondiente

+

La Generación Aprovechada Horariamente se calculará según el consumo realizado por la Contratante. +En caso de que el consumo realizado por la Contratante sea igual o inferior a la Generación Asignada Horariamente, la Generación Aprovechada Horariamente será igual al consumo realizado. +En caso de que el consumo realizado por la Contratante sea superior a la Generación Asignada Horariamente, la Generación Aprovechada Horariamente será igual a la Generación Asignada Horariamente.

+

Si la Generación Asignada no supera el consumo horario de la Contratante, esta generación asignada no aprovechada pasará a ser considerada Generación Sobrante. +Esta Generación Sobrante no se considerará Generación Asignada y le aplicará lo establecido en el artículo 8.3. de las presentes Condiciones Específicas.

+

7.3. El importe de la energía del Autoconsumo Virtual es el resultado de la suma horaria del producto entre la Generación Aprovechada Horariamente y el precio horario de la energía correspondiente al Autoconsumo Virtual (PHAUVI).

+

Importe del término de energía del Autoconsum Virtual = Suma horaria (kWh Generación Aprovechada hi * PHAUVI)

+

Siendo que hi corresponde a cada una de las horas del período de facturación en cuestión.

+

Siendo el PHAUVI el precio horario de la energía calculado siguiendo la fórmula detallada a continuación:

+
+

PHAUVI = 1,015 * [PAUVI + PHM(Perd) + ( Pc + Sc + Dsv + GdO + POsOm) (1 + Perd) + FE + F] + PTD + CA

+
+

Dónde:

+

PHM = Precio horario mercado OMIE

+

PAUVI = Precio contratado con la Instalación

+

Pc = pagos por capacidad, publicados por el Ministerio anualmente, en función del peaje de acceso contratado por la Contratante y aplicado a la energía consumida por la Contratante.

+

Sc = sobrecostes diarios publicados por Red Eléctrica Española (REE) para la gestión de la red, según el valor publicado en el momento de generar la factura.

+

Dsv = coste de la penalización por desvíos entre energía programada y energía finalmente utilizada. +El coste del Dsv se obtiene de la suma de los valores publicados por REE para BS3, RAD3 y la media de los costes del desvío a subir y bajar multiplicado por un factor de desvío propio de SOM ENERGIA, SCCL, que se actualizará trimestralmente y será publicado en el web de SOM ENERGIA, SCCL, (factor desvío). +En caso de Baleares y Canarias, el Dsv se obtiene directamente del precio publicado por REE multiplicado por el factor desvío.

+

Dsv = [1/2 (CoDsvSu + CoDsvBa) + BS3 + RAD3] x factor desvío Dsv = scdsvdem x factor desvío

+

GdO = coste de adquisición de los certificados de Garantía de Origen Renovable de la electricidad. +Este coste dependerá de la energía producida por las plantas de SOM ENERGIA, SCCL, y del coste de adquisición de los certificados de Garantía de Origen Renovable. +Al no tratarse de un coste regulado, depende de las condiciones acordadas con los proveedores de certificados. +Este coste se actualizará trimestralmente y será publicado en el web de SOM ENERGIA, SCCL.

+

POsOm = coste del operador del sistema (REE) y del operador de mercado (OMIE). +Se trata de un coste regulado establecido por la Comisión Nacional de los Mercados y la Competencia (CNMC). +El coste de OMIE no se aplica a los contratos del sistema eléctrico insular (Canarias, Baleares).

+

Perd = coeficientes de pérdidas reguladas de sistema desde el punto de generación al punto de consumo, según el valor publicado por REE en el momento de generar la factura.

+

FE = coste resultante según normativa en vigor relativa a la obligación de aportación al Fondo Nacional de Eficiencia Energética (FNEE).

+

F = franja de la cooperativa (incluye el margen para la viabilidad de la cooperativa).

+

PTD = coste regulado del peaje de transporte y distribución establecido y publicado por la CNMC y aplicado sobre el total de la energía consumida.

+

CA = coste regulado de los cargos del sistema eléctrico definidos por el ministerio correspondiente, aplicado sobre el total de la energía consumida.

+

PHAUVI = precio horario de la energía de la generación asignada del autoconsumo virtual.

+

PH = precio horario de la energía indexada a mercado

+

a) Término de energía reactiva

+

SOM ENERGIA, SCCL, aplicará a la facturación lo que indica la legislación vigente en relación con la forma de facturar los excesos de energía reactiva. +Estos irán a cargo de la Contratante y se calcularán según el porcentaje de energía reactiva generada en la instalación respecto del consumo de energía activa, en cada uno de los periodos horarios.

+

b) Excesos de potencia

+

SOM ENERGIA, SCCL, aplicará a la facturación lo que indica la legislación vigente en relación con la forma de facturar los excesos de potencia de la tarifa de acceso, que irán a cargo de la Contratante por la diferencia entre la potencia contratada y la finalmente utilizada.

+

c) Compensación simplificada

+

En caso de estar acogido al mecanismo de compensación simplificada, la comercializadora debe reflejar en las facturas esta compensación, de acuerdo a la información facilitada por la compañía distribuidora, conforme a lo que establece el Real Decreto 244/2019 y otra normativa aplicable a esta modalidad de autoconsumo. +En particular, la comercializadora debe facturar la energía consumida de la red en periodos de facturación de 1 mes, de acuerdo a las lecturas y otra información enviada por la distribuidora, conforme a los artículos 13 y 14 del Real Decreto 244/20219, aplicando el precio de compensación que se pacta a continuación.

+

El importe de los excedentes será la suma horaria del producto entre la energía activa saliente (excedentes) en cada hora y el precio horario de compensación de excedentes.

+

Importe de compensación de excedentes = SUMA HORARIA (kWh excedentarios hi x PHC hi)

+

Y, hi representa cada una de las horas del periodo de facturación en cuestión.

+

Donde, PHC representa el precio horario de compensación de excedentes que, para los contratos de la Península, es el precio de OMIE, mientras que para las Baleares y Canarias es el precio horario de la demanda del Sistema Eléctrico Insular (balear y canario) menos el precio que deben aportar los excedentes insulares por los costes de servicios de ajuste en la operación del sistema

+

PHC Península = Precio OMIE

+

PHC insulares = SphDem-SphAuto.

+

Tal como marca la normativa, esta compensación será hasta un valor máximo de compensación que iguale el valor del término de energía. +Como comercializadora del mercado libre, hemos establecido la compensación también de la parte regulada del coste de la energía correspondiente a los peajes y cargos. +Si el valor económico de la energía excedentaria es igual o superior al de la energía utilizada, el importe del término de energía en la factura será de 0 euros.

+

7.4. El precio de la tarifa Autoconsumo Virtual a abonar por la Contratante podrá variar durante la vigencia del presente Contrato en los siguientes casos:

+
    +
  1. En caso de modificación de cualquiera de los valores regulados o prestaciones patrimoniales fijadas por la Administración, o bien de los precios reglamentarios a aplicar por la empresa distribuidora. +Estos cambios serán de aplicación automática al Contrato de Suministro, sin que esto pueda considerarse una modificación del Contrato, según se establece en la cláusula 9 de las Condiciones Generales de Contratación.
  2. +
+

(ii) La parte del precio no regulada por la Administración será actualizada como mínimo anualmente por el Consejo Rector en el marco de las decisiones adoptadas por la Asamblea de SOM ENERGIA SCCL. +Estas modificaciones serán comunicadas a la Contratante con una antelación de treinta (30) días naturales a la aplicación de la modificación y, en caso de que supongan un incremento del precio, la Contratante podrá resolver el Contrato comunicándolo a SOM ENERGIA SCCL por cualquiera de los medios establecidos en el presente Contrato en el plazo de quince (15) días naturales siguientes a dicha comunicación. +En caso de no resolver el Contrato en dicho plazo, la modificación se entenderá aceptada por la Contratante.

+
    +
  1. En caso de modificación por parte de EOLPOP el precio contratado en el Acuerdo de Compensación Contractual y Liquidación por diferencias que se acompaña como Anexo 2 del Convenio.
  2. +
+

La información actualizada sobre el precio y tarifa aplicable estará a disposición de la Contratante a través del Contrato suscrito y vigente en cada momento.

+

7.5. SOM ENERGIA, SCCL, traspasará a la Contratante, en la misma factura emitida por el suministro de electricidad, el importe correspondiente en su caso al alquiler de los equipos de medida, así como las cantidades que conforme con la normativa aplicable correspondan a la compañía distribuidora, entre otras los peajes de acceso y cargos del sistema, los derechos de enganche, derechos de acceso, derechos de extensión, verificaciones, costes de reposición, penalizaciones establecidas en la normativa y el depósito de garantía.

+

7.6. Cualquier coste derivado de actuaciones en el Equipo de Medida y Control o en las instalaciones de la Contratante serán asumidos exclusivamente por esta o por la empresa distribuidora según establezca la normativa vigente.

+

7.7. En caso de mal funcionamiento de los equipos de medida o error administrativo se estará a lo previsto en el artículo 96 del Real Decreto 1955/2000 o normativa que le sustituya.

+

+ 8. FACTURACIÓN. + + - + + Subir al índice ↑ + + +

+

8.1. Sin perjuicio de lo establecido en la cláusula 7.2 de las Condiciones Generales del Contrato de Suministro, los consumos horarios para la aplicación de la Tarifa Autoconsumo Virtual, serán determinados a partir de las curvas horarias facilitadas por el encargado de la lectura, así como de la curva de producción horaria de la Instalación proporcionada en todo caso por EOLPOP.

+

En caso de que SOM ENERGIA, SCCL, no pueda facturar con base en curvas horarias, SOM ENERGIA, SCCL, aplicará a los consumos informados por el encargado de la lectura u obtenidos de alguna de las maneras previstas en la cláusula 7.2. de las Condiciones Generales del Contrato de Suministro, los coeficientes perfilados publicados por el operador del sistema, de acuerdo con lo establecido en la normativa vigente para cada tipo de peaje de acceso a la red de la distribuidora1.

+

8.2. Una vez aprovechada toda la energía generada por la Instalación (Generación Producida Horariamente) y asignada a la Contratante (Generación Asignada Horariamente) según el porcentaje asignado a la producción de la Instalación (Anexo 1 del Convenio), a la energía horaria restante y consumida -si la hubiera- se le aplicará la Tarifa Indexada y dicha energía se facturará conforme viene recogido en la cláusula 5 de las Condiciones Específicas de la Tarifa Indexada, y que forman parte del Contrato de Suministro.

+

8.3. Si en el período de facturación que corresponda la Contratante consume horariamente menos energía de la que tiene asignada (Generación Asignada Horariamente) según el porcentaje asignado y asociado a la producción de la Instalación, dicha energía sobrante no consumida (Generación Sobrante Horariamente) en ningún caso podrá acumularse y utilizarse en períodos de facturación posteriores, todo ello sin perjuicio de las posibles rectificaciones que debieran aplicarse en congruencia con los consumos informados por el encargado de lectura.

+

8.4. Sin perjuicio de lo establecido en la cláusula 7.2 de las Condiciones Generales de Contratación, en caso de que EOLPOP no comunique mensualmente a SOM ENERGIA SCCL, la energía generada por la Instalación (Generación Producida Horariamente) facilitando la curva de producción de la Instalación correspondiente al mes anterior, la Contratante acepta que SOM ENERGIA SCCL le facture la energía consumida por la Contratante de acuerdo con la Tarifa Indexada según las Condiciones Específicas de la Tarifa Indexada que forman parte del Contrato de Suministro.

+

8.5. Así mismo, la Contratante acepta que, en caso de que la Instalación de EOLPOP esté indisponible SOM ENERGIA SCCL le facture conforme la Tarifa Indexada y de acuerdo con las Condiciones Específicas de la Tarifa Indexada y que forman parte del Contrato de Suministro.

+

8.6. En caso de que la Contratante disponga de un punto de suministro asociado a una instalación productora de autoconsumo individual con compensación simplificada o quiera dar de alta la misma, para su correcta facturación, le será de aplicación lo establecido en la cláusula 8.5 y 8.6 de las Condiciones Generales de Contratación.

+

+ 9. RESPONSABILIDAD + + - + + Subir al índice ↑ + + +

+

9.1. Sin perjuicio de lo establecido en la cláusula 13 de las Condiciones Generales del Contrato de Suministro, SOM ENERGIA SCCL no es el titular de la Instalación y por lo tanto NO es responsable ante la Contratante en caso de que la Instalación no cumpla con la normativa aplicable, así como de disponer de las licencias, autorizaciones, derechos contratos, seguro propio del sector ni, tampoco tiene la obligación de velar para que el mantenimiento y operación de la Instalación se lleve a cabo con el objetivo de maximizar las horas de funcionamiento de la Instalación. +La Contratante es consciente y entiende que la producción de la Instalación (Generación Producida Horariamente) depende de la disponibilidad de la misma y de las horas de producción, por lo cual la energía asignada de la Instalación (Generación Asignada Horariamente) y aprovechada por la Contratante (Generación Aprovechada Horariamente) puede variar.

+

SOM ENERGIA SCCL ha puesto a disposición de la Contratante las presentes Condiciones Específicas previamente a su contratación a través del correo electrónico. +Las mismas han sido suscritas mediante sistemas de contratación electrónica, siendo remitido un ejemplar de las mismas en soporte duradero a la Contratante una vez finalizada la contratación.

+
+
+
    +
  1. Circular 3/2020, de 15 de enero, de la Comisión Nacional de los Mercados y la Competencia, por la que se establece la metodología para el cálculo de los peajes de transporte y distribución de electricidad.↩︎

  2. +
+
+ diff --git a/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako b/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako index c7e1e09ea..f58be9feb 100644 --- a/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako +++ b/som_polissa_condicions_generals/report/condicions_particulars_puppeteer.mako @@ -11,6 +11,7 @@ <%namespace file="som_polissa_condicions_generals/report/condicions_especifiques_indexada.mako" import="indexada_ca"/> <%namespace file="som_polissa_condicions_generals/report/condiciones_especificas_indexada.mako" import="indexada_es"/> <%namespace file="som_polissa_condicions_generals/report/components/gurb.mako" import="gurb"/> +<%namespace file="som_polissa_condicions_generals/report/condicions_especifiques_auvi.mako" import="auvi_ca"/> From 0246b5f2948b7728d0672c3752f0f4519261dd2d Mon Sep 17 00:00:00 2001 From: pedropote Date: Tue, 3 Dec 2024 18:05:10 +0100 Subject: [PATCH 11/18] =?UTF-8?q?=F0=9F=9A=A7=20Disclaimer=20for=20Auvi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/components/disclaimers.mako | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/report/components/disclaimers.mako b/som_polissa_condicions_generals/report/components/disclaimers.mako index c1c84b9db..7ca9b227f 100644 --- a/som_polissa_condicions_generals/report/components/disclaimers.mako +++ b/som_polissa_condicions_generals/report/components/disclaimers.mako @@ -2,7 +2,7 @@

${_(u"Al contractar s'accepten aquestes ")} - %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes'] and not polissa['auvi']) or polissa['modcon_pendent_indexada']: + %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes'] and not prices['auvi']) or polissa['modcon_pendent_indexada']: ${_(u"Condicions Particulars, Específiques i les Condicions Generals,")} %elif prices['auvi']: ${_(u"Condicions Particulars, Específiques de l'Autoconsum Virtual, Específiques de la tarifa Indexada i les Condicions Generals,")} From f63f4b751cfa8c856d8781ca656c6c871c900065 Mon Sep 17 00:00:00 2001 From: pedropote Date: Wed, 4 Dec 2024 05:49:59 +0100 Subject: [PATCH 12/18] =?UTF-8?q?=F0=9F=90=9B=20Fix=20when=20Auvi=20percen?= =?UTF-8?q?t=20False?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- som_polissa_condicions_generals/models/report_backend_ccpp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index fff71eb6a..f7d9cdb78 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -274,7 +274,7 @@ def get_auvi_data(self, cursor, uid, pol, context=None): if len(sgpol_ids) > 0: sgpol = sgpol_obj.browse(cursor, uid, sgpol_ids[0]) auvi_pauvi = 5.2 - auvi_percent = sgpol.percentatge + auvi_percent = sgpol.percentatge or 0.0 auvi_name = sgpol.servei_generacio_id.name res = { From f4aea4c9643b22245bcd53fa0f4ab8587a2e5372 Mon Sep 17 00:00:00 2001 From: pedropote Date: Wed, 4 Dec 2024 06:21:48 +0100 Subject: [PATCH 13/18] =?UTF-8?q?=E2=9C=A8=20Auvi=20mako=20for=20not=202.0?= =?UTF-8?q?TD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/components/auvi.mako | 15 +++++++++++---- .../report/components/prices_info.mako | 6 +++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/som_polissa_condicions_generals/report/components/auvi.mako b/som_polissa_condicions_generals/report/components/auvi.mako index dd1a56444..2275e3ae6 100644 --- a/som_polissa_condicions_generals/report/components/auvi.mako +++ b/som_polissa_condicions_generals/report/components/auvi.mako @@ -1,4 +1,4 @@ -<%def name="auvi(polissa, prices)"> +<%def name="auvi(polissa, prices, untaxed)"> ${_(u"Terme energia (€/kWh)")} @@ -8,11 +8,18 @@
${_(u"PHAUVI = 1,015 * [(PAUVI + Pc + Sc + Dsv + GdO + POsOm) (1 + Perd) + FE + F] + PTD + CA")} - %if polissa['tarifa'] != "2.0TD": + + %if polissa['tarifa'] != "2.0TD" and untaxed:
${_(u"on la franja de la cooperativa")}  ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k_untaxed'], digits=6)} %endif + %if polissa['tarifa'] != "2.0TD" and not untaxed: +
+ ${_(u"on la franja de la cooperativa")} +  ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k'], digits=6)} + %endif + @@ -36,10 +43,10 @@ ${_(u"on la franja de la cooperativa")} - ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k_untaxed'], digits=6)} + ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k_untaxed'], digits=6)} - ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k'], digits=6)} + ${("(F) = %s €/kWh") % formatLang(prices['coeficient_k'], digits=6)} %endif diff --git a/som_polissa_condicions_generals/report/components/prices_info.mako b/som_polissa_condicions_generals/report/components/prices_info.mako index 1f392c8ad..164e1433a 100644 --- a/som_polissa_condicions_generals/report/components/prices_info.mako +++ b/som_polissa_condicions_generals/report/components/prices_info.mako @@ -108,7 +108,7 @@ %endif %if prices['auvi']: <%namespace file="/som_polissa_condicions_generals/report/components/auvi.mako" import="auvi"/> - ${auvi(polissa, prices)} + ${auvi(polissa, prices, True)} %endif ${_(u"Terme energia (€/kWh)")} @@ -318,6 +318,10 @@ %endif %endfor + %if prices['auvi']: + <%namespace file="/som_polissa_condicions_generals/report/components/auvi.mako" import="auvi"/> + ${auvi(polissa, prices, False)} + %endif ${_(u"Terme energia (€/kWh)")} %if prices['mostra_indexada']: From b563e2fe4987110893bdb54daf8c0a5391d6528f Mon Sep 17 00:00:00 2001 From: pedropote Date: Wed, 4 Dec 2024 06:36:01 +0100 Subject: [PATCH 14/18] =?UTF-8?q?=E2=9C=A8=20Disclaimer=20mako=20ok=20for?= =?UTF-8?q?=20all=20cases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/components/disclaimers.mako | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/report/components/disclaimers.mako b/som_polissa_condicions_generals/report/components/disclaimers.mako index 7ca9b227f..5f6c3ec4b 100644 --- a/som_polissa_condicions_generals/report/components/disclaimers.mako +++ b/som_polissa_condicions_generals/report/components/disclaimers.mako @@ -2,7 +2,7 @@

${_(u"Al contractar s'accepten aquestes ")} - %if (polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes'] and not prices['auvi']) or polissa['modcon_pendent_indexada']: + %if not prices['auvi'] and ((polissa['mode_facturacio'] == 'index' and not polissa['modcon_pendent_periodes']) or polissa['modcon_pendent_indexada']): ${_(u"Condicions Particulars, Específiques i les Condicions Generals,")} %elif prices['auvi']: ${_(u"Condicions Particulars, Específiques de l'Autoconsum Virtual, Específiques de la tarifa Indexada i les Condicions Generals,")} From cd422498d2f576262bd43188949b98a553a7e0b8 Mon Sep 17 00:00:00 2001 From: pedropote Date: Wed, 4 Dec 2024 08:04:37 +0100 Subject: [PATCH 15/18] =?UTF-8?q?=F0=9F=9A=A7=20Get=20PAUVI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/report_backend_ccpp.py | 43 +++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index f7d9cdb78..55b9e9f5b 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -248,13 +248,47 @@ def get_mostra_auvi(self, cursor, uid, pol, context=None): res = True return res - def get_auvi_data(self, cursor, uid, pol, context=None): + def get_pauvi(self, cursor, uid, sgpol, context, ctx): + imd_obj = self.pool.get('ir.model.data') + fp_obj = self.pool.get('account.fiscal.position') + pricelist_index = sgpol.servei_generacio_id.llista_preu_venda_id + res = { + 'auvi_pauvi': 0.0, + 'auvi_pauvi_untaxed': 0.0, + } + if not pricelist_index: + return res + + fp_k_id = sgpol.polissa_id.fiscal_position_id \ + if sgpol.polissa_id.fiscal_position_id else ctx.get('force_fiscal_position', False) + if fp_k_id: + fp_k = fp_obj.browse(cursor, uid, fp_k_id) + else: + fp_k = False + poduct_pauvi_id = imd_obj.get_object_reference( + cursor, uid, 'giscedata_serveis_generacio', 'facturacio_empresa_preu_fix' + )[1] + pauvi_untaxed = pricelist_index.get_atr_price( + tipus='', product_id=poduct_pauvi_id, fiscal_position=fp_k, + with_taxes=False)[0] + + pauvi = pricelist_index.get_atr_price( + tipus='', product_id=poduct_pauvi_id, fiscal_position=fp_k, + with_taxes=True)[0] + res = { + 'auvi_pauvi': pauvi, + 'auvi_pauvi_untaxed': pauvi_untaxed, + } + + return res + + def get_auvi_data(self, cursor, uid, pol, context=None, ctx=None): res = {} + sgpol_obj = self.pool.get('giscedata.servei.generacio.polissa') auvi = self.get_mostra_auvi(cursor, uid, pol, context=context) auvi_pauvi = 0.0 auvi_name = "" auvi_percent = 0.0 - sgpol_obj = self.pool.get('giscedata.servei.generacio.polissa') if self.get_mostra_auvi(cursor, uid, pol, context=context): today_str = datetime.today().strftime("%Y-%m-%d") sgpol_ids = sgpol_obj.search(cursor, uid, [ @@ -277,6 +311,9 @@ def get_auvi_data(self, cursor, uid, pol, context=None): auvi_percent = sgpol.percentatge or 0.0 auvi_name = sgpol.servei_generacio_id.name + # WIP: get price PAUVI + # auvi_pauvi = self.get_pauvi(cursor, uid, sgpol, context, ctx) + res = { 'auvi': auvi, 'auvi_pauvi': auvi_pauvi, @@ -469,7 +506,7 @@ def get_prices_data(self, cursor, uid, pol, context=None): # noqa: C901 res['coeficient_k'] = coeficient_k # AUVI - auvi_data = self.get_auvi_data(cursor, uid, pol, context) + auvi_data = self.get_auvi_data(cursor, uid, pol, context, ctx) res.update(auvi_data) return res From 6e015fd348afafe371d1ac2d13ca2549e1a3ee78 Mon Sep 17 00:00:00 2001 From: pedropote Date: Wed, 4 Dec 2024 11:40:14 +0100 Subject: [PATCH 16/18] =?UTF-8?q?=F0=9F=90=9B=20Fix=20show=20auvi=20condit?= =?UTF-8?q?ions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- som_polissa_condicions_generals/models/report_backend_ccpp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index 55b9e9f5b..9dcc4f9bc 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -240,7 +240,7 @@ def get_mostra_auvi(self, cursor, uid, pol, context=None): modcon_pendent_quit_auvi = last_modcon_state == 'pendent' \ and pol.te_auvidi and not pol.modcontractuals_ids[0].te_auvidi - if not pol.te_auvidi \ + if (not pol.te_auvidi and not modcon_pendent_auvi) \ or (pol.te_auvidi and (modcon_pendent_periodes or modcon_pendent_quit_auvi)): res = False elif (pol.te_auvidi and not modcon_pendent_periodes and not modcon_pendent_quit_auvi) \ From 6a737ea0b54e0a6770ec3ad7f2ebc6160f07db14 Mon Sep 17 00:00:00 2001 From: pedropote Date: Thu, 5 Dec 2024 07:35:20 +0100 Subject: [PATCH 17/18] =?UTF-8?q?=E2=9C=A8=20Get=20PAUVI=20ok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/report_backend_ccpp.py | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/som_polissa_condicions_generals/models/report_backend_ccpp.py b/som_polissa_condicions_generals/models/report_backend_ccpp.py index 9dcc4f9bc..d070f8c4d 100644 --- a/som_polissa_condicions_generals/models/report_backend_ccpp.py +++ b/som_polissa_condicions_generals/models/report_backend_ccpp.py @@ -252,12 +252,8 @@ def get_pauvi(self, cursor, uid, sgpol, context, ctx): imd_obj = self.pool.get('ir.model.data') fp_obj = self.pool.get('account.fiscal.position') pricelist_index = sgpol.servei_generacio_id.llista_preu_venda_id - res = { - 'auvi_pauvi': 0.0, - 'auvi_pauvi_untaxed': 0.0, - } if not pricelist_index: - return res + return 0.0 fp_k_id = sgpol.polissa_id.fiscal_position_id \ if sgpol.polissa_id.fiscal_position_id else ctx.get('force_fiscal_position', False) @@ -268,19 +264,11 @@ def get_pauvi(self, cursor, uid, sgpol, context, ctx): poduct_pauvi_id = imd_obj.get_object_reference( cursor, uid, 'giscedata_serveis_generacio', 'facturacio_empresa_preu_fix' )[1] - pauvi_untaxed = pricelist_index.get_atr_price( - tipus='', product_id=poduct_pauvi_id, fiscal_position=fp_k, - with_taxes=False)[0] pauvi = pricelist_index.get_atr_price( tipus='', product_id=poduct_pauvi_id, fiscal_position=fp_k, - with_taxes=True)[0] - res = { - 'auvi_pauvi': pauvi, - 'auvi_pauvi_untaxed': pauvi_untaxed, - } - - return res + with_taxes=False)[0] + return pauvi def get_auvi_data(self, cursor, uid, pol, context=None, ctx=None): res = {} @@ -307,12 +295,9 @@ def get_auvi_data(self, cursor, uid, pol, context=None, ctx=None): ]) if len(sgpol_ids) > 0: sgpol = sgpol_obj.browse(cursor, uid, sgpol_ids[0]) - auvi_pauvi = 5.2 auvi_percent = sgpol.percentatge or 0.0 auvi_name = sgpol.servei_generacio_id.name - - # WIP: get price PAUVI - # auvi_pauvi = self.get_pauvi(cursor, uid, sgpol, context, ctx) + auvi_pauvi = self.get_pauvi(cursor, uid, sgpol, context, ctx) res = { 'auvi': auvi, From 628560551cf7a68b1f9a858f9daa33a18b7ff007 Mon Sep 17 00:00:00 2001 From: pauboixsom Date: Wed, 11 Dec 2024 11:24:07 +0100 Subject: [PATCH 18/18] =?UTF-8?q?=E2=9C=85=20Fix=20module=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pere Montagud Ferragud --- .../tests/tests_report_backend_ccpp.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py b/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py index b8e7de35c..d3c4bab2a 100644 --- a/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py +++ b/som_polissa_condicions_generals/tests/tests_report_backend_ccpp.py @@ -34,7 +34,7 @@ def test_get_cups_data_ok(self): u'cnae': u'9820', u'cnae_des': u'Actividades de los hogares como productores de servicios para uso propio', # noqa: E501 u'country': u'Espa\xf1a', - u'direccio': u'Pla\xe7a Mela Mutermilch 2 1 2 17001 (Girona)', + u'direccio': u'Pla\xe7a Mela Mutermilch , 2 1 2 17001 (Girona)', u'distri': u'Agrolait', u'name': u'ES0021126262693495FV', u'provincia': u'Girona', @@ -95,7 +95,6 @@ def test_get_polissa_data_ok(self): pricelist = 12 self.assertEqual(result, { u'auto': u'00', - u'auvi': False, u'bank': False, u'contract_type': u'Anual', u'data_baixa': '2099-01-01', @@ -103,6 +102,7 @@ def test_get_polissa_data_ok(self): u'data_inici': '2021-06-01', u'is_business': False, u'lead': False, + u'modcon_pendent_auvi': False, u'modcon_pendent_indexada': False, u'modcon_pendent_periodes': False, u'mode_facturacio': u'atr', @@ -124,6 +124,7 @@ def test_get_prices_data_ok(self): result = self.backend_obj.get_prices_data(self.cursor, self.uid, pol_20td, context={}) self.assertEqual(result, { + u'auvi': False, u'auvi_name': u'', u'auvi_pauvi': 0.0, u'auvi_percent': 0.0,