taxtank-core 0.32.4 → 0.32.6

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.
@@ -1,3 +1,4 @@
1
+ import { FinancialYear } from '../../models';
1
2
  import { VehicleLogbookCollection } from './vehicle-logbook.collection';
2
3
  import { DateRange } from 'moment-range';
3
4
  /**
@@ -27,7 +28,7 @@ export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
27
28
  if (!(logbooks instanceof VehicleLogbookCollection)) {
28
29
  logbooks = new VehicleLogbookCollection(logbooks);
29
30
  }
30
- return BestVehicleLogbookCollection.periodDuration < (logbooks.last.date.getTime() - logbooks.first.date.getTime());
31
+ return this.periodDuration <= (logbooks.last.date.getTime() - logbooks.first.date.getTime());
31
32
  }
32
33
  // get list of date ranges for each of passed logbook
33
34
  static getPeriods(logbooks) {
@@ -35,14 +36,12 @@ export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
35
36
  // get a list of date ranges that could potentially be the best
36
37
  const periods = claimable
37
38
  // skip logbooks whose range ends after the last logbook
38
- .filter((logbook) => BestVehicleLogbookCollection.getPeriodByLogbook(logbook).end.toDate() < logbooks.last.date)
39
- .map((logbook) => BestVehicleLogbookCollection.getPeriodByLogbook(logbook));
40
- // skip if the last logbook already included to the last existing date range
41
- // if (last(periods).end.toDate() < logbooks.last.date) {
42
- // add extra date range for the last claimable logbook
43
- // @TODO vik
44
- periods.push(BestVehicleLogbookCollection.getPeriodByLogbook(claimable.last, true));
45
- // }
39
+ .filter((logbook) => this.getPeriodByLogbook(logbook).end.toDate() < logbooks.last.date)
40
+ .map((logbook) => this.getPeriodByLogbook(logbook));
41
+ const last = this.getPeriodByLogbook(claimable.last, true);
42
+ if (FinancialYear.toFinYear(last.start.toDate()) === FinancialYear.year) {
43
+ periods.push(last);
44
+ }
46
45
  return periods;
47
46
  }
48
47
  /**
@@ -52,9 +51,9 @@ export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
52
51
  */
53
52
  static getPeriodByLogbook(logbook, isBackward = false) {
54
53
  if (isBackward) {
55
- return new DateRange([new Date(logbook.date.getTime() - BestVehicleLogbookCollection.periodDuration), logbook.date]);
54
+ return new DateRange([new Date(logbook.date.getTime() - this.periodDuration), logbook.date]);
56
55
  }
57
- return new DateRange([logbook.date, new Date(logbook.date.getTime() + BestVehicleLogbookCollection.periodDuration)]);
56
+ return new DateRange([logbook.date, new Date(logbook.date.getTime() + this.periodDuration)]);
58
57
  }
