tango-app-api-trax 3.9.33 → 3.9.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/index.js +2 -1
  2. package/package.json +1 -1
  3. package/src/controllers/internalTrax.controller.js +134 -90
  4. package/src/controllers/mobileTrax.controller.js +69 -29
  5. package/src/controllers/trax.controller.js +7 -1
  6. package/src/controllers/traxDashboard.controllers.js +63 -54
  7. package/src/hbs/flag.hbs +1 -1
  8. package/src/hbs/login-otp.hbs +943 -943
  9. package/src/hbs/template.hbs +7 -0
  10. package/src/hbs/visit-checklist.hbs +49 -87
  11. package/src/logging/activityLogFlusher.js +59 -0
  12. package/src/logging/activityLogMiddleware.js +45 -0
  13. package/src/logging/activityLogStore.js +91 -0
  14. package/src/logging/compressBatches.js +83 -0
  15. package/src/logging/config.js +24 -0
  16. package/src/logging/createLoggableService.js +46 -0
  17. package/src/logging/logExternalCall.js +37 -0
  18. package/src/services/app.service.js +15 -9
  19. package/src/services/approver.service.js +23 -15
  20. package/src/services/authentication.service.js +9 -3
  21. package/src/services/camera.service.js +19 -13
  22. package/src/services/checklist.service.js +35 -27
  23. package/src/services/checklistAssign.service.js +43 -38
  24. package/src/services/checklistQuestion.service.js +39 -34
  25. package/src/services/checklistlog.service.js +39 -34
  26. package/src/services/clientRequest.service.js +9 -2
  27. package/src/services/clients.services.js +23 -18
  28. package/src/services/cluster.service.js +31 -23
  29. package/src/services/domain.service.js +23 -18
  30. package/src/services/download.services.js +35 -25
  31. package/src/services/group.service.js +23 -17
  32. package/src/services/lenskartEmployeeMapping.service.js +15 -10
  33. package/src/services/locus.service.js +35 -28
  34. package/src/services/notification.service.js +35 -26
  35. package/src/services/otp.service.js +20 -13
  36. package/src/services/planogram.service.js +9 -2
  37. package/src/services/processedTaskConfig.service.js +35 -27
  38. package/src/services/processedTaskList.service.js +32 -26
  39. package/src/services/processedchecklist.services.js +55 -47
  40. package/src/services/processedchecklistconfig.services.js +39 -34
  41. package/src/services/recurringFlagTracker.service.js +39 -32
  42. package/src/services/runAIFeatures.services.js +32 -27
  43. package/src/services/runAIRequest.services.js +43 -38
  44. package/src/services/store.service.js +32 -27
  45. package/src/services/tagging.service.js +9 -2
  46. package/src/services/taskConfig.service.js +35 -27
  47. package/src/services/teams.service.js +35 -24
  48. package/src/services/ticket.service.js +15 -10
  49. package/src/services/user.service.js +27 -20
  50. package/src/services/userAssignedstores.service.js +12 -5
  51. package/src/utils/visitChecklistPdf.utils.js +192 -16
