diff --git a/csharp/App/SaliMax/src/Ess/Controller.cs b/csharp/App/SaliMax/src/Ess/Controller.cs index 23ffbc3c1..5bb499460 100644 --- a/csharp/App/SaliMax/src/Ess/Controller.cs +++ b/csharp/App/SaliMax/src/Ess/Controller.cs @@ -195,6 +195,8 @@ public static class Controller var mustDoCalibrationCharge = calibrationChargeForced == CalibrationChargeType.ChargePermanently || (calibrationChargeForced == CalibrationChargeType.AdditionallyOnce && additionalCalibrationRequired) || (calibrationChargeForced == CalibrationChargeType.RepetitivelyEvery && repetitiveCalibrationRequired); + Console.WriteLine("Next Repetitive calibration charge date is "+statusRecord.Config.DayAndTimeForRepetitiveCalibration); + Console.WriteLine("Next Additional calibration charge date is "+statusRecord.Config.DayAndTimeForAdditionalCalibration); if (statusRecord.Battery is not null) { @@ -204,7 +206,7 @@ public static class Controller _hasAdditionalCalibrationChargeChecked = false; } - else if (calibrationChargeForced == CalibrationChargeType.RepetitivelyEvery && statusRecord.Battery.Eoc) + else if (calibrationChargeForced == CalibrationChargeType.RepetitivelyEvery && statusRecord.Battery.Eoc ) { statusRecord.Config.DayAndTimeForRepetitiveCalibration = statusRecord.Config.DayAndTimeForRepetitiveCalibration.AddDays(7); _hasRepetitiveCalibrationChargeChecked = false; diff --git a/typescript/frontend-marios2/src/content/dashboards/Configuration/Configuration.tsx b/typescript/frontend-marios2/src/content/dashboards/Configuration/Configuration.tsx index 5be17ae4f..0ce1d919a 100644 --- a/typescript/frontend-marios2/src/content/dashboards/Configuration/Configuration.tsx +++ b/typescript/frontend-marios2/src/content/dashboards/Configuration/Configuration.tsx @@ -18,7 +18,6 @@ import { import React, { useState } from 'react'; import { FormattedMessage } from 'react-intl'; import Button from '@mui/material/Button'; -import axiosConfig from '../../../Resources/axiosConfig'; import { Close as CloseIcon } from '@mui/icons-material'; import MenuItem from '@mui/material/MenuItem'; import { @@ -28,6 +27,8 @@ import { } from '@mui/x-date-pickers'; import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; import dayjs from 'dayjs'; +import axiosConfig from '../../../Resources/axiosConfig'; +import utc from 'dayjs/plugin/utc'; interface ConfigurationProps { values: TopologyValues; @@ -61,6 +62,9 @@ function Configuration(props: ConfigurationProps) { 'Saturday' ]; + dayjs.extend(utc); + const localOffset = dayjs().utcOffset(); + const [errors, setErrors] = useState({ minimumSoC: false, gridSetPoint: false @@ -89,35 +93,43 @@ function Configuration(props: ConfigurationProps) { CalibrationChargeOptionsController.indexOf( props.values.calibrationChargeState[0].value.toString() ) == 0 - ? dayjs(props.values.repetitiveCalibrationChargeDate[0].value).toDate() - : dayjs(props.values.additionalCalibrationChargeDate[0].value).toDate() + ? dayjs + .utc(props.values.repetitiveCalibrationChargeDate[0].value) + .add(localOffset, 'minute') + .toDate() + : dayjs + .utc(props.values.additionalCalibrationChargeDate[0].value) + .add(localOffset, 'minute') + .toDate() }); const handleSubmit = async (e) => { if ( - props.values.mode[0].value === 'CalibrationCharge' && - formValues.CalibrationChargeState == 0 + CalibrationChargeOptionsController.indexOf( + props.values.calibrationChargeState[0].value.toString() + ) != 2 && + props.values.mode[0].value === 'CalibrationCharge' ) { setDateSelectionError( 'You cannot change the date while the installation is in Calibration Charge Mode' ); setErrorDateModalOpen(true); return; - } else if (dayjs(formValues.calibrationChargeDate).isBefore(dayjs())) { - console.log(dayjs()); - console.log('asked for', dayjs(formValues.calibrationChargeDate)); + } else if ( + formValues.CalibrationChargeState != 2 && + dayjs(formValues.calibrationChargeDate).isBefore(dayjs()) + ) { + //console.log('asked for', dayjs(formValues.calibrationChargeDate)); setDateSelectionError('You must specify a future date'); setErrorDateModalOpen(true); return; } else { - console.log('asked for', dayjs(formValues.calibrationChargeDate)); + //console.log('asked for', dayjs(formValues.calibrationChargeDate)); const configurationToSend: ConfigurationValues = { minimumSoC: formValues.minimumSoC, gridSetPoint: formValues.gridSetPoint, CalibrationChargeState: formValues.CalibrationChargeState, - calibrationChargeDate: dayjs(formValues.calibrationChargeDate) - .add(2, 'hours') - .toDate() + calibrationChargeDate: dayjs(formValues.calibrationChargeDate).toDate() }; setLoading(true); @@ -147,7 +159,7 @@ function Configuration(props: ConfigurationProps) { const handleConfirm = (newDate) => { setFormValues({ ...formValues, - ['calibrationChargeDate']: dayjs(newDate).toDate() + ['calibrationChargeDate']: dayjs.utc(newDate).toDate() }); }; @@ -159,7 +171,6 @@ function Configuration(props: ConfigurationProps) { difference += 7; } const adjustedDate = currentDate.add(difference, 'day'); - setFormValues({ ...formValues, ['calibrationChargeDate']: adjustedDate.toDate() @@ -174,12 +185,14 @@ function Configuration(props: ConfigurationProps) { ), ['calibrationChargeDate']: CalibrationChargeOptions.indexOf(event.target.value) == 0 - ? dayjs( - props.values.repetitiveCalibrationChargeDate[0].value - ).toDate() - : dayjs( - props.values.additionalCalibrationChargeDate[0].value - ).toDate() + ? dayjs + .utc(props.values.repetitiveCalibrationChargeDate[0].value) + .add(localOffset, 'minute') + .toDate() + : dayjs + .utc(props.values.additionalCalibrationChargeDate[0].value) + .add(localOffset, 'minute') + .toDate() }); }; @@ -320,9 +333,6 @@ function Configuration(props: ConfigurationProps) { ] } onChange={handleSelectedCalibrationChargeChange} - //open={openForcedCalibrationCharge} - //onClose={handleCloseForcedCalibrationCharge} - //onOpen={handleOpenForcedCalibrationCharge} > {CalibrationChargeOptions.map((option) => ( @@ -336,8 +346,10 @@ function Configuration(props: ConfigurationProps) {
{daysInWeek.map((day) => ( @@ -386,8 +395,9 @@ function Configuration(props: ConfigurationProps) {
diff --git a/typescript/frontend-marios2/src/content/dashboards/Information/Information.tsx b/typescript/frontend-marios2/src/content/dashboards/Information/Information.tsx index 86a227000..2fc3183ac 100644 --- a/typescript/frontend-marios2/src/content/dashboards/Information/Information.tsx +++ b/typescript/frontend-marios2/src/content/dashboards/Information/Information.tsx @@ -282,25 +282,25 @@ function Information(props: InformationProps) { />
-
- -
+ {/*
*/} + {/* */} + {/*
*/} -
- -
+ {/*
*/} + {/* */} + {/*
*/}