Merge pull request 'miissed file' (#143) from ExtendIntegration into main

Reviewed-on: Pozomind/pozo-retail-app#143
This commit is contained in:
karthikalakshmi 2026-02-13 13:59:44 +05:30
commit e884f6f6de
1 changed files with 5 additions and 81 deletions

View File

@ -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;