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 -->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<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/radix-vendor-CLtqm-Ae.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/redux-vendor-tbZCm13o.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>
|
||||
|
||||
<body>
|
||||
|
||||
@ -33,6 +33,7 @@ export interface DealerInfo {
|
||||
gstin?: string | null;
|
||||
pincode?: 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,
|
||||
pincode: dealer.showroomPincode || null,
|
||||
itemGroup: null, // Local dealer table doesn't have item group yet
|
||||
parentCode: null,
|
||||
};
|
||||
});
|
||||
} catch (error) {
|
||||
@ -138,9 +140,13 @@ export async function getDealerByCode(dealerCode: string): Promise<DealerInfo |
|
||||
}
|
||||
|
||||
// 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({
|
||||
where: {
|
||||
employeeNumber: dealerCode,
|
||||
employeeNumber: userLookupCode,
|
||||
jobTitle: 'Dealer',
|
||||
isActive: true
|
||||
},
|
||||
@ -149,11 +155,12 @@ export async function getDealerByCode(dealerCode: string): Promise<DealerInfo |
|
||||
|
||||
if (user) {
|
||||
logger.info(`[DealerService] Dealer found in User table: ${dealerCode}`);
|
||||
logger.info(`[DealerService] Dealer mapping found via code ${userLookupCode}: ${dealerCode}`);
|
||||
return {
|
||||
dealerId: user.userId,
|
||||
userId: user.userId,
|
||||
email: user.email,
|
||||
dealerCode: user.employeeNumber || dealerCode,
|
||||
dealerCode: dealerCode, // Return the originally requested code
|
||||
dealerName: externalData?.['dealer name'] || user.displayName || '',
|
||||
displayName: user.displayName || '',
|
||||
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,
|
||||
pincode: externalData?.pincode || 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'],
|
||||
pincode: externalData.pincode,
|
||||
itemGroup: externalData['item group'] || null,
|
||||
parentCode: externalData.parentcode || null,
|
||||
};
|
||||
}
|
||||
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,
|
||||
pincode: externalData?.pincode || dealer.showroomPincode || null,
|
||||
itemGroup: externalData?.['item group'] || null,
|
||||
parentCode: externalData?.parentcode || null,
|
||||
};
|
||||
} catch (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,
|
||||
pincode: dealer.showroomPincode || null,
|
||||
itemGroup: null,
|
||||
parentCode: null,
|
||||
};
|
||||
} catch (error) {
|
||||
logger.error('[DealerService] Error fetching dealer by email:', error);
|
||||
|
||||
@ -126,8 +126,13 @@ export class DealerClaimService {
|
||||
// 2. Map and validate dealer user
|
||||
const dealerCode = claimData.dealerCode;
|
||||
|
||||
logger.info(`[DealerClaimService] Validating dealer for code: ${claimData.dealerCode}`);
|
||||
const dealerUser = await validateDealerUser(claimData.dealerCode);
|
||||
logger.info(`[DealerClaimService] Resolving dealer mapping for code: ${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
|
||||
const activityType = await ActivityType.findOne({ where: { title: claimData.activityType } });
|
||||
|
||||
@ -16,6 +16,7 @@ export interface ExternalDealerResponse {
|
||||
pincode: string | null;
|
||||
'dealer email': string | null;
|
||||
'dealer phone': string | null;
|
||||
parentcode?: string | null;
|
||||
}
|
||||
|
||||
export class DealerExternalService {
|
||||
@ -76,7 +77,8 @@ export class DealerExternalService {
|
||||
'store address': data['store address'] || null,
|
||||
pincode: data.pincode || 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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user