diff --git a/client/src/components/report-center-modal/report-center-modal.component.jsx b/client/src/components/report-center-modal/report-center-modal.component.jsx
index 641d2724c..5dbdafdaa 100644
--- a/client/src/components/report-center-modal/report-center-modal.component.jsx
+++ b/client/src/components/report-center-modal/report-center-modal.component.jsx
@@ -25,6 +25,7 @@ import { TemplateList } from "../../utils/TemplateConstants";
import EmployeeSearchSelect from "../employee-search-select/employee-search-select.component";
import VendorSearchSelect from "../vendor-search-select/vendor-search-select.component";
import "./report-center-modal.styles.scss";
+import Test from "./test";
const mapStateToProps = createStructuredSelector({
reportCenterModal: selectReportCenter,
});
@@ -67,6 +68,7 @@ export function ReportCenterModalComponent({ reportCenterModal }) {
});
const handleFinish = async (values) => {
+ console.log("🚀 ~ handleFinish ~ values:", values);
setLoading(true);
const start = values.dates ? values.dates[0] : null;
const end = values.dates ? values.dates[1] : null;
@@ -79,14 +81,14 @@ export function ReportCenterModalComponent({ reportCenterModal }) {
...(start
? { start: dayjs(start).startOf("day").format("YYYY-MM-DD") }
: {}),
- ...(end
- ? { end: dayjs(end).endOf("day").format("YYYY-MM-DD") }
- : {}),
+ ...(end ? { end: dayjs(end).endOf("day").format("YYYY-MM-DD") } : {}),
...(start ? { starttz: dayjs(start).startOf("day") } : {}),
...(end ? { endtz: dayjs(end).endOf("day") } : {}),
...(id ? { id: id } : {}),
},
+ filters: values.filters,
+ sorters: values.sorters,
},
{
to: values.to,
@@ -189,6 +191,7 @@ export function ReportCenterModalComponent({ reportCenterModal }) {
);
}}
+
{() => {
const key = form.getFieldValue("key");
diff --git a/client/src/components/report-center-modal/test.jsx b/client/src/components/report-center-modal/test.jsx
new file mode 100644
index 000000000..81910c8ba
--- /dev/null
+++ b/client/src/components/report-center-modal/test.jsx
@@ -0,0 +1,206 @@
+import { Button, Col, Form, Input, Row, Select } from "antd";
+import React, { useEffect, useState } from "react";
+import { fetchFilterData } from "../../utils/RenderTemplate";
+import { DeleteFilled } from "@ant-design/icons";
+import { useTranslation } from "react-i18next";
+export default function Test({ form }) {
+ return (
+
+ {() => {
+ const key = form.getFieldValue("key");
+ return ;
+ }}
+
+ );
+}
+
+function RenderFilters({ templateId }) {
+ const [state, setState] = useState(null);
+ console.log("state", state);
+ const { t } = useTranslation();
+ useEffect(() => {
+ const fetch = async () => {
+ const data = await fetchFilterData({ name: templateId });
+ console.log("🚀 ~ fetch ~ data:", data);
+ setState(JSON.parse(data));
+ };
+
+ console.log("🚀 ~ useEffect ~ templateId:", templateId);
+ if (templateId) {
+ fetch();
+ }
+ }, [templateId]);
+
+ if (!templateId || !state) return null;
+ return (
+
+
+ {(fields, { add, remove, move }) => {
+ return (
+
+ Filters
+ {fields.map((field, index) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ remove(field.name);
+ }}
+ />
+
+
+
+ ))}
+
+
+
+
+ );
+ }}
+
+
+ {(fields, { add, remove, move }) => {
+ return (
+
+ Sorters
+ {fields.map((field, index) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ remove(field.name);
+ }}
+ />
+
+
+
+ ))}
+
+
+
+
+ );
+ }}
+
+
+ );
+}
diff --git a/client/src/utils/RenderTemplate.js b/client/src/utils/RenderTemplate.js
index 4d20dc117..f7ecf4c71 100644
--- a/client/src/utils/RenderTemplate.js
+++ b/client/src/utils/RenderTemplate.js
@@ -305,6 +305,48 @@ export const GenerateDocuments = async (templates) => {
await RenderTemplates(templates, bodyshop);
};
+export const fetchFilterData = async ({ name }) => {
+ const bodyshop = store.getState().user.bodyshop;
+ const jsrAuth = (await axios.post("/utils/jsr")).data;
+ jsreport.headers["FirebaseAuthorization"] =
+ "Bearer " + (await auth.currentUser.getIdToken());
+
+ const folders = await cleanAxios.get(`${server}/odata/folders`, {
+ headers: { Authorization: jsrAuth },
+ });
+ const shopSpecificFolder = folders.data.value.find(
+ (f) => f.name === bodyshop.imexshopid
+ );
+
+ const jsReportFilters = await cleanAxios.get(
+ `${server}/odata/assets?$filter=name eq '${name}.filters'`,
+ { headers: { Authorization: jsrAuth } }
+ );
+ console.log("🚀 ~ fetchFilterData ~ jsReportFilters:", jsReportFilters);
+
+ let parsedFilterData;
+ let useShopSpecificTemplate = false;
+ // let shopSpecificTemplate;
+
+ if (shopSpecificFolder) {
+ let shopSpecificTemplate = jsReportFilters.data.value.find(
+ (f) => f?.folder?.shortid === shopSpecificFolder.shortid
+ );
+ if (shopSpecificTemplate) {
+ useShopSpecificTemplate = true;
+ parsedFilterData = atob(shopSpecificTemplate.content);
+ }
+ }
+
+ if (!parsedFilterData) {
+ const generalTemplate = jsReportFilters.data.value.find((f) => !f.folder);
+ useShopSpecificTemplate = false;
+ if (generalTemplate) parsedFilterData = atob(generalTemplate.content);
+ }
+
+ return parsedFilterData;
+};
+
const fetchContextData = async (templateObject, jsrAuth) => {
const bodyshop = store.getState().user.bodyshop;