59
58
  /**
60
59
  * Set Date Range with the biggest work usage percent
@@ -80,7 +79,7 @@ export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
80
79
  });
81
80
  }
82
81
  static fromLogbooks(logbooks) {
83
- if (!BestVehicleLogbookCollection.isBestPeriodExist(logbooks)) {
82
+ if (!this.isBestPeriodExist(logbooks)) {
84
83
  return null;
85
84
  }
86
85
  const collection = new BestVehicleLogbookCollection(logbooks.toArray());
@@ -88,4 +87,4 @@ export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
88
87
  return collection;
89
88
  }
90
89
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdC12ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy92ZWhpY2xlL2Jlc3QtdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBQ3hFOzs7T0FHRzthQUNJLG1CQUFjLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztJQU9sRDs7O09BR0c7SUFDSCxZQUFvQixRQUEwQjtRQUM1QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQWtDO1FBQ3pELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSx3QkFBd0IsQ0FBQyxFQUFFO1lBQ25ELFFBQVEsR0FBRyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyw0QkFBNEIsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRCxxREFBcUQ7SUFDckQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFrQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUMsK0RBQStEO1FBQy9ELE1BQU0sT0FBTyxHQUFnQixTQUFTO1lBQ3BDLHdEQUF3RDthQUN2RCxNQUFNLENBQUMsQ0FBQyxPQUF1QixFQUFFLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDL0gsR0FBRyxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsNEJBQTRCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUc5Riw0RUFBNEU7UUFDNUUseURBQXlEO1FBQ3pELHNEQUFzRDtRQUN0RCxZQUFZO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEYsSUFBSTtRQUVKLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE9BQXVCLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDbkUsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN0SDtRQUVELE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsNEJBQTRCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNLLG1CQUFtQixDQUFDLFFBQWtDO1FBQzVELCtEQUErRDtRQUMvRCxNQUFNLE9BQU8sR0FBZ0IsNEJBQTRCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFpQixFQUFFLEVBQUU7WUFDcEMsTUFBTSxnQkFBZ0IsR0FBNkIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFOUgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRTtnQkFDM0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWtDO1FBQ3BELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3RCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RSxVQUFVLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVMb2dib29rIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB9IGZyb20gJy4vdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnbW9tZW50LXJhbmdlJztcblxuLyoqXG4gKiBTcGVjaWFsIGxvZ2Jvb2sgY29sbGVjdGlvbiB0aGF0IGNvbnRhaW5zIGxvZ2Jvb2tzIGZyb20gZGF0ZSBwZXJpb2Qgd2l0aCB0aGUgaGlnaGVzdCB3b3JrIHVzYWdlIHBlcmNlbnRcbiAqIERvY3M6IGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjExNTE3NDQxL0xvZ2Jvb2srVmVoaWNsZVxuICovXG5leHBvcnQgY2xhc3MgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBMb2dib29rIGNsYWltYWJsZSBwZXJpb2QgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxMTUxNzQ0MS9Mb2dib29rK1ZlaGljbGVcbiAgICovXG4gIHN0YXRpYyBwZXJpb2REdXJhdGlvbiA9IDEyICogNyAqIDI0ICogMzYwMCAqIDEwMDA7XG5cbiAgLyoqXG4gICAqIERhdGUgcmFuZ2Ugd2l0aCB0aGUgYmlnZ2VzdCB3b3JrIHVzYWdlIHBlcmNlbnRcbiAgICovXG4gIHBlcmlvZDogRGF0ZVJhbmdlO1xuXG4gIC8qKlxuICAgKiBjb25zdHJ1Y3RvciBpcyBwcml2YXRlIGJlY2F1c2Ugd2Ugd2FudCB0byBwcmV2ZW50IGNvbGxlY3Rpb24gaW5pdGlhbGl6YXRpb24gdmlhICduZXcnIG9wZXJhdG9yLlxuICAgKiBXZSBzaG91bGQgY3JlYXRlIGluc3RhbmNlcyBvbmx5IHdpdGggZnJvbUxvZ2Jvb2tzIG1ldGhvZFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tbXSkge1xuICAgIHN1cGVyKGxvZ2Jvb2tzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZXN0IHBlcmlvZCBtYXkgYmUgY2FsY3VsYXRlZCBvbmx5IHdoZW4gdXNlciBoYXMgbG9nYm9va3MgbWluaW11bSBmb3IgVmVoaWNsZUxvZ2Jvb2suYmVzdFBlcmlvZFdlZWtzXG4gICAqL1xuICBzdGF0aWMgaXNCZXN0UGVyaW9kRXhpc3QobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmIChsb2dib29rcy5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCEobG9nYm9va3MgaW5zdGFuY2VvZiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24pKSB7XG4gICAgICBsb2dib29rcyA9IG5ldyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24obG9nYm9va3MpO1xuICAgIH1cblxuICAgIHJldHVybiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLnBlcmlvZER1cmF0aW9uIDwgKGxvZ2Jvb2tzLmxhc3QuZGF0ZS5nZXRUaW1lKCkgLSBsb2dib29rcy5maXJzdC5kYXRlLmdldFRpbWUoKSk7XG4gIH1cblxuICAvLyBnZXQgbGlzdCBvZiBkYXRlIHJhbmdlcyBmb3IgZWFjaCBvZiBwYXNzZWQgbG9nYm9va1xuICBzdGF0aWMgZ2V0UGVyaW9kcyhsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKTogRGF0ZVJhbmdlW10ge1xuICAgIGNvbnN0IGNsYWltYWJsZSA9IGxvZ2Jvb2tzLmdldENsYWltYWJsZSgpO1xuICAgIC8vIGdldCBhIGxpc3Qgb2YgZGF0ZSByYW5nZXMgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBiZSB0aGUgYmVzdFxuICAgIGNvbnN0IHBlcmlvZHM6IERhdGVSYW5nZVtdID0gY2xhaW1hYmxlXG4gICAgICAvLyBza2lwIGxvZ2Jvb2tzIHdob3NlIHJhbmdlIGVuZHMgYWZ0ZXIgdGhlIGxhc3QgbG9nYm9va1xuICAgICAgLmZpbHRlcigobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spID0+IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24uZ2V0UGVyaW9kQnlMb2dib29rKGxvZ2Jvb2spLmVuZC50b0RhdGUoKSA8IGxvZ2Jvb2tzLmxhc3QuZGF0ZSlcbiAgICAgIC5tYXAoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLmdldFBlcmlvZEJ5TG9nYm9vayhsb2dib29rKSk7XG5cblxuICAgIC8vIHNraXAgaWYgdGhlIGxhc3QgbG9nYm9vayBhbHJlYWR5IGluY2x1ZGVkIHRvIHRoZSBsYXN0IGV4aXN0aW5nIGRhdGUgcmFuZ2VcbiAgICAvLyBpZiAobGFzdChwZXJpb2RzKS5lbmQudG9EYXRlKCkgPCBsb2dib29rcy5sYXN0LmRhdGUpIHtcbiAgICAvLyBhZGQgZXh0cmEgZGF0ZSByYW5nZSBmb3IgdGhlIGxhc3QgY2xhaW1hYmxlIGxvZ2Jvb2tcbiAgICAvLyBAVE9ETyB2aWtcbiAgICBwZXJpb2RzLnB1c2goQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5nZXRQZXJpb2RCeUxvZ2Jvb2soY2xhaW1hYmxlLmxhc3QsIHRydWUpKTtcbiAgICAvLyB9XG5cbiAgICByZXR1cm4gcGVyaW9kcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2xhaW1hYmxlIGRhdGUgcmFuZ2UgZm9yIHBhc3NlZCBsb2dib29rXG4gICAqIEBwYXJhbSBsb2dib29rIGxvZ2Jvb2sgaW5zdGFuY2UgZm9yIHJhbmdlIGNhbGN1bGF0aW9uXG4gICAqIEBwYXJhbSBpc0JhY2t3YXJkIEZsYWcgZmFsc2UgLSByYW5nZSBmb3IgbG9nYm9vayArIGR1cmF0aW9uOyBmbGFnIHRydWUgLSByYW5nZSBmb3IgbG9nYm9vayAtIGR1cmF0aW9uLiBVc2VkIGZvciBleHRyYSBjYXNlLCB3aGVuIHdlIHNob3VsZCBhZGQgYW4gZXh0cmEgZGF0ZSByYW5nZSBmb3IgdGhlIGxhc3QgbG9nYm9va1xuICAgKi9cbiAgc3RhdGljIGdldFBlcmlvZEJ5TG9nYm9vayhsb2dib29rOiBWZWhpY2xlTG9nYm9vaywgaXNCYWNrd2FyZCA9IGZhbHNlKTogRGF0ZVJhbmdlIHtcbiAgICBpZiAoaXNCYWNrd2FyZCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlUmFuZ2UoW25ldyBEYXRlKGxvZ2Jvb2suZGF0ZS5nZXRUaW1lKCkgLSBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLnBlcmlvZER1cmF0aW9uKSwgbG9nYm9vay5kYXRlXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlUmFuZ2UoW2xvZ2Jvb2suZGF0ZSwgbmV3IERhdGUobG9nYm9vay5kYXRlLmdldFRpbWUoKSArIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24ucGVyaW9kRHVyYXRpb24pXSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IERhdGUgUmFuZ2Ugd2l0aCB0aGUgYmlnZ2VzdCB3b3JrIHVzYWdlIHBlcmNlbnRcbiAgICogUmFuZ2UgZHVyYXRpb24gaXMgZGVmaW5lZCBhcyBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLnBlcmlvZER1cmF0aW9uIGJ5IHRoZSBBVE9cbiAgICpcbiAgICogQWxnb3JpdGhtOlxuICAgKiBDbGFpbWFibGUgbG9nYm9va3Mgb3IgY2xhaW1hYmxlIHRyaXBzIC0gd29yay9idXNpbmVzcyBsb2dib29rIGl0ZW1zLlxuICAgKiBXZSBzaG91bGQgd29yayB3aXRoIGRhdGVzIGZyb20gdGhlIGZpcnN0IHRvIHRoZSBsYXN0IHRyaXAgKGluY2x1ZGUgcGVyc29uYWwgdHJpcHMpLlxuICAgKiBHZXQgZGF0ZSByYW5nZXMgc3RhcnRzIG9uIGVhY2ggY2xhaW1hYmxlIHRyaXAsIGFsbCBvdGhlciByYW5nZXMgYXJlIGRlZmluZXRpbHkgd29yc3QuXG4gICAqIEFsc28gZ2V0IGV4dHJhIGRhdGUgcmFuZ2Ugd2hpY2ggZW5kcyB3aXRoIHRoZSBsYXN0IGNsYWltYWJsZSB0cmlwLlxuICAgKiBHZXQgYWxsIHRyaXBzIGluY2x1ZGVkIHRvIGVhY2ggZGF0ZSByYW5nZS5cbiAgICogRmluZCBhbmQgcmV0dXJuIHJhbmdlIHdpdGggdGhlIGJpZ2dlc3Qgd29ya1VzYWdlIHBlcmNlbnQuXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZUJlc3RQZXJpb2QobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IHZvaWQge1xuICAgIC8vIGdldCBhIGxpc3Qgb2YgZGF0ZSByYW5nZXMgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBiZSB0aGUgYmVzdFxuICAgIGNvbnN0IHBlcmlvZHM6IERhdGVSYW5nZVtdID0gQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5nZXRQZXJpb2RzKGxvZ2Jvb2tzKTtcblxuICAgIHBlcmlvZHMuZm9yRWFjaCgocGVyaW9kOiBEYXRlUmFuZ2UpID0+IHtcbiAgICAgIGNvbnN0IGxvZ2Jvb2tzSW5QZXJpb2Q6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiA9IGxvZ2Jvb2tzLmZpbHRlckJ5UmFuZ2UoJ2RhdGUnLCBwZXJpb2Quc3RhcnQudG9EYXRlKCksIHBlcmlvZC5lbmQudG9EYXRlKCkpO1xuXG4gICAgICBpZiAoIXRoaXMucGVyaW9kIHx8ICh0aGlzLmdldFdvcmtVc2FnZSgpIDwgbG9nYm9va3NJblBlcmlvZC5nZXRXb3JrVXNhZ2UoKSkpIHtcbiAgICAgICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBsb2dib29rc0luUGVyaW9kLnRvQXJyYXkoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTG9nYm9va3MobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gfCBudWxsIHtcbiAgICBpZiAoIUJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24uaXNCZXN0UGVyaW9kRXhpc3QobG9nYm9va3MpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uID0gbmV3IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24obG9nYm9va3MudG9BcnJheSgpKTtcbiAgICBjb2xsZWN0aW9uLmNhbGN1bGF0ZUJlc3RQZXJpb2QobG9nYm9va3MpO1xuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH1cbn1cbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdC12ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy92ZWhpY2xlL2Jlc3QtdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBQ3hFOzs7T0FHRzthQUNJLG1CQUFjLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztJQU9sRDs7O09BR0c7SUFDSCxZQUFvQixRQUEwQjtRQUM1QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQWtDO1FBQ3pELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSx3QkFBd0IsQ0FBQyxFQUFFO1lBQ25ELFFBQVEsR0FBRyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQscURBQXFEO0lB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bSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB9IGZyb20gJy4vdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnbW9tZW50LXJhbmdlJztcblxuLyoqXG4gKiBTcGVjaWFsIGxvZ2Jvb2sgY29sbGVjdGlvbiB0aGF0IGNvbnRhaW5zIGxvZ2Jvb2tzIGZyb20gZGF0ZSBwZXJpb2Qgd2l0aCB0aGUgaGlnaGVzdCB3b3JrIHVzYWdlIHBlcmNlbnRcbiAqIERvY3M6IGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjExNTE3NDQxL0xvZ2Jvb2srVmVoaWNsZVxuICovXG5leHBvcnQgY2xhc3MgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBMb2dib29rIGNsYWltYWJsZSBwZXJpb2QgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxMTUxNzQ0MS9Mb2dib29rK1ZlaGljbGVcbiAgICovXG4gIHN0YXRpYyBwZXJpb2REdXJhdGlvbiA9IDEyICogNyAqIDI0ICogMzYwMCAqIDEwMDA7XG5cbiAgLyoqXG4gICAqIERhdGUgcmFuZ2Ugd2l0aCB0aGUgYmlnZ2VzdCB3b3JrIHVzYWdlIHBlcmNlbnRcbiAgICovXG4gIHBlcmlvZDogRGF0ZVJhbmdlO1xuXG4gIC8qKlxuICAgKiBjb25zdHJ1Y3RvciBpcyBwcml2YXRlIGJlY2F1c2Ugd2Ugd2FudCB0byBwcmV2ZW50IGNvbGxlY3Rpb24gaW5pdGlhbGl6YXRpb24gdmlhICduZXcnIG9wZXJhdG9yLlxuICAgKiBXZSBzaG91bGQgY3JlYXRlIGluc3RhbmNlcyBvbmx5IHdpdGggZnJvbUxvZ2Jvb2tzIG1ldGhvZFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tbXSkge1xuICAgIHN1cGVyKGxvZ2Jvb2tzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCZXN0IHBlcmlvZCBtYXkgYmUgY2FsY3VsYXRlZCBvbmx5IHdoZW4gdXNlciBoYXMgbG9nYm9va3MgbWluaW11bSBmb3IgVmVoaWNsZUxvZ2Jvb2suYmVzdFBlcmlvZFdlZWtzXG4gICAqL1xuICBzdGF0aWMgaXNCZXN0UGVyaW9kRXhpc3QobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmIChsb2dib29rcy5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCEobG9nYm9va3MgaW5zdGFuY2VvZiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24pKSB7XG4gICAgICBsb2dib29rcyA9IG5ldyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24obG9nYm9va3MpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBlcmlvZER1cmF0aW9uIDw9IChsb2dib29rcy5sYXN0LmRhdGUuZ2V0VGltZSgpIC0gbG9nYm9va3MuZmlyc3QuZGF0ZS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgLy8gZ2V0IGxpc3Qgb2YgZGF0ZSByYW5nZXMgZm9yIGVhY2ggb2YgcGFzc2VkIGxvZ2Jvb2tcbiAgc3RhdGljIGdldFBlcmlvZHMobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IERhdGVSYW5nZVtdIHtcbiAgICBjb25zdCBjbGFpbWFibGUgPSBsb2dib29rcy5nZXRDbGFpbWFibGUoKTtcbiAgICAvLyBnZXQgYSBsaXN0IG9mIGRhdGUgcmFuZ2VzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgYmUgdGhlIGJlc3RcbiAgICBjb25zdCBwZXJpb2RzOiBEYXRlUmFuZ2VbXSA9IGNsYWltYWJsZVxuICAgICAgLy8gc2tpcCBsb2dib29rcyB3aG9zZSByYW5nZSBlbmRzIGFmdGVyIHRoZSBsYXN0IGxvZ2Jvb2tcbiAgICAgIC5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiB0aGlzLmdldFBlcmlvZEJ5TG9nYm9vayhsb2dib29rKS5lbmQudG9EYXRlKCkgPCBsb2dib29rcy5sYXN0LmRhdGUpXG4gICAgICAubWFwKChsb2dib29rOiBWZWhpY2xlTG9nYm9vaykgPT4gdGhpcy5nZXRQZXJpb2RCeUxvZ2Jvb2sobG9nYm9vaykpO1xuXG4gICAgY29uc3QgbGFzdCA9IHRoaXMuZ2V0UGVyaW9kQnlMb2dib29rKGNsYWltYWJsZS5sYXN0LCB0cnVlKTtcbiAgICBpZiAoRmluYW5jaWFsWWVhci50b0ZpblllYXIobGFzdC5zdGFydC50b0RhdGUoKSkgPT09IEZpbmFuY2lhbFllYXIueWVhcikge1xuICAgICAgcGVyaW9kcy5wdXNoKGxhc3QpO1xuICAgIH1cblxuICAgIHJldHVybiBwZXJpb2RzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjbGFpbWFibGUgZGF0ZSByYW5nZSBmb3IgcGFzc2VkIGxvZ2Jvb2tcbiAgICogQHBhcmFtIGxvZ2Jvb2sgbG9nYm9vayBpbnN0YW5jZSBmb3IgcmFuZ2UgY2FsY3VsYXRpb25cbiAgICogQHBhcmFtIGlzQmFja3dhcmQgRmxhZyBmYWxzZSAtIHJhbmdlIGZvciBsb2dib29rICsgZHVyYXRpb247IGZsYWcgdHJ1ZSAtIHJhbmdlIGZvciBsb2dib29rIC0gZHVyYXRpb24uIFVzZWQgZm9yIGV4dHJhIGNhc2UsIHdoZW4gd2Ugc2hvdWxkIGFkZCBhbiBleHRyYSBkYXRlIHJhbmdlIGZvciB0aGUgbGFzdCBsb2dib29rXG4gICAqL1xuICBzdGF0aWMgZ2V0UGVyaW9kQnlMb2dib29rKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rLCBpc0JhY2t3YXJkID0gZmFsc2UpOiBEYXRlUmFuZ2Uge1xuICAgIGlmIChpc0JhY2t3YXJkKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGVSYW5nZShbbmV3IERhdGUobG9nYm9vay5kYXRlLmdldFRpbWUoKSAtIHRoaXMucGVyaW9kRHVyYXRpb24pLCBsb2dib29rLmRhdGVdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGVSYW5nZShbbG9nYm9vay5kYXRlLCBuZXcgRGF0ZShsb2dib29rLmRhdGUuZ2V0VGltZSgpICsgdGhpcy5wZXJpb2REdXJhdGlvbildKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgRGF0ZSBSYW5nZSB3aXRoIHRoZSBiaWdnZXN0IHdvcmsgdXNhZ2UgcGVyY2VudFxuICAgKiBSYW5nZSBkdXJhdGlvbiBpcyBkZWZpbmVkIGFzIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24ucGVyaW9kRHVyYXRpb24gYnkgdGhlIEFUT1xuICAgKlxuICAgKiBBbGdvcml0aG06XG4gICAqIENsYWltYWJsZSBsb2dib29rcyBvciBjbGFpbWFibGUgdHJpcHMgLSB3b3JrL2J1c2luZXNzIGxvZ2Jvb2sgaXRlbXMuXG4gICAqIFdlIHNob3VsZCB3b3JrIHdpdGggZGF0ZXMgZnJvbSB0aGUgZmlyc3QgdG8gdGhlIGxhc3QgdHJpcCAoaW5jbHVkZSBwZXJzb25hbCB0cmlwcykuXG4gICAqIEdldCBkYXRlIHJhbmdlcyBzdGFydHMgb24gZWFjaCBjbGFpbWFibGUgdHJpcCwgYWxsIG90aGVyIHJhbmdlcyBhcmUgZGVmaW5ldGlseSB3b3JzdC5cbiAgICogQWxzbyBnZXQgZXh0cmEgZGF0ZSByYW5nZSB3aGljaCBlbmRzIHdpdGggdGhlIGxhc3QgY2xhaW1hYmxlIHRyaXAuXG4gICAqIEdldCBhbGwgdHJpcHMgaW5jbHVkZWQgdG8gZWFjaCBkYXRlIHJhbmdlLlxuICAgKiBGaW5kIGFuZCByZXR1cm4gcmFuZ2Ugd2l0aCB0aGUgYmlnZ2VzdCB3b3JrVXNhZ2UgcGVyY2VudC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlQmVzdFBlcmlvZChsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKTogdm9pZCB7XG4gICAgLy8gZ2V0IGEgbGlzdCBvZiBkYXRlIHJhbmdlcyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHRoZSBiZXN0XG4gICAgY29uc3QgcGVyaW9kczogRGF0ZVJhbmdlW10gPSBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLmdldFBlcmlvZHMobG9nYm9va3MpO1xuXG4gICAgcGVyaW9kcy5mb3JFYWNoKChwZXJpb2Q6IERhdGVSYW5nZSkgPT4ge1xuICAgICAgY29uc3QgbG9nYm9va3NJblBlcmlvZDogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uID0gbG9nYm9va3MuZmlsdGVyQnlSYW5nZSgnZGF0ZScsIHBlcmlvZC5zdGFydC50b0RhdGUoKSwgcGVyaW9kLmVuZC50b0RhdGUoKSk7XG5cbiAgICAgIGlmICghdGhpcy5wZXJpb2QgfHwgKHRoaXMuZ2V0V29ya1VzYWdlKCkgPCBsb2dib29rc0luUGVyaW9kLmdldFdvcmtVc2FnZSgpKSkge1xuICAgICAgICB0aGlzLnBlcmlvZCA9IHBlcmlvZDtcbiAgICAgICAgdGhpcy5pdGVtcyA9IGxvZ2Jvb2tzSW5QZXJpb2QudG9BcnJheSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Mb2dib29rcyhsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKTogQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB8IG51bGwge1xuICAgIGlmICghdGhpcy5pc0Jlc3RQZXJpb2RFeGlzdChsb2dib29rcykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBuZXcgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbihsb2dib29rcy50b0FycmF5KCkpO1xuICAgIGNvbGxlY3Rpb24uY2FsY3VsYXRlQmVzdFBlcmlvZChsb2dib29rcyk7XG5cbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfVxufVxuIl19
@@ -9,7 +9,7 @@ export class VehicleLogbookCollection extends Collection {
9
9
  return this.sumBy('kilometers');
10
10
  }
11
11
  getWorkUsage(vehicleClaim) {
12
- return this.getClaimable(vehicleClaim).kilometers / this.kilometers * 100;
12
+ return +(this.getClaimable(vehicleClaim).kilometers / this.kilometers * 100).toFixed(10);
13
13
  }
14
14
  getClaimable(vehicleClaim) {
15
15
  if (!vehicleClaim) {
@@ -28,4 +28,4 @@ export class VehicleLogbookCollection extends Collection {
28
28
  return BestVehicleLogbookCollection.fromLogbooks(this);
29
29
  }
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsVUFBMEI7SUFDdEU7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUEyQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQzVFLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBMkI7UUFDdEMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN0RTtRQUVELE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRTtZQUM5QixrRkFBa0Y7WUFDbEYsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hELCtFQUErRTtZQUMvRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLDRCQUE0QixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBWZWhpY2xlQ2xhaW0sIFZlaGljbGVMb2dib29rIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gfSBmcm9tICcuL2Jlc3QtdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxWZWhpY2xlTG9nYm9vaz4ge1xuICAvKipcbiAgICogQ2FsY3VsYXRlIHRvdGFsIGtpbG9tZXRlcnMgdHJhdmVsZWRcbiAgICovXG4gIGdldCBraWxvbWV0ZXJzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2tpbG9tZXRlcnMnKTtcbiAgfVxuXG4gIGdldFdvcmtVc2FnZSh2ZWhpY2xlQ2xhaW0/OiBWZWhpY2xlQ2xhaW0pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldENsYWltYWJsZSh2ZWhpY2xlQ2xhaW0pLmtpbG9tZXRlcnMgLyB0aGlzLmtpbG9tZXRlcnMgKiAxMDA7XG4gIH1cblxuICBnZXRDbGFpbWFibGUodmVoaWNsZUNsYWltPzogVmVoaWNsZUNsYWltKTogdGhpcyB7XG4gICAgaWYgKCF2ZWhpY2xlQ2xhaW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcigobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spID0+ICFsb2dib29rLmlzUGVyc29uYWwpO1xuICAgIH1cblxuICAgIHJldHVybiB2ZWhpY2xlQ2xhaW0uaXNTb2xlVGFuaygpXG4gICAgICAvLyBzb2xlIHRhbmsgbWF5IGhhdmUgbXVsdGlwbGUgdmVoaWNsZSBjbGFpbXMsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGJ5IGJ1c2luZXNzLmlkXG4gICAgICA/IHRoaXMuZmlsdGVyQnkoJ2J1c2luZXNzLmlkJywgdmVoaWNsZUNsYWltLmJ1c2luZXNzLmlkKVxuICAgICAgLy8gd29yayB0YW5rIG1heSBoYXZlIG9ubHkgb25lIHZlaGljbGUgY2xhaW0sIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGJ5IHRhbmsgdHlwZVxuICAgICAgOiB0aGlzLmZpbHRlckJ5KCd0YW5rVHlwZScsIFRhbmtUeXBlRW51bS5XT1JLKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgY29sbGVjdGlvbiBvZiBsb2dib29rcyB3aXRoIHRoZSBiaWdnZXN0IHdvcmsgdXNhZ2UgZm9yIHtAbGluayBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLnBlcmlvZER1cmF0aW9ufVxuICAgKi9cbiAgZ2V0QmVzdCgpOiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24uZnJvbUxvZ2Jvb2tzKHRoaXMpO1xuICB9XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsVUFBMEI7SUFDdEU7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUEyQjtRQUN0QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQTJCO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDOUIsa0ZBQWtGO1lBQ2xGLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN4RCwrRUFBK0U7WUFDL0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsT0FBTyw0QkFBNEIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltLCBWZWhpY2xlTG9nYm9vayB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIH0gZnJvbSAnLi9iZXN0LXZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248VmVoaWNsZUxvZ2Jvb2s+IHtcbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0b3RhbCBraWxvbWV0ZXJzIHRyYXZlbGVkXG4gICAqL1xuICBnZXQga2lsb21ldGVycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdraWxvbWV0ZXJzJyk7XG4gIH1cblxuICBnZXRXb3JrVXNhZ2UodmVoaWNsZUNsYWltPzogVmVoaWNsZUNsYWltKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKyh0aGlzLmdldENsYWltYWJsZSh2ZWhpY2xlQ2xhaW0pLmtpbG9tZXRlcnMgLyB0aGlzLmtpbG9tZXRlcnMgKiAxMDApLnRvRml4ZWQoMTApO1xuICB9XG5cbiAgZ2V0Q2xhaW1hYmxlKHZlaGljbGVDbGFpbT86IFZlaGljbGVDbGFpbSk6IHRoaXMge1xuICAgIGlmICghdmVoaWNsZUNsYWltKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiAhbG9nYm9vay5pc1BlcnNvbmFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVoaWNsZUNsYWltLmlzU29sZVRhbmsoKVxuICAgICAgLy8gc29sZSB0YW5rIG1heSBoYXZlIG11bHRpcGxlIHZlaGljbGUgY2xhaW1zLCBzbyB3ZSBuZWVkIHRvIGZpbHRlciBieSBidXNpbmVzcy5pZFxuICAgICAgPyB0aGlzLmZpbHRlckJ5KCdidXNpbmVzcy5pZCcsIHZlaGljbGVDbGFpbS5idXNpbmVzcy5pZClcbiAgICAgIC8vIHdvcmsgdGFuayBtYXkgaGF2ZSBvbmx5IG9uZSB2ZWhpY2xlIGNsYWltLCBzbyB3ZSBuZWVkIHRvIGZpbHRlciBieSB0YW5rIHR5cGVcbiAgICAgIDogdGhpcy5maWx0ZXJCeSgndGFua1R5cGUnLCBUYW5rVHlwZUVudW0uV09SSyk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGNvbGxlY3Rpb24gb2YgbG9nYm9va3Mgd2l0aCB0aGUgYmlnZ2VzdCB3b3JrIHVzYWdlIGZvciB7QGxpbmsgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5wZXJpb2REdXJhdGlvbn1cbiAgICovXG4gIGdldEJlc3QoKTogQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB8IG51bGwge1xuICAgIHJldHVybiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLmZyb21Mb2dib29rcyh0aGlzKTtcbiAgfVxufVxuIl19
@@ -2,8 +2,10 @@ import { Injectable } from '@angular/core';
2
2
  import { VehicleClaim } from '../../../models';
3
3
  import { RestService } from '../rest/rest-old.service';
4
4
  import { AppEventTypeEnum } from '../../../models';
5
+ import { combineLatest } from 'rxjs';
5
6
  import { map } from 'rxjs/operators';
6
7
  import { AppEvent } from '../../../models';
8
+ import { plainToClass } from 'class-transformer';
7
9
  import { UserRolesEnum } from '../../../db/Enums/user-roles.enum';
8
10
  import * as i0 from "@angular/core";
9
11
  export class VehicleClaimService extends RestService {
@@ -13,9 +15,6 @@ export class VehicleClaimService extends RestService {
13
15
  this.url = 'vehicle-claims';
14
16
  this.roles = [UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
15
17
  }
16
- listenEvents() {
17
- this.listenVehicleClaimDetailsChanges();
18
- }
19
18
  add(model) {
20
19
  return super.add(model).pipe(map((vehicleClaim) => {
21
20
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_CLAIM_CREATED, vehicleClaim));
@@ -29,14 +28,15 @@ export class VehicleClaimService extends RestService {
29
28
  }));
30
29
  }
31
30
  /**
32
- * Details changes may affect vehicle claims:
33
- * when details method changed, all claims current values become 0
31
+ * Update workUsage for all vehicle claims if logbook best period changed
32
+ * @TODO Vik: Best period move this and related logic to backend
34
33
  */
