diff --git a/src/containers/NewContractMember/pages/NewContractMemberSummary.jsx b/src/containers/NewContractMember/pages/NewContractMemberSummary.jsx
index f5e14da2..f7b4da63 100644
--- a/src/containers/NewContractMember/pages/NewContractMemberSummary.jsx
+++ b/src/containers/NewContractMember/pages/NewContractMemberSummary.jsx
@@ -9,7 +9,9 @@ import Button from '@mui/material/Button'
import { useTheme } from '@mui/material/styles'
import Typography from '@mui/material/Typography'
+import Stack from '@mui/material/Stack'
import Grid from '@mui/material/Grid'
+import Box from '@mui/material/Box'
import Divider from '@mui/material/Divider'
import FormControlLabel from '@mui/material/FormControlLabel'
@@ -53,6 +55,9 @@ const NewContractMemberSummary = (props) => {
const [loading, setLoading] = useState(false)
const [prices, setPrices] = useState({})
+
+ const [estimatedMonthlykWh, setEstimatedMonthlykWh] = useState(null)
+ const [estimatedMonthlyTotalEur, setEstimatedMonthlyTotalEur] = useState(null)
const [openGeneralTermsDialog, setOpenGeneralTermsDialog] = useState(false)
const [showReviewLinks, setShowReviewLinks] = useState(false)
@@ -403,6 +408,9 @@ const NewContractMemberSummary = (props) => {
)
const cityId = values?.supply_point_address?.city?.id || null
+ const powers = powerFields.map(
+ (power) => String(Math.round(Number(power) * THOUSANDS_CONVERSION_FACTOR))
+ )
getPrices({
tariff:
@@ -410,11 +418,18 @@ const NewContractMemberSummary = (props) => {
max_power: maxPower,
vat: values.new_member?.nif ? values.new_member.nif : values.member.nif,
cnae: values.supply_point.cnae,
- city_id: cityId
+ city_id: cityId,
+ powers: powers,
+ pricelist_type: isTariffIndexed ? 'index' : 'periods'
})
.then((response) => {
const tariffPrices = response?.data['current']
+ const estimatedMonthlykWh = response?.data['estimated_monthly_kwh']
+ const estimatedMonthlyTotalEur = response?.data['estimated_monthly_total_eur']
+
setPrices(tariffPrices)
+ setEstimatedMonthlykWh(estimatedMonthlykWh)
+ setEstimatedMonthlyTotalEur(estimatedMonthlyTotalEur)
setLoading(false)
})
.catch((error) => {
@@ -424,9 +439,11 @@ const NewContractMemberSummary = (props) => {
}, [
values.contract.power,
values.contract.power_type,
- values.new_member.nif,
+ values.new_member?.nif,
+ values.member?.nif,
values.supply_point.cnae,
- values?.supply_point_address?.city?.id
+ values?.supply_point_address?.city?.id,
+ isTariffIndexed
])
const handleCheckboxChange = async (event, fieldName) => {
@@ -500,21 +517,48 @@ const NewContractMemberSummary = (props) => {
)}
+ {estimatedMonthlykWh && (
+ <>
+
+
+
+
+
+
+ {t('SIMULATION_PRICES_TITLE')}
+
+
+
+
+
+ >)}
-
- {t('SUMMARY_OTHER_CONCEPTS_TITLE')}
-
-
-
-
+
+
+ {t('SUMMARY_OTHER_CONCEPTS_TITLE')}
+
+
+
+
diff --git a/src/i18n/locale-ca.json b/src/i18n/locale-ca.json
index 2d903d20..25a1ddd1 100644
--- a/src/i18n/locale-ca.json
+++ b/src/i18n/locale-ca.json
@@ -860,5 +860,7 @@
"PRICES_ERROR_MISSING_DATA": "No hi ha dades disponibles per a aquesta data. Disculpa les molèsties!",
"API_ERROR_FETCHING_DATA": "Malauradament, no podem mostrar ara la previsió de preus, a causa d’una incidència. Esperem que es pugui resoldre de seguida i poder mostrar-la al més aviat possible. Disculpa les molèsties!",
"15YEARS_CAMPAIGN": "Celebrem 15 anys!",
- "15YEARS_DESCRIPTION": "De 100 a 0 €: contracta la llum sense associar-te"
+ "15YEARS_DESCRIPTION": "De 100 a 0 €: contracta la llum sense associar-te",
+ "SIMULATION_PRICES_TITLE": "Preu estimat",
+ "SIMULATION_PRICES_BODY": "El consum mensual mitjà d'un contracte amb la teva potència és de {{ estimated_monthly_kwh }} kWh. Tenint en compte la tarifa escollida, el preu mitjà del mes passat i els impostos vigents, el cost estimat seria de {{ estimated_monthly_total_eur }} €. Aquest import és una estimació orientativa de la teva facturació mensual i pot variar segons la compensació d'excedents, perfils de consum i altres variables. No reflecteix l'import real final de la teva factura a Som Energia. Per a una comparativa més ajustada al teu consum final, escriu a hola@somenergia.coop i t'ajudarem encantades."
}
diff --git a/src/i18n/locale-es.json b/src/i18n/locale-es.json
index 395b3ec7..0cc5b09a 100644
--- a/src/i18n/locale-es.json
+++ b/src/i18n/locale-es.json
@@ -860,5 +860,7 @@
"PRICES_ERROR_MISSING_DATA": "No hay datos disponibles para esta fecha. ¡Disculpa las molestias!",
"API_ERROR_FETCHING_DATA": "Lamentablemente, no podemos mostrar ahora la previsión de precios, a causa de una incidencia. Esperamos que se pueda resolver en seguida y poder mostrarla lo más pronto posible. ¡Disculpa las molestias!",
"15YEARS_CAMPAIGN": "¡Celebramos 15 años!",
- "15YEARS_DESCRIPTION": "De 100 a 0 €: contrata la luz sin asociarte"
+ "15YEARS_DESCRIPTION": "De 100 a 0 €: contrata la luz sin asociarte",
+ "SIMULATION_PRICES_TITLE": "Precio estimado",
+ "SIMULATION_PRICES_BODY": "El consumo mensual medio de un contrato con tu potencia es de {{ estimated_monthly_kwh }} kWh. Teniendo en cuenta la tarifa escogida, el precio medio del mes pasado y los impuestos vigentes, el coste estimado sería de {{ estimated_monthly_total_eur }} €. Este importe es una estimación orientativa de tu facturación mensual y puede variar según la compensación de excedentes, perfiles de consumo y otras variables. No refleja el importe real final de tu factura a Som Energia. Para una comparativa más ajustada a tu consumo final, escribe a hola@somenergia.coop y te ayudaremos encantadas."
}
diff --git a/src/i18n/locale-eu.json b/src/i18n/locale-eu.json
index bd04ef1e..62175338 100644
--- a/src/i18n/locale-eu.json
+++ b/src/i18n/locale-eu.json
@@ -859,5 +859,7 @@
"PRICES_ERROR_MISSING_DATA": "Ez dago egun honetako daturik. Barkatu eragozpenak!",
"API_ERROR_FETCHING_DATA": "Tamalez, intzidentzia bat dela eta, une honetan ezin dugu erakutsi prezio-iragarpena. Espero dugu berehala konpontzea eta iragarpena lehenbailehen erakutsi ahal izatea. Barkatu eragozpenak!",
"15YEARS_CAMPAIGN": "15 urte ospatzen ditugu!",
- "15YEARS_DESCRIPTION": "100 ordez 0 €: kontratatu argia bazkidetu gabe"
+ "15YEARS_DESCRIPTION": "100 ordez 0 €: kontratatu argia bazkidetu gabe",
+ "SIMULATION_PRICES_TITLE": "",
+ "SIMULATION_PRICES_BODY": ""
}
diff --git a/src/i18n/locale-gl.json b/src/i18n/locale-gl.json
index 31ae816e..8859bdc2 100644
--- a/src/i18n/locale-gl.json
+++ b/src/i18n/locale-gl.json
@@ -858,5 +858,7 @@
"PRICES_ERROR_MISSING_DATA": "Non hai datos dispoñibles para esta data. Desculpa as molestias!",
"API_ERROR_FETCHING_DATA": "Lamentablemente, nestes intres non che podemos amosar a previsión de prezos debido a unha incidencia. Agardamos resolvelo axiña e poder amosala o antes posible. Desculpa as molestias!",
"15YEARS_CAMPAIGN": "Celebramos 15 anos!",
- "15YEARS_DESCRIPTION": "De 100 a 0 €: contrata a luz sen te asociares"
+ "15YEARS_DESCRIPTION": "De 100 a 0 €: contrata a luz sen te asociares",
+ "SIMULATION_PRICES_TITLE": "",
+ "SIMULATION_PRICES_BODY": ""
}
diff --git a/src/services/api.js b/src/services/api.js
index 554185d1..3c8f7687 100644
--- a/src/services/api.js
+++ b/src/services/api.js
@@ -227,23 +227,35 @@ export const getPrices = async ({
max_power,
vat = VAT,
cnae = CNAE,
- city_id
+ city_id,
+ powers,
+ pricelist_type,
}) => {
+
+ const params = new URLSearchParams()
+
+ params.append('tariff', tariff)
+ params.append('max_power', max_power)
+ params.append('vat', vat)
+ params.append('cnae', cnae)
+ params.append('city_id', city_id)
+
+ powers?.forEach((power) => {
+ params.append('powers', power)
+ })
+
+ if (pricelist_type) {
+ params.append('pricelist_type', pricelist_type)
+ }
+
return axios({
method: 'GET',
url: `${WEBFORMS_API_URL}/data/prices`,
- params: {
- tariff,
- max_power,
- vat,
- cnae,
- city_id
- }
- }).then((response) => {
- return response?.data
- })
+ params,
+ }).then((response) => response?.data)
}
+
export const newContract = async (data) => {
return axios({
method: 'POST',