login in dealer validated against the prniple dealer id
This commit is contained in:
parent
b76aa9b322
commit
d6e86ff7fd
@ -1 +1 @@
|
|||||||
import{a as s}from"./index-D9FSmDLr.js";import"./radix-vendor-CLtqm-Ae.js";import"./charts-vendor-CmYZJIYl.js";import"./utils-vendor-BTBPSQfW.js";import"./ui-vendor-DgwXkk2Y.js";import"./socket-vendor-TjCxX7sJ.js";import"./redux-vendor-tbZCm13o.js";import"./router-vendor-HW_ujxKo.js";async function m(n){return(await s.post(`/conclusions/${n}/generate`)).data.data}async function f(n,t){return(await s.post(`/conclusions/${n}/finalize`,{finalRemark:t})).data.data}async function d(n){var t;try{return(await s.get(`/conclusions/${n}`)).data.data}catch(o){if(((t=o.response)==null?void 0:t.status)===404)return null;throw o}}export{f as finalizeConclusion,m as generateConclusion,d as getConclusion};
|
import{a as s}from"./index-B4PRp9Lp.js";import"./radix-vendor-CLtqm-Ae.js";import"./charts-vendor-CmYZJIYl.js";import"./utils-vendor-BTBPSQfW.js";import"./ui-vendor-DgwXkk2Y.js";import"./socket-vendor-TjCxX7sJ.js";import"./redux-vendor-tbZCm13o.js";import"./router-vendor-HW_ujxKo.js";async function m(n){return(await s.post(`/conclusions/${n}/generate`)).data.data}async function f(n,t){return(await s.post(`/conclusions/${n}/finalize`,{finalRemark:t})).data.data}async function d(n){var t;try{return(await s.get(`/conclusions/${n}`)).data.data}catch(o){if(((t=o.response)==null?void 0:t.status)===404)return null;throw o}}export{f as finalizeConclusion,m as generateConclusion,d as getConclusion};
|
||||||
File diff suppressed because one or more lines are too long
1
build/assets/index-BNFD-0wA.css
Normal file
1
build/assets/index-BNFD-0wA.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -13,7 +13,7 @@
|
|||||||
<!-- Preload essential fonts and icons -->
|
<!-- Preload essential fonts and icons -->
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
<script type="module" crossorigin src="/assets/index-D9FSmDLr.js"></script>
|
<script type="module" crossorigin src="/assets/index-B4PRp9Lp.js"></script>
|
||||||
<link rel="modulepreload" crossorigin href="/assets/charts-vendor-CmYZJIYl.js">
|
<link rel="modulepreload" crossorigin href="/assets/charts-vendor-CmYZJIYl.js">
|
||||||
<link rel="modulepreload" crossorigin href="/assets/radix-vendor-CLtqm-Ae.js">
|
<link rel="modulepreload" crossorigin href="/assets/radix-vendor-CLtqm-Ae.js">
|
||||||
<link rel="modulepreload" crossorigin href="/assets/utils-vendor-BTBPSQfW.js">
|
<link rel="modulepreload" crossorigin href="/assets/utils-vendor-BTBPSQfW.js">
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<link rel="modulepreload" crossorigin href="/assets/socket-vendor-TjCxX7sJ.js">
|
<link rel="modulepreload" crossorigin href="/assets/socket-vendor-TjCxX7sJ.js">
|
||||||
<link rel="modulepreload" crossorigin href="/assets/redux-vendor-tbZCm13o.js">
|
<link rel="modulepreload" crossorigin href="/assets/redux-vendor-tbZCm13o.js">
|
||||||
<link rel="modulepreload" crossorigin href="/assets/router-vendor-HW_ujxKo.js">
|
<link rel="modulepreload" crossorigin href="/assets/router-vendor-HW_ujxKo.js">
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-qC8Q4GZ7.css">
|
<link rel="stylesheet" crossorigin href="/assets/index-BNFD-0wA.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@ -33,6 +33,7 @@ export interface DealerInfo {
|
|||||||
gstin?: string | null;
|
gstin?: string | null;
|
||||||
pincode?: string | null;
|
pincode?: string | null;
|
||||||
itemGroup?: string | null;
|
itemGroup?: string | null;
|
||||||
|
parentCode?: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -112,6 +113,7 @@ export async function getAllDealers(searchTerm?: string, limit: number = 10): Pr
|
|||||||
gstin: dealer.gst || null,
|
gstin: dealer.gst || null,
|
||||||
pincode: dealer.showroomPincode || null,
|
pincode: dealer.showroomPincode || null,
|
||||||
itemGroup: null, // Local dealer table doesn't have item group yet
|
itemGroup: null, // Local dealer table doesn't have item group yet
|
||||||
|
parentCode: null,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -138,9 +140,13 @@ export async function getDealerByCode(dealerCode: string): Promise<DealerInfo |
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2. Try to find in User table directly (Validation logic)
|
// 2. Try to find in User table directly (Validation logic)
|
||||||
|
// One dealer can have multiple codes but they share one parentCode.
|
||||||
|
// If externalData has a parentcode, we check if there's a user record for that parentcode.
|
||||||
|
const userLookupCode = externalData?.parentcode || dealerCode;
|
||||||
|
|
||||||
const user = await User.findOne({
|
const user = await User.findOne({
|
||||||
where: {
|
where: {
|
||||||
employeeNumber: dealerCode,
|
employeeNumber: userLookupCode,
|
||||||
jobTitle: 'Dealer',
|
jobTitle: 'Dealer',
|
||||||
isActive: true
|
isActive: true
|
||||||
},
|
},
|
||||||
@ -149,11 +155,12 @@ export async function getDealerByCode(dealerCode: string): Promise<DealerInfo |
|
|||||||
|
|
||||||
if (user) {
|
if (user) {
|
||||||
logger.info(`[DealerService] Dealer found in User table: ${dealerCode}`);
|
logger.info(`[DealerService] Dealer found in User table: ${dealerCode}`);
|
||||||
|
logger.info(`[DealerService] Dealer mapping found via code ${userLookupCode}: ${dealerCode}`);
|
||||||
return {
|
return {
|
||||||
dealerId: user.userId,
|
dealerId: user.userId,
|
||||||
userId: user.userId,
|
userId: user.userId,
|
||||||
email: user.email,
|
email: user.email,
|
||||||
dealerCode: user.employeeNumber || dealerCode,
|
dealerCode: dealerCode, // Return the originally requested code
|
||||||
dealerName: externalData?.['dealer name'] || user.displayName || '',
|
dealerName: externalData?.['dealer name'] || user.displayName || '',
|
||||||
displayName: user.displayName || '',
|
displayName: user.displayName || '',
|
||||||
phone: externalData?.['dealer phone'] || (user as any).mobilePhone || user.phone || undefined,
|
phone: externalData?.['dealer phone'] || (user as any).mobilePhone || user.phone || undefined,
|
||||||
@ -165,6 +172,7 @@ export async function getDealerByCode(dealerCode: string): Promise<DealerInfo |
|
|||||||
state: externalData?.['re state code'] || null,
|
state: externalData?.['re state code'] || null,
|
||||||
pincode: externalData?.pincode || null,
|
pincode: externalData?.pincode || null,
|
||||||
itemGroup: externalData?.['item group'] || null,
|
itemGroup: externalData?.['item group'] || null,
|
||||||
|
parentCode: externalData?.parentcode || null,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,6 +201,7 @@ export async function getDealerByCode(dealerCode: string): Promise<DealerInfo |
|
|||||||
state: externalData['re state code'],
|
state: externalData['re state code'],
|
||||||
pincode: externalData.pincode,
|
pincode: externalData.pincode,
|
||||||
itemGroup: externalData['item group'] || null,
|
itemGroup: externalData['item group'] || null,
|
||||||
|
parentCode: externalData.parentcode || null,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
logger.warn(`[DealerService] Dealer not found in any source: ${dealerCode}`);
|
logger.warn(`[DealerService] Dealer not found in any source: ${dealerCode}`);
|
||||||
@ -222,6 +231,7 @@ export async function getDealerByCode(dealerCode: string): Promise<DealerInfo |
|
|||||||
gstin: externalData?.gstin || dealer.gst || null,
|
gstin: externalData?.gstin || dealer.gst || null,
|
||||||
pincode: externalData?.pincode || dealer.showroomPincode || null,
|
pincode: externalData?.pincode || dealer.showroomPincode || null,
|
||||||
itemGroup: externalData?.['item group'] || null,
|
itemGroup: externalData?.['item group'] || null,
|
||||||
|
parentCode: externalData?.parentcode || null,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('[DealerService] Error fetching dealer by code:', error);
|
logger.error('[DealerService] Error fetching dealer by code:', error);
|
||||||
@ -284,6 +294,7 @@ export async function getDealerByEmail(email: string): Promise<DealerInfo | null
|
|||||||
gstin: dealer.gst || null,
|
gstin: dealer.gst || null,
|
||||||
pincode: dealer.showroomPincode || null,
|
pincode: dealer.showroomPincode || null,
|
||||||
itemGroup: null,
|
itemGroup: null,
|
||||||
|
parentCode: null,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('[DealerService] Error fetching dealer by email:', error);
|
logger.error('[DealerService] Error fetching dealer by email:', error);
|
||||||
|
|||||||
@ -126,8 +126,13 @@ export class DealerClaimService {
|
|||||||
// 2. Map and validate dealer user
|
// 2. Map and validate dealer user
|
||||||
const dealerCode = claimData.dealerCode;
|
const dealerCode = claimData.dealerCode;
|
||||||
|
|
||||||
logger.info(`[DealerClaimService] Validating dealer for code: ${claimData.dealerCode}`);
|
logger.info(`[DealerClaimService] Resolving dealer mapping for code: ${dealerCode}`);
|
||||||
const dealerUser = await validateDealerUser(claimData.dealerCode);
|
// Fetch dealer info (this handles external lookup and resolves parentCode)
|
||||||
|
const dealerInfo = await findDealerLocally(dealerCode);
|
||||||
|
const userLookupCode = dealerInfo?.parentCode || dealerCode;
|
||||||
|
|
||||||
|
logger.info(`[DealerClaimService] Validating dealer user for lookup code: ${userLookupCode}`);
|
||||||
|
const dealerUser = await validateDealerUser(userLookupCode);
|
||||||
|
|
||||||
// Validate Dealer Item Group against Activity Credit Posting
|
// Validate Dealer Item Group against Activity Credit Posting
|
||||||
const activityType = await ActivityType.findOne({ where: { title: claimData.activityType } });
|
const activityType = await ActivityType.findOne({ where: { title: claimData.activityType } });
|
||||||
|
|||||||
@ -16,6 +16,7 @@ export interface ExternalDealerResponse {
|
|||||||
pincode: string | null;
|
pincode: string | null;
|
||||||
'dealer email': string | null;
|
'dealer email': string | null;
|
||||||
'dealer phone': string | null;
|
'dealer phone': string | null;
|
||||||
|
parentcode?: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class DealerExternalService {
|
export class DealerExternalService {
|
||||||
@ -76,7 +77,8 @@ export class DealerExternalService {
|
|||||||
'store address': data['store address'] || null,
|
'store address': data['store address'] || null,
|
||||||
pincode: data.pincode || null,
|
pincode: data.pincode || null,
|
||||||
'dealer email': data['dealer email'] || null,
|
'dealer email': data['dealer email'] || null,
|
||||||
'dealer phone': data['dealer phone'] || null
|
'dealer phone': data['dealer phone'] || null,
|
||||||
|
parentcode: data.parentcode || null
|
||||||
};
|
};
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user