August 31, 2023

calculateAndHandleTotalByConditions  

calculateAndHandleTotalByConditions

Описание

Функция сalculateAndHandleTotalByConditions осуществляет автоматические расчеты и обновляет значения полей в форме на основе предоставленной конфигурации. Она упрощает процесс работы с формами и декларациями, позволяя легко переиспользовать логику расчетов

Сигнатура

const calculateAndHandleTotalByConditions = ({ formik, tableName, config }) => {...};

Параметры

  • formik (Объект): Объект Formik, содержащий текущие значения и состояние формы.
  • tableName (Строка): Название таблицы, для которой нужно выполнить вычисления.
  • config (Массив): Массив объектов конфигурации для расчетов. Каждый объект в конфигурации содержит следующие поля:
    • totalName (Строка): Название поля, для которого выполняется расчет.
    • conditionCallback (Функция): Функция обратного вызова, которая определяет условия для включения поля в расчет.
    • eventName (Строка): Название события, которое будет вызвано после расчета значения.

Возвращаемое значение

Функция не возвращает значения. Она выполняет расчеты на основе конфигурации и обновляет значения в форме, если они изменились.

Пример использования

// Конфигурация для расчетов в таблице
const config = [
  {
    totalName: 'F', // Название поля для расчета
    conditionCallback: (item) => item?.G === '1', // Условие для включения поля в расчет
    eventName: 'application01[0].totalAnnualIncome._001.value', // Название события после расчета
  },
  // Другие объекты конфигурации...
];
import { calculateAndHandleTotalByConditions } from '@/pages/MGU/Monitoring/FNO/functions/formik/calculateAndHandleTotalByConditions';

const formik = /* Получите объект Formik */;
const APPLICATION_8_FORM_NAME_OF_TABLE = 'application08.rows'; // наименование таблицы

useEffect(() => {
  // Проверяем, можно ли выполнять эффекты в текущем режиме
  if (!canRunEffects({ mode })) return;

  // Вызываем функцию для расчетов с передачей формика, конфигурации и имени таблицы
  calculateAndHandleTotalByConditions({
    formik, // Объект Formik
    config, // Конфигурация для расчетов
    tableName: APPLICATION_8_FORM_NAME_OF_TABLE, // Имя таблицы
  });
}, [getNestedProperty(formik.values, APPLICATION_8_FORM_NAME_OF_TABLE, true)]);

Функция calculateAndHandleTotalByConditions позволяет легко настраивать и выполнять расчеты для разных полей и таблиц в вашей форме. Вы можете определить разные условия и события для обновления значений в зависимости от ваших потребностей.

По вопросам общаться к https://t.me/usar0vv