@iapps/ng-dhis2-ui 1.1.13 → 1.1.15

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.
@@ -3097,9 +3097,36 @@ const matchesCondition = (eventValue, operator, filterValue) => {
3097
3097
  return false;
3098
3098
  }
3099
3099
  };
3100
- const getFilteredTrackedEntityInstances = (trackedEntityInstance, filters) => {
3101
- return trackedEntityInstance.filter((trackedEntityInstance) => trackedEntityInstance.enrollments.some((enrollment) => enrollment.events.some((event) => filters.every((filter) => event.programStage === filter.programStage &&
3102
- event.dataValues.some((dataValue) => dataValue.dataElement === filter.dataElement &&
3100
+ // export const getFilteredTrackedEntityInstances = (
3101
+ // trackedEntityInstance: TrackedEntityInstance[],
3102
+ // filters: FilterConfig[]
3103
+ // ): TrackedEntityInstance[] => {
3104
+ // return trackedEntityInstance.filter(
3105
+ // (trackedEntityInstance: TrackedEntityInstance) =>
3106
+ // trackedEntityInstance.enrollments.some((enrollment) =>
3107
+ // enrollment.events.some((event) =>
3108
+ // filters.every(
3109
+ // (filter) =>
3110
+ // event.programStage === filter.programStage &&
3111
+ // event.dataValues.some(
3112
+ // (dataValue) =>
3113
+ // dataValue.dataElement === filter.dataElement &&
3114
+ // matchesCondition(
3115
+ // dataValue.value,
3116
+ // filter.operator,
3117
+ // filter.value
3118
+ // )
3119
+ // )
3120
+ // )
3121
+ // )
3122
+ // )
3123
+ // );
3124
+ // };
3125
+ const getFilteredTrackedEntityInstances = (trackedEntityInstances, filters) => {
3126
+ if (!filters.length)
3127
+ return trackedEntityInstances;
3128
+ return trackedEntityInstances.filter((tei) => filters.every((filter) => tei.enrollments?.some((enrollment) => enrollment.events?.some((event) => event.programStage === filter.programStage &&
3129
+ event.dataValues?.some((dataValue) => dataValue.dataElement === filter.dataElement &&
3103
3130
  matchesCondition(dataValue.value, filter.operator, filter.value))))));
3104
3131
  };
3105
3132
 
@@ -3387,24 +3414,28 @@ class LineListTableComponent extends ReactWrapperModule {
3387
3414
  },
3388
3415
  }));
3389
3416
  };
3390
- // // Add this handler for the Approval button
3391
- // const handleApprovalClick = () => {
3392
- // console.log('Approval button clicked');
3393
- // // Optionally emit an event to Angular parent component
3394
- // // this.actionSelected.emit({ action: 'Approval', row: null });
3395
- // };
3396
- // Updated handler using the new approvalSelected emitter
3397
3417
  const handleApprovalClick = () => {
3398
3418
  this.lineListService
3399
3419
  .getLineListData(this.programId, this.orgUnit, this.programStageId, pager.page, pager.pageSize, this.attributeFilters, this.startDate, this.endDate, this.ouMode)
3400
3420
  .subscribe((response) => {
3401
3421
  if ('trackedEntityInstances' in response.data) {
3402
- const trackedEntityInstances = response.data
3403
- .trackedEntityInstances;
3404
- const teiIds = trackedEntityInstances.map((tei) => tei.trackedEntityInstance);
3405
- // Emit TEI IDs using the new emitter
3406
- console.log('teis emitted', teiIds);
3407
- this.approvalSelected.emit(teiIds);
3422
+ const trackedEntityInstances = response.data.trackedEntityInstances;
3423
+ // Map TEIs to objects with teiId and enrollmentId
3424
+ const teiEnrollmentList = trackedEntityInstances
3425
+ .map((tei) => {
3426
+ // Find the enrollment where program matches this.programId
3427
+ const matchingEnrollment = tei.enrollments?.find((enrollment) => enrollment.program === this.programId);
3428
+ // Return object with teiId and enrollmentId (if found)
3429
+ return matchingEnrollment
3430
+ ? {
3431
+ teiId: tei.trackedEntityInstance,
3432
+ enrollmentId: matchingEnrollment.enrollment,
3433
+ }
3434
+ : null;
3435
+ })
3436
+ .filter((item) => item !== null); // Remove null entries (no matching enrollment)
3437
+ console.log('TEI and Enrollment IDs emitted:', teiEnrollmentList);
3438
+ this.approvalSelected.emit(teiEnrollmentList);
3408
3439
  }
3409
3440
  else {
3410
3441
  console.log('No tracked entity instances found in the response');