@@ -276,29 +276,10 @@ export const checklistPerformance = async ( req, res ) => {
276
276
  toDate = new Date( toDate.getTime() - userTimezoneOffset );
277
277
  toDate.setUTCHours( 23, 59, 59, 59 );
278
278
  let result = {};
279
- let checklistIdList = [];
280
279
 
281
280
  let limit = parseInt( requestData?.limit ) || 10;
282
281
  let skip = limit * ( requestData?.offset ) || 0;
283
282
 
284
- const detectionPayload = {
285
- 'fromDate': requestData.fromDate,
286
- 'toDate': requestData.toDate,
287
- 'clientId': requestData.clientId,
288
- 'sortColumnName': requestData.sortColumnName,
289
- 'sortBy': requestData.sortBy,
290
- 'storeId': requestData.storeId,
291
- };
292
-
293
-
294
- let complianceURL = JSON.parse( process.env.LAMBDAURL ).complianceURL;
295
- const complianceData = await LamdaServiceCall( complianceURL, detectionPayload );
296
- if ( complianceData?.data?.length && requestData?.sortColumnName == 'questionCompliance' ) {
297
- const end = skip + requestData?.limit;
298
- checklistIdList = complianceData.data.slice( skip, end )?.map( ( ele ) => ele?.sourceCheckList_id );
299
- }
300
-
301
-
302
283
  // Get User Based Checklist //
303
284
  // let loginUser = { clientId: requestData.clientId, role: req.user.role, userType: req.user.userType, userEmail: req.user.email };
304
285
  // let getUserEmails = await getChecklistUsers( loginUser );
@@ -314,10 +295,6 @@ export const checklistPerformance = async ( req, res ) => {
314
295
  { $or: [ { store_id: { $in: requestData.storeId } }, { store_id: { $eq: '' }, userEmail: { $in: requestData.userEmailes } } ] },
315
296
  );
316
297
 
317
- if ( requestData?.sortColumnName == 'questionCompliance' ) {
318
- findAndQuery.push( { sourceCheckList_id: { $in: checklistIdList } } );
319
- }
320
-
321
298
  findQuery.push( { $match: { $and: findAndQuery } } );
322
299
 
323
300
  if ( requestData.searchValue && requestData.searchValue != '' ) {
@@ -367,6 +344,16 @@ export const checklistPerformance = async ( req, res ) => {
367
344
  timeFlag: { $sum: '$timeFlag' },
368
345
  questionFlagCount: { $sum: '$questionFlag' },
369
346
  runAIFlagCount: { $sum: '$runAIFlag' },
347
+ userComplianceCountTotal: {
348
+ $sum: {
349
+ $cond: [
350
+ { $eq: [ '$checklistStatus', 'submit' ] },
351
+ { $ifNull: [ '$userComplianceCount', 0 ] },
352
+ 0,
353
+ ],
354
+ },
355
+ },
356
+ complianceCount: { $first: '$complianceCount' },
370
357
  checkListType: { $last: '$checkListType' },
371
358
  redo: { $sum: { $cond: [ { $eq: [ '$redoStatus', true ] }, 1, 0 ] } },
372
359
  task: {
@@ -426,6 +413,36 @@ export const checklistPerformance = async ( req, res ) => {
426
413
  checkListType: 1,
427
414
  redo: 1,
428
415
  task: 1,
416
+ questionCompliance: {
417
+ $let: {
418
+ vars: {
419
+ divisor: {
420
+ $cond: [
421
+ { $gt: [ '$submittedChecklist', 1 ] },
422
+ { $multiply: [ { $ifNull: [ '$complianceCount', 0 ] }, '$submittedChecklist' ] },
423
+ { $ifNull: [ '$complianceCount', 0 ] },
424
+ ],
425
+ },
426
+ },
427
+ in: {
428
+ $cond: [
429
+ { $gt: [ '$$divisor', 0 ] },
430
+ {
431
+ $round: [
432
+ {
433
+ $multiply: [
434
+ { $divide: [ '$userComplianceCountTotal', '$$divisor' ] },
435
+ 100,
436
+ ],
437
+ },
438
+ 0,
439
+ ],
440
+ },
441
+ 0,
442
+ ],
443
+ },
444
+ },
445
+ },
429
446
  },
430
447
  } );
431
448
 
@@ -450,14 +467,6 @@ export const checklistPerformance = async ( req, res ) => {
450
467
  return res.sendError( 'no data found', 204 );
451
468
  }
452
469
 
453
- getChecklistPerformanceData?.[0]?.data.forEach( ( ele ) => {
454
- let findCompliance;
455
- if ( complianceData?.data?.length ) {
456
- findCompliance = complianceData?.data?.find( ( data ) => data.sourceCheckList_id == ele?.sourceCheckList_id );
457
- }
458
- ele['questionComplianceRate'] = findCompliance?.compliancePercentage ?? 0;
459
- } );
460
-
461
470
  if ( requestData.export ) {
462
471
  const exportdata = [];
463
472
  getChecklistPerformanceData[0].data.forEach( ( element ) => {
@@ -4335,26 +4344,26 @@ function escapeRegex( text ) {
4335
4344
  // }
4336
4345
  // }
4337
4346
 
4338
- async function LamdaServiceCall( url, data ) {
4339
- try {
4340
- const requestOptions = {
4341
- method: 'POST',
4342
- headers: {
4343
- 'Content-Type': 'application/json',
4344
- },
4345
- body: JSON.stringify( data ),
4346
- };
4347
- console.log( data );
4348
- const response = await fetch( url, requestOptions );
4349
- if ( !response.ok ) {
4350
- throw new Error( `Response status: ${response.status}` );
4351
- return false;
4352
- }
4353
- const json = await response.json();
4354
- return json;
4355
- } catch ( error ) {
4356
- console.log( error );
4357
- logger.error( { error: error, message: data, function: 'LamdaServiceCall' } );
4358
- return false;
4359
- }
4360
- }
4347
+ // async function LamdaServiceCall( url, data ) {
4348
+ // try {
4349
+ // const requestOptions = {
4350
+ // method: 'POST',
4351
+ // headers: {
4352
+ // 'Content-Type': 'application/json',
4353
+ // },
4354
+ // body: JSON.stringify( data ),
4355
+ // };
4356
+ // console.log( data );
4357
+ // const response = await fetch( url, requestOptions );
4358
+ // if ( !response.ok ) {
4359
+ // throw new Error( `Response status: ${response.status}` );
4360
+ // return false;
4361
+ // }
4362
+ // const json = await response.json();
4363
+ // return json;
4364
+ // } catch ( error ) {
4365
+ // console.log( error );
4366
+ // logger.error( { error: error, message: data, function: 'LamdaServiceCall' } );
4367
+ // return false;
4368
+ // }
4369
+ // }
package/src/hbs/flag.hbs CHANGED
@@ -176,7 +176,7 @@
176
176
  <td class="flagText" style="padding-left:30px; line-height: 24px;">No of Flags :</td>
177
177
  <td></td>
178
178
  <td></td>
179
- <td class="flagText">{{data.flagCount}}</td>
179
+ <td class="flagText">{{data.flagCount}}{{#eq data.status 'submit'}}(RunAIFlag:{{data.runAIFlag}},QuestionFlag:{{data.questionFlag}}){{/eq}}</td>
180
180
  </tr>
181
181
  <tr bgcolor="#ffffff" style="border:none;margin-top:3px;">
182
182
  <td class="flagText" style="padding-left:30px; line-height: 24px;">Submitted By :</td>