|
|
|
@@ -94,8 +94,8 @@ export default function HealthPackagePage() {
|
|
|
|
|
slug: "",
|
|
|
|
|
description: "",
|
|
|
|
|
image: "",
|
|
|
|
|
price: 0,
|
|
|
|
|
discountedPrice: 0,
|
|
|
|
|
price: undefined,
|
|
|
|
|
discountedPrice: undefined,
|
|
|
|
|
categoryId: 0,
|
|
|
|
|
isActive: true,
|
|
|
|
|
sortOrder: 1000,
|
|
|
|
@@ -204,8 +204,8 @@ export default function HealthPackagePage() {
|
|
|
|
|
slug: "",
|
|
|
|
|
description: "",
|
|
|
|
|
image: "",
|
|
|
|
|
price: 0,
|
|
|
|
|
discountedPrice: 0,
|
|
|
|
|
price: undefined,
|
|
|
|
|
discountedPrice: undefined,
|
|
|
|
|
categoryId: categories[0]?.id || 0,
|
|
|
|
|
isActive: true,
|
|
|
|
|
sortOrder: 1000,
|
|
|
|
@@ -270,10 +270,6 @@ export default function HealthPackagePage() {
|
|
|
|
|
if (!pkgForm.slug?.trim()) return toast.error("URL Slug is required.");
|
|
|
|
|
if (!pkgForm.categoryId)
|
|
|
|
|
return toast.error("Please select a valid category.");
|
|
|
|
|
if (pkgForm.price === undefined || pkgForm.price <= 0)
|
|
|
|
|
return toast.error(
|
|
|
|
|
"Regular Price must be a valid amount greater than 0.",
|
|
|
|
|
);
|
|
|
|
|
if (!pkgForm.description?.trim())
|
|
|
|
|
return toast.error("Description is required.");
|
|
|
|
|
|
|
|
|
@@ -299,8 +295,21 @@ export default function HealthPackagePage() {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const finalData = { ...pkgForm, inclusions: parsedInclusions };
|
|
|
|
|
const finalData: Partial<HealthPackage> = {
|
|
|
|
|
...pkgForm,
|
|
|
|
|
inclusions: parsedInclusions,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
finalData.price =
|
|
|
|
|
finalData.price !== undefined && finalData.price !== null
|
|
|
|
|
? Number(finalData.price)
|
|
|
|
|
: null;
|
|
|
|
|
|
|
|
|
|
finalData.discountedPrice =
|
|
|
|
|
finalData.discountedPrice !== undefined &&
|
|
|
|
|
finalData.discountedPrice !== null
|
|
|
|
|
? Number(finalData.discountedPrice)
|
|
|
|
|
: null;
|
|
|
|
|
if (editingPackage?.id) {
|
|
|
|
|
const changedFields: Record<string, any> = {};
|
|
|
|
|
Object.keys(finalData).forEach((key) => {
|
|
|
|
@@ -321,10 +330,8 @@ export default function HealthPackagePage() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await updateHealthPackageApi(editingPackage.id, changedFields);
|
|
|
|
|
toast.success("Package updated successfully!");
|
|
|
|
|
} else {
|
|
|
|
|
await createHealthPackageApi(finalData);
|
|
|
|
|
toast.success("Package created successfully!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setPackageModal(false);
|
|
|
|
@@ -363,10 +370,8 @@ export default function HealthPackagePage() {
|
|
|
|
|
editingCategory.id,
|
|
|
|
|
changedFields as Partial<HealthCategory>,
|
|
|
|
|
);
|
|
|
|
|
toast.success("Category updated successfully!");
|
|
|
|
|
} else {
|
|
|
|
|
await createCategoryApi(catForm as any);
|
|
|
|
|
toast.success("Category created successfully!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setCategoryModal(false);
|
|
|
|
@@ -517,9 +522,15 @@ export default function HealthPackagePage() {
|
|
|
|
|
</TableCell>
|
|
|
|
|
<TableCell>
|
|
|
|
|
<div className="font-semibold">
|
|
|
|
|
₹{pkg.discountedPrice || pkg.price}
|
|
|
|
|
{pkg.discountedPrice != null
|
|
|
|
|
? `₹${pkg.discountedPrice}`
|
|
|
|
|
: pkg.price != null
|
|
|
|
|
? `₹${pkg.price}`
|
|
|
|
|
: "Not Entered"}
|
|
|
|
|
</div>
|
|
|
|
|
{pkg.discountedPrice &&
|
|
|
|
|
|
|
|
|
|
{pkg.discountedPrice != null &&
|
|
|
|
|
pkg.price != null &&
|
|
|
|
|
pkg.discountedPrice < pkg.price && (
|
|
|
|
|
<div className="text-xs text-muted-foreground line-through">
|
|
|
|
|
₹{pkg.price}
|
|
|
|
@@ -833,12 +844,19 @@ export default function HealthPackagePage() {
|
|
|
|
|
<Input
|
|
|
|
|
type="number"
|
|
|
|
|
value={pkgForm.price || ""}
|
|
|
|
|
onChange={(e) =>
|
|
|
|
|
onChange={(e) => {
|
|
|
|
|
const value = e.target.value
|
|
|
|
|
? Number(e.target.value)
|
|
|
|
|
: undefined;
|
|
|
|
|
|
|
|
|
|
setPkgForm({
|
|
|
|
|
...pkgForm,
|
|
|
|
|
price: Number(e.target.value),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
price: value,
|
|
|
|
|
discountedPrice: value
|
|
|
|
|
? pkgForm.discountedPrice
|
|
|
|
|
: undefined,
|
|
|
|
|
});
|
|
|
|
|
}}
|
|
|
|
|
className="text-base"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
@@ -848,11 +866,14 @@ export default function HealthPackagePage() {
|
|
|
|
|
</Label>
|
|
|
|
|
<Input
|
|
|
|
|
type="number"
|
|
|
|
|
disabled={!pkgForm.price}
|
|
|
|
|
value={pkgForm.discountedPrice || ""}
|
|
|
|
|
onChange={(e) =>
|
|
|
|
|
setPkgForm({
|
|
|
|
|
...pkgForm,
|
|
|
|
|
discountedPrice: Number(e.target.value),
|
|
|
|
|
discountedPrice: e.target.value
|
|
|
|
|
? Number(e.target.value)
|
|
|
|
|
: undefined,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
className="text-base"
|
|
|
|
@@ -1055,7 +1076,11 @@ export default function HealthPackagePage() {
|
|
|
|
|
Pricing
|
|
|
|
|
</p>
|
|
|
|
|
<p className="text-xl font-bold">
|
|
|
|
|
₹{selectedPackage?.discountedPrice || selectedPackage?.price}
|
|
|
|
|
{selectedPackage?.discountedPrice != null
|
|
|
|
|
? `₹${selectedPackage.discountedPrice}`
|
|
|
|
|
: selectedPackage?.price != null
|
|
|
|
|
? `₹${selectedPackage.price}`
|
|
|
|
|
: "Not Entered"}
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|