35
- listenVehicleClaimDetailsChanges() {
36
- this.eventDispatcherService.on(AppEventTypeEnum.VEHICLE_CLAIM_DETAILS_UPDATED)
37
- .subscribe(() => {
38
- this.refreshCache();
34
+ updateWorkUsage(bestLogbooks) {
35
+ const batch$ = (this.cache ?? []).map((claim) => {
36
+ const claimToUpdate = plainToClass(VehicleClaim, Object.assign({}, claim, { workUsage: bestLogbooks.getWorkUsage(claim) }));
37
+ return this.update(claimToUpdate);
39
38
  });
39
+ return combineLatest(batch$);
40
40
  }
41
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VehicleClaimService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
42
42
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VehicleClaimService, providedIn: 'root' }); }
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
47
47
  providedIn: 'root'
48
48
  }]
49
49
  }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWNsYWltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUtsRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBMkM7SUFIcEY7O1FBSUUsZUFBVSxHQUF3QixZQUFZLENBQUM7UUFDL0MsUUFBRyxHQUFHLGdCQUFnQixDQUFDO1FBQ3ZCLFVBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBb0M1RDtJQWxDQyxZQUFZO1FBQ1YsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFtQjtRQUNyQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBRXpHLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW1CLEVBQUUsY0FBc0IsRUFBRTtRQUNsRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUV6RyxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdDQUFnQztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDO2FBQzNFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDOytHQXRDVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltIGFzIFZlaGljbGVDbGFpbUJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdmVoaWNsZS92ZWhpY2xlLWNsYWltJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uL3Jlc3QvcmVzdC1vbGQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVmVoaWNsZUNsYWltU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFZlaGljbGVDbGFpbUJhc2UsIFZlaGljbGVDbGFpbT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBWZWhpY2xlQ2xhaW0gPSBWZWhpY2xlQ2xhaW07XG4gIHVybCA9ICd2ZWhpY2xlLWNsYWltcyc7XG4gIHJvbGVzID0gW1VzZXJSb2xlc0VudW0uV09SS19UQU5LLCBVc2VyUm9sZXNFbnVtLlNPTEVfVEFOS107XG5cbiAgbGlzdGVuRXZlbnRzKCkge1xuICAgIHRoaXMubGlzdGVuVmVoaWNsZUNsYWltRGV0YWlsc0NoYW5nZXMoKTtcbiAgfVxuXG4gIGFkZChtb2RlbDogVmVoaWNsZUNsYWltKTogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+IHtcbiAgICByZXR1cm4gc3VwZXIuYWRkKG1vZGVsKS5waXBlKFxuICAgICAgbWFwKCh2ZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9DUkVBVEVELCB2ZWhpY2xlQ2xhaW0pKTtcblxuICAgICAgICByZXR1cm4gdmVoaWNsZUNsYWltO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKG1vZGVsOiBWZWhpY2xlQ2xhaW0sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8VmVoaWNsZUNsYWltPiB7XG4gICAgcmV0dXJuIHN1cGVyLnVwZGF0ZShtb2RlbCwgcXVlcnlQYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHZlaGljbGVDbGFpbTogVmVoaWNsZUNsYWltKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX1VQREFURUQsIHZlaGljbGVDbGFpbSkpO1xuXG4gICAgICAgIHJldHVybiB2ZWhpY2xlQ2xhaW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGV0YWlscyBjaGFuZ2VzIG1heSBhZmZlY3QgdmVoaWNsZSBjbGFpbXM6XG4gICAqIHdoZW4gZGV0YWlscyBtZXRob2QgY2hhbmdlZCwgYWxsIGNsYWltcyBjdXJyZW50IHZhbHVlcyBiZWNvbWUgMFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5WZWhpY2xlQ2xhaW1EZXRhaWxzQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0RFVEFJTFNfVVBEQVRFRClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgfSlcbiAgfVxufVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1jbGFpbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWNsYWltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQU1sRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBMkM7SUFIcEY7O1FBSUUsZUFBVSxHQUF3QixZQUFZLENBQUM7UUFDL0MsUUFBRyxHQUFHLGdCQUFnQixDQUFDO1FBQ3ZCLFVBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBc0M1RDtJQXBDQyxHQUFHLENBQUMsS0FBbUI7UUFDckIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUV6RyxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFtQixFQUFFLGNBQXNCLEVBQUU7UUFDbEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFekcsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsWUFBMEM7UUFDeEQsTUFBTSxNQUFNLEdBQStCLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUU7WUFDeEYsTUFBTSxhQUFhLEdBQWlCLFlBQVksQ0FDOUMsWUFBWSxFQUNaLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FDMUUsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQTtRQUVGLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7K0dBeENVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWZWhpY2xlQ2xhaW0gYXMgVmVoaWNsZUNsYWltQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy92ZWhpY2xlL3ZlaGljbGUtY2xhaW0nO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdC9yZXN0LW9sZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy91c2VyLXJvbGVzLmVudW0nO1xuaW1wb3J0IHsgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVmVoaWNsZUNsYWltU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFZlaGljbGVDbGFpbUJhc2UsIFZlaGljbGVDbGFpbT4ge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgVmVoaWNsZUNsYWltID0gVmVoaWNsZUNsYWltO1xuICB1cmwgPSAndmVoaWNsZS1jbGFpbXMnO1xuICByb2xlcyA9IFtVc2VyUm9sZXNFbnVtLldPUktfVEFOSywgVXNlclJvbGVzRW51bS5TT0xFX1RBTktdO1xuXG4gIGFkZChtb2RlbDogVmVoaWNsZUNsYWltKTogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+IHtcbiAgICByZXR1cm4gc3VwZXIuYWRkKG1vZGVsKS5waXBlKFxuICAgICAgbWFwKCh2ZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9DUkVBVEVELCB2ZWhpY2xlQ2xhaW0pKTtcblxuICAgICAgICByZXR1cm4gdmVoaWNsZUNsYWltO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKG1vZGVsOiBWZWhpY2xlQ2xhaW0sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8VmVoaWNsZUNsYWltPiB7XG4gICAgcmV0dXJuIHN1cGVyLnVwZGF0ZShtb2RlbCwgcXVlcnlQYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHZlaGljbGVDbGFpbTogVmVoaWNsZUNsYWltKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX1VQREFURUQsIHZlaGljbGVDbGFpbSkpO1xuXG4gICAgICAgIHJldHVybiB2ZWhpY2xlQ2xhaW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHdvcmtVc2FnZSBmb3IgYWxsIHZlaGljbGUgY2xhaW1zIGlmIGxvZ2Jvb2sgYmVzdCBwZXJpb2QgY2hhbmdlZFxuICAgKiBAVE9ETyBWaWs6IEJlc3QgcGVyaW9kIG1vdmUgdGhpcyBhbmQgcmVsYXRlZCBsb2dpYyB0byBiYWNrZW5kXG4gICAqL1xuICB1cGRhdGVXb3JrVXNhZ2UoYmVzdExvZ2Jvb2tzOiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKTogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW1bXT4ge1xuICAgIGNvbnN0IGJhdGNoJDogT2JzZXJ2YWJsZTxWZWhpY2xlQ2xhaW0+W10gPSAodGhpcy5jYWNoZSA/PyBbXSkubWFwKChjbGFpbTogVmVoaWNsZUNsYWltKSA9PiB7XG4gICAgICBjb25zdCBjbGFpbVRvVXBkYXRlOiBWZWhpY2xlQ2xhaW0gPSBwbGFpblRvQ2xhc3MoXG4gICAgICAgIFZlaGljbGVDbGFpbSxcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgY2xhaW0sIHsgd29ya1VzYWdlOiBiZXN0TG9nYm9va3MuZ2V0V29ya1VzYWdlKGNsYWltKSB9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKGNsYWltVG9VcGRhdGUpO1xuICAgIH0pXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChiYXRjaCQpO1xuICB9XG59XG4iXX0=
