@appcorp/fusion-storybook 0.3.20 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,13 +8,12 @@ import { STUDENT_FEE_API_ROUTES } from "../../constants";
|
|
|
8
8
|
import { getCachedWorkspaceSync } from "../workspace/cache";
|
|
9
9
|
import { API_METHODS } from "@react-pakistan/util-functions";
|
|
10
10
|
import { DISCOUNT_TYPE } from "../../type";
|
|
11
|
-
import { calculateAccumulatedStudentFeeFines } from "../../utils/fine";
|
|
12
11
|
import { useTranslations } from "next-intl";
|
|
13
12
|
import { useFetch } from "@react-pakistan/util-functions/hooks/use-fetch";
|
|
14
13
|
import { useDebounce } from "@react-pakistan/util-functions/hooks/use-debounce";
|
|
15
14
|
import { Loader2 } from "lucide-react";
|
|
16
15
|
export const SingleEntryStudentFeeForm = () => {
|
|
17
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
16
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
18
17
|
const { dispatch } = useStudentFeeModule();
|
|
19
18
|
const workspace = getCachedWorkspaceSync();
|
|
20
19
|
const currency = (_b = (_a = workspace === null || workspace === void 0 ? void 0 : workspace.school) === null || _a === void 0 ? void 0 : _a.currency) !== null && _b !== void 0 ? _b : "";
|
|
@@ -53,7 +52,8 @@ export const SingleEntryStudentFeeForm = () => {
|
|
|
53
52
|
const fee = (_f = (_e = response === null || response === void 0 ? void 0 : response.studentFees) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : null;
|
|
54
53
|
useEffect(() => {
|
|
55
54
|
(async () => {
|
|
56
|
-
|
|
55
|
+
var _a, _b;
|
|
56
|
+
setAmountPaid(String(((_a = fee === null || fee === void 0 ? void 0 : fee.amount) !== null && _a !== void 0 ? _a : 0) + ((_b = fee === null || fee === void 0 ? void 0 : fee.fine) !== null && _b !== void 0 ? _b : 0)));
|
|
57
57
|
})();
|
|
58
58
|
}, [fee]);
|
|
59
59
|
useEffect(() => {
|
|
@@ -86,19 +86,19 @@ export const SingleEntryStudentFeeForm = () => {
|
|
|
86
86
|
const d = new Date(rawDate);
|
|
87
87
|
return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
|
|
88
88
|
};
|
|
89
|
-
const PER_DATE_RATE = 10;
|
|
90
89
|
const accumulatedFine = useMemo(() => {
|
|
91
|
-
var _a
|
|
92
|
-
if (!((_a = response === null || response === void 0 ? void 0 : response.studentFees) === null || _a === void 0 ? void 0 : _a.length)
|
|
90
|
+
var _a;
|
|
91
|
+
if (!((_a = response === null || response === void 0 ? void 0 : response.studentFees) === null || _a === void 0 ? void 0 : _a.length))
|
|
93
92
|
return 0;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}, [response, workspace]);
|
|
93
|
+
return response.studentFees.reduce((sum, f) => { var _a; return sum + ((_a = f.fine) !== null && _a !== void 0 ? _a : 0); }, 0);
|
|
94
|
+
}, [response]);
|
|
97
95
|
const handleUpdateAmountPaid = (value) => {
|
|
98
96
|
const amountPaid = parseFloat(value);
|
|
99
97
|
if (isNaN(amountPaid))
|
|
100
98
|
return;
|
|
101
99
|
setAmountPaid(value);
|
|
102
100
|
};
|
|
103
|
-
return (_jsxs("div", { className: "grid grid-cols-1 gap-4", children: [_jsx(EnhancedInput, { id: "computerNumber", info: t("formComputerNumberInfo"), label: t("formComputerNumberLabel"), onChange: (e) => setComputerNumber(e.target.value), placeholder: t("formComputerNumberPlaceholder"), type: "number", required: true, value: computerNumber }), fetchingByCN && debouncedComputerNumber ? (_jsx("div", { className: "flex items-center justify-center py-4", children: _jsx(Loader2, { className: "text-muted-foreground h-5 w-5 animate-spin" }) })) : null, fee && profile ? (_jsxs(_Fragment, { children: [_jsx(EnhancedInput, { readOnly: true, id: "studentProfileId-readonly", label: t("formStudentLabel"), value: studentName }), _jsx(EnhancedInput, { readOnly: true, id: "computerNumber-readonly", label: t("formComputerNumberLabel"), value: profile === null || profile === void 0 ? void 0 : profile.computerNumber, type: "number" }), _jsx(EnhancedInput, { readOnly: true, id: "feeStructureId-readonly", label: t("formFeeStructureLabel"), value: feeStructureName }), _jsx(EnhancedInput, { readOnly: true, id: "discountCodeId-readonly", label: t("formDiscountCodeLabel"), value: discountCodeLabel }), _jsx(EnhancedInput, { readOnly: true, id: "discountAmount-readonly", label: t("formDiscountAmountLabel"), value: (_h = fee === null || fee === void 0 ? void 0 : fee.discountAmount) !== null && _h !== void 0 ? _h : 0, type: "number", step: "0.01" }), _jsx(EnhancedInput, { readOnly: true, id: "
|
|
101
|
+
return (_jsxs("div", { className: "grid grid-cols-1 gap-4", children: [_jsx(EnhancedInput, { id: "computerNumber", info: t("formComputerNumberInfo"), label: t("formComputerNumberLabel"), onChange: (e) => setComputerNumber(e.target.value), placeholder: t("formComputerNumberPlaceholder"), type: "number", required: true, value: computerNumber }), fetchingByCN && debouncedComputerNumber ? (_jsx("div", { className: "flex items-center justify-center py-4", children: _jsx(Loader2, { className: "text-muted-foreground h-5 w-5 animate-spin" }) })) : null, fee && profile ? (_jsxs(_Fragment, { children: [_jsx(EnhancedInput, { readOnly: true, id: "studentProfileId-readonly", label: t("formStudentLabel"), value: studentName }), _jsx(EnhancedInput, { readOnly: true, id: "computerNumber-readonly", label: t("formComputerNumberLabel"), value: profile === null || profile === void 0 ? void 0 : profile.computerNumber, type: "number" }), _jsx(EnhancedInput, { readOnly: true, id: "feeStructureId-readonly", label: t("formFeeStructureLabel"), value: feeStructureName }), _jsx(EnhancedInput, { readOnly: true, id: "discountCodeId-readonly", label: t("formDiscountCodeLabel"), value: discountCodeLabel }), _jsx(EnhancedInput, { readOnly: true, id: "discountAmount-readonly", label: t("formDiscountAmountLabel"), value: (_h = fee === null || fee === void 0 ? void 0 : fee.discountAmount) !== null && _h !== void 0 ? _h : 0, type: "number", step: "0.01" }), _jsx(EnhancedInput, { readOnly: true, id: "accumulatedFine-readonly", info: t("formAccumulatedFineInfo"), label: t("formAccumulatedFineLabel"), value: accumulatedFine, type: "number", step: "0.01" }), _jsx(EnhancedInput, { readOnly: true, id: "amount-readonly", info: t("formTotalAmountInfo"), label: t("formTotalAmountLabel"), value: ((_j = fee === null || fee === void 0 ? void 0 : fee.amount) !== null && _j !== void 0 ? _j : 0) + ((_k = fee === null || fee === void 0 ? void 0 : fee.fine) !== null && _k !== void 0 ? _k : 0), type: "number", step: "0.01" }), _jsx(EnhancedInput, { id: "amountPaid", info: t("formAmountPaidInfo"), label: t("formAmountPaidLabel"), value: amountPaid, onChange: (e) => handleUpdateAmountPaid(e.target.value), type: "number", step: "0.01" }), _jsx(EnhancedInput, { readOnly: true, id: "amountDue-readonly", info: t("formAmountDueInfo"), label: t("formAmountDueLabel"), value: Number(fee === null || fee === void 0 ? void 0 : fee.amountDue) +
|
|
102
|
+
((_l = fee === null || fee === void 0 ? void 0 : fee.fine) !== null && _l !== void 0 ? _l : 0) -
|
|
103
|
+
parseFloat(amountPaid || "0"), type: "number", step: "0.01" }), _jsx(EnhancedInput, { readOnly: true, id: "dueDate-readonly", label: t("formDueDateLabel"), value: formatDisplayDate(fee === null || fee === void 0 ? void 0 : fee.dueDate), type: "date" }), _jsx(EnhancedInput, { readOnly: true, id: "status-readonly", label: t("formStatusLabel"), value: statusDisplay }), _jsx(EnhancedTextarea, { id: "remarks-readonly", label: t("formRemarksLabel"), value: remarks || "", onChange: (e) => setRemarks(e.target.value) })] })) : null] }));
|
|
104
104
|
};
|