/* Парус 8 - Панели мониторинга - УДП - Доски задач Пользовательские хуки: Хуки открытия разделов */ //--------------------- //Подключение библиотек //--------------------- import { useContext, useCallback } from "react"; //Классы React import { ApplicationСtx } from "../../../context/application"; //Контекст приложения //----------- //Тело модуля //----------- //Состояние открытия разделов const useDictionary = () => { //Подключение к контексту приложения const { pOnlineShowDictionary } = useContext(ApplicationСtx); //Отображение раздела "Сотрудники" const handleClientPersonOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "ClientPersons", showMethod: "main", inputParameters: [{ name: "in_CODE", value: prms.sCode }], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Клиенты" const handleClientClientsOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "ClientClients", showMethod: "main", inputParameters: [{ name: "in_CLIENT_CODE", value: prms.sCode }], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Каталоги" const handleCatalogTreeOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "CatalogTree", showMethod: "main", inputParameters: [ { name: "in_DOCNAME", value: prms.sUnitName }, { name: "in_NAME", value: prms.sName } ], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Типы событий" const handleEventTypesOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "ClientEventTypes", showMethod: "dictionary", inputParameters: [{ name: "pos_eventtypecode", value: prms.sCode }], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Контрагенты" const handleAgnlistOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "AGNLIST", showMethod: "agents", inputParameters: [{ name: "pos_agnmnemo", value: prms.sMnemo }], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Штатные подразделения" const handleInsDepartmentOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "INS_DEPARTMENT", inputParameters: [{ name: "in_CODE", value: prms.sCode }], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Нештатные структуры" const handleCostStaffGroupsOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "CostStaffGroups", inputParameters: [{ name: "in_CODE", value: prms.sCode }], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Дополнительные словари" const handleExtraDictionariesOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "ExtraDictionaries", showMethod: "values", inputParameters: [ { name: "pos_rn", value: prms.nRn }, { name: prms.sParamName, value: prms.paramValue } ], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "Маршруты событий (исполнители в точках)" const handleEventRoutesPointExecutersOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "EventRoutesPointExecuters", showMethod: "executers", inputParameters: prms.inputParameters, callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Отображение раздела "События" const handleClientEventsOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "ClientEvents", inputParameters: [{ name: "in_Ident", value: prms.nIdent }] }); }, [pOnlineShowDictionary] ); //Отображение раздела "События (примечания)" const handleClientEventsNotesOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "ClientEventsNotes", showMethod: "main", inputParameters: [{ name: "in_PRN", value: prms.nPrn }] }); }, [pOnlineShowDictionary] ); //Отображение раздела "Присоединенные документы" const handleFileLinksOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "FileLinks", showMethod: "main_link", inputParameters: [ { name: "in_PRN", value: prms.nPrn }, { name: "in_UNITCODE", value: prms.sUnitCode } ] }); }, [pOnlineShowDictionary] ); //Отображение раздела "Маршруты событий (точки перехода)" const handleEventRoutesPointsPassessOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: "EventRoutesPointsPasses", showMethod: "main_passes", inputParameters: [ { name: "in_ENVTYPE_CODE", value: prms.sEventType }, { name: "in_ENVSTAT_CODE", value: prms.sEventStatus }, { name: "in_POINT", value: prms.nPoint } ], callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); //Универсальное отображение раздела const handleUnitOpen = useCallback( async prms => { pOnlineShowDictionary({ unitCode: prms.sUnitCode, showMethod: prms.sShowMethod, inputParameters: prms.inputParameters, callBack: res => { res.success ? prms.callBack(res) : null; } }); }, [pOnlineShowDictionary] ); return { handleClientPersonOpen, handleClientClientsOpen, handleCatalogTreeOpen, handleEventTypesOpen, handleAgnlistOpen, handleInsDepartmentOpen, handleCostStaffGroupsOpen, handleExtraDictionariesOpen, handleEventRoutesPointExecutersOpen, handleClientEventsOpen, handleClientEventsNotesOpen, handleFileLinksOpen, handleEventRoutesPointsPassessOpen, handleUnitOpen }; }; //---------------- //Интерфейс модуля //---------------- export { useDictionary };