@@ -8502,7 +8502,7 @@ class VehicleLogbookCollection extends Collection {
8502
8502
  return this.sumBy('kilometers');
8503
8503
  }
8504
8504
  getWorkUsage(vehicleClaim) {
8505
- return this.getClaimable(vehicleClaim).kilometers / this.kilometers * 100;
8505
+ return +(this.getClaimable(vehicleClaim).kilometers / this.kilometers * 100).toFixed(10);
8506
8506
  }
8507
8507
  getClaimable(vehicleClaim) {
8508
8508
  if (!vehicleClaim) {
@@ -8549,7 +8549,7 @@ class BestVehicleLogbookCollection extends VehicleLogbookCollection {
8549
8549
  if (!(logbooks instanceof VehicleLogbookCollection)) {
8550
8550
  logbooks = new VehicleLogbookCollection(logbooks);
8551
8551
  }
8552
- return BestVehicleLogbookCollection.periodDuration < (logbooks.last.date.getTime() - logbooks.first.date.getTime());
8552
+ return this.periodDuration <= (logbooks.last.date.getTime() - logbooks.first.date.getTime());
8553
8553
  }
8554
8554
  // get list of date ranges for each of passed logbook
8555
8555
  static getPeriods(logbooks) {
@@ -8557,14 +8557,12 @@ class BestVehicleLogbookCollection extends VehicleLogbookCollection {
8557
8557
  // get a list of date ranges that could potentially be the best
8558
8558
  const periods = claimable
8559
8559
  // skip logbooks whose range ends after the last logbook
8560
- .filter((logbook) => BestVehicleLogbookCollection.getPeriodByLogbook(logbook).end.toDate() < logbooks.last.date)
8561
- .map((logbook) => BestVehicleLogbookCollection.getPeriodByLogbook(logbook));
8562
- // skip if the last logbook already included to the last existing date range
8563
- // if (last(periods).end.toDate() < logbooks.last.date) {
8564
- // add extra date range for the last claimable logbook
8565
- // @TODO vik
8566
- periods.push(BestVehicleLogbookCollection.getPeriodByLogbook(claimable.last, true));
8567
- // }
8560
+ .filter((logbook) => this.getPeriodByLogbook(logbook).end.toDate() < logbooks.last.date)
8561
+ .map((logbook) => this.getPeriodByLogbook(logbook));
8562
+ const last = this.getPeriodByLogbook(claimable.last, true);
8563
+ if (FinancialYear.toFinYear(last.start.toDate()) === FinancialYear.year) {
8564
+ periods.push(last);
8565
+ }
8568
8566
  return periods;
8569
8567
  }
8570
8568
  /**
@@ -8574,9 +8572,9 @@ class BestVehicleLogbookCollection extends VehicleLogbookCollection {
8574
8572
  */
8575
8573
  static getPeriodByLogbook(logbook, isBackward = false) {
8576
8574
  if (isBackward) {
8577
- return new DateRange([new Date(logbook.date.getTime() - BestVehicleLogbookCollection.periodDuration), logbook.date]);
8575
+ return new DateRange([new Date(logbook.date.getTime() - this.periodDuration), logbook.date]);
8578
8576
  }
8579
- return new DateRange([logbook.date, new Date(logbook.date.getTime() + BestVehicleLogbookCollection.periodDuration)]);
8577
+ return new DateRange([logbook.date, new Date(logbook.date.getTime() + this.periodDuration)]);
8580
8578
  }
8581
8579
  /**
8582
8580
  * Set Date Range with the biggest work usage percent
@@ -8602,7 +8600,7 @@ class BestVehicleLogbookCollection extends VehicleLogbookCollection {
8602
8600
  });
8603
8601
  }
8604
8602
  static fromLogbooks(logbooks) {
8605
- if (!BestVehicleLogbookCollection.isBestPeriodExist(logbooks)) {
8603
+ if (!this.isBestPeriodExist(logbooks)) {
8606
8604
  return null;
8607
8605
  }
8608
8606
  const collection = new BestVehicleLogbookCollection(logbooks.toArray());
@@ -15236,9 +15234,6 @@ class VehicleClaimService extends RestService {
15236
15234
  this.url = 'vehicle-claims';
15237
15235
  this.roles = [UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
15238
15236
  }
15239
- listenEvents() {
15240
- this.listenVehicleClaimDetailsChanges();
15241
- }
15242
15237
  add(model) {
15243
15238
  return super.add(model).pipe(map((vehicleClaim) => {
15244
15239
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.VEHICLE_CLAIM_CREATED, vehicleClaim));
@@ -15252,14 +15247,15 @@ class VehicleClaimService extends RestService {
15252
15247
  }));
15253
15248
  }
15254
15249
  /**
15255
- * Details changes may affect vehicle claims:
15256
- * when details method changed, all claims current values become 0
15250
+ * Update workUsage for all vehicle claims if logbook best period changed
15251
+ * @TODO Vik: Best period move this and related logic to backend
15257
15252
  */
15258
- listenVehicleClaimDetailsChanges() {
15259
- this.eventDispatcherService.on(AppEventTypeEnum.VEHICLE_CLAIM_DETAILS_UPDATED)
15260
- .subscribe(() => {
15261
- this.refreshCache();
15253
+ updateWorkUsage(bestLogbooks) {
15254
+ const batch$ = (this.cache ?? []).map((claim) => {
15255
+ const claimToUpdate = plainToClass(VehicleClaim, Object.assign({}, claim, { workUsage: bestLogbooks.getWorkUsage(claim) }));
15256
+ return this.update(claimToUpdate);
15262
15257
  });
15258
+ return combineLatest(batch$);
15263
15259
  }
15264
15260
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VehicleClaimService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
15265
15261
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VehicleClaimService, providedIn: 'root' }); }