diff --git a/src/useSubscriptionManager.js b/src/useSubscriptionManager.js index e841172..b2f26c3 100644 --- a/src/useSubscriptionManager.js +++ b/src/useSubscriptionManager.js @@ -6,10 +6,9 @@ import { getAppSubscriptionDate, } from './Features/BookingScreen/BookingData/BookingData.js'; import { sendSms } from './Features/Payment/PaymentDetails/PaymentDetails.js'; -import { getPurchasedAppDetails, postInvoice } from './Features/BookingScreen/Pricing/Pricing.js'; import { getSession } from './Services/Others.js'; import { useNavigate } from 'react-router-dom'; - +const subDirectory = import.meta.env.ENV_BASE_URL; const useSubscriptionManager = (sessionData, logout) => { const dispatch = useDispatch(); const navigate = useNavigate(); @@ -21,11 +20,7 @@ const useSubscriptionManager = (sessionData, logout) => { setExtendModel(false) } - const handlePay = () => { - setExtendModel(false) - let AppName = getSession("AppName") - navigate(`${subDirectory}PricingPage`, { state: { AppName: AppName } }); - } + function formatDate(date) { const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); @@ -38,79 +33,8 @@ const useSubscriptionManager = (sessionData, logout) => { return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`; } - function addDays(dateString, days) { - // Make it ISO-safe for iOS / WebView - const isoDate = dateString.replace(' ', 'T'); - const currentDate = new Date(isoDate); - - currentDate.setDate(currentDate.getDate() + Number(days)); - - return formatDate(currentDate); - } - - // ---------------- MAIN FUNCTION ---------------- - const freeExtend = async () => { - try { - - const UserId = getSession('UserId'); - const AppId = getSession('AppId') - // Current date - const now = new Date(); - const currentDate = formatDate(now); - - // 1️⃣ Get purchased app details - const response1 = await dispatch( - getPurchasedAppDetails({ AppId, UserId }) - ).unwrap(); - - const PurchasedDetails = response1?.data?.data; - - if (!PurchasedDetails || !PurchasedDetails.length) { - console.error('No purchased details found'); - return; - } - - // 2️⃣ Prepare post data - const postData = { - UserId: UserId, - AppId: AppId, - PricingId: PurchasedDetails[0]?.PricingId, - PurDate: currentDate, - NoofDays: 30, - PaymentMode: 27, - PaymentStatus: 'S', - LicenseStatus: PurchasedDetails[0]?.LicenseStatus, - Price: PurchasedDetails[0]?.Price ?? 0, - TaxId: PurchasedDetails[0]?.TaxId ?? 0, - NetPrice: PurchasedDetails[0]?.ExistingPlanNetPrice ?? 0, - ValidityStart: currentDate, - ValidityEnd: addDays( - currentDate, - PurchasedDetails[0]?.NoOfDays - ), - CreatedBy: UserId, - TaxAmount: PurchasedDetails[0]?.TaxAmount ?? 0, - MobileNo: getSession('MobileNo'), - MailId: 'ts@gmmail.com', - Type: "FreeExtend" - }; - - // 3️⃣ Post invoice - const response = await dispatch(postInvoice(postData)).unwrap(); - - // 4️⃣ Send SMS if required - if (response?.data?.statusCode === 1 && response?.data?.SMSbody) { - await dispatch( - sendSms({ body: response.data.SMSbody }) - ); - setExtendModel(false) - - } - - } catch (error) { - console.error('freeExtend error:', error); - } - }; + + useEffect(() => { if (!sessionData) return; @@ -163,7 +87,7 @@ const useSubscriptionManager = (sessionData, logout) => { return () => clearInterval(interval); }, [sessionData]); - return { remainingDays, handleCancel, handlePay, freeExtend, extendModel }; + return { remainingDays, handleCancel,extendModel,setExtendModel }; }; export default useSubscriptionManager;