taxtank-core 0.31.59 → 0.31.60
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.
- package/esm2020/lib/collections/vehicle/best-vehicle-logbook.collection.mjs +92 -0
- package/esm2020/lib/collections/vehicle/index.mjs +2 -1
- package/esm2020/lib/collections/vehicle/vehicle-logbook.collection.mjs +15 -58
- package/esm2020/lib/interceptors/basiq-client-id.interceptor.mjs +3 -3
- package/esm2020/lib/interceptors/basiq-token.interceptor.mjs +3 -3
- package/esm2020/lib/interceptors/corelogic-interceptor.mjs +3 -3
- package/esm2020/lib/interceptors/financial-year-interceptor.mjs +3 -3
- package/esm2020/lib/interceptors/interceptors.module.mjs +4 -4
- package/esm2020/lib/interceptors/jwt-interceptor.mjs +3 -3
- package/esm2020/lib/interceptors/preloader.interceptor.mjs +3 -3
- package/esm2020/lib/interceptors/user-switcher-interceptor.mjs +3 -3
- package/esm2020/lib/models/vehicle/index.mjs +1 -2
- package/esm2020/lib/models/vehicle/vehicle-logbook.mjs +1 -28
- package/esm2020/lib/pipes/app-currency.pipe.mjs +3 -3
- package/esm2020/lib/services/account-setup/account-setup.service.mjs +3 -3
- package/esm2020/lib/services/affiliate/rewardful/rewardful.service.mjs +3 -3
- package/esm2020/lib/services/asset/assets.service.mjs +3 -3
- package/esm2020/lib/services/auth/auth.service.mjs +3 -3
- package/esm2020/lib/services/auth/jwt.service.mjs +3 -3
- package/esm2020/lib/services/bank/bank-account-calculation.service.mjs +3 -3
- package/esm2020/lib/services/bank/bank-transaction-calculation.service.mjs +3 -3
- package/esm2020/lib/services/data.service.mjs +3 -3
- package/esm2020/lib/services/event/event-dispatcher.service.mjs +3 -3
- package/esm2020/lib/services/event/sse.service.mjs +3 -3
- package/esm2020/lib/services/export/export-formatter.service.mjs +3 -3
- package/esm2020/lib/services/header-title/header-title.service.mjs +3 -3
- package/esm2020/lib/services/http/address/address.service.mjs +3 -3
- package/esm2020/lib/services/http/bank/bank-account/bank-account.service.mjs +3 -3
- package/esm2020/lib/services/http/bank/bank-connection/bank-connection.service.mjs +3 -3
- package/esm2020/lib/services/http/bank/bank-transaction/bank-transaction.service.mjs +3 -3
- package/esm2020/lib/services/http/bank/bank.service.mjs +3 -3
- package/esm2020/lib/services/http/bank/basiq/basiq-token.service.mjs +3 -3
- package/esm2020/lib/services/http/bank/basiq/basiq.service.mjs +3 -3
- package/esm2020/lib/services/http/budget/budget.service.mjs +3 -3
- package/esm2020/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.mjs +3 -3
- package/esm2020/lib/services/http/chart-accounts/chart-accounts.service.mjs +3 -3
- package/esm2020/lib/services/http/chat/chat.service.mjs +3 -3
- package/esm2020/lib/services/http/chat/message-document.service.mjs +3 -3
- package/esm2020/lib/services/http/chat/message.service.mjs +3 -3
- package/esm2020/lib/services/http/client/capital-gain/annual-client-details.service.mjs +3 -3
- package/esm2020/lib/services/http/client/occupation/occupation.service.mjs +3 -3
- package/esm2020/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.mjs +3 -3
- package/esm2020/lib/services/http/depreciation/depreciation.service.mjs +3 -3
- package/esm2020/lib/services/http/document/document-folder/document-folder.service.mjs +3 -3
- package/esm2020/lib/services/http/document/document.service.mjs +3 -3
- package/esm2020/lib/services/http/facebook/facebook.service.mjs +3 -3
- package/esm2020/lib/services/http/file/file.service.mjs +3 -3
- package/esm2020/lib/services/http/firm/client-income/client-income-types.service.mjs +3 -3
- package/esm2020/lib/services/http/firm/client-invite/client-invite.service.mjs +3 -3
- package/esm2020/lib/services/http/firm/client-movement/client-movement.service.mjs +3 -3
- package/esm2020/lib/services/http/firm/employee/employee.service.mjs +3 -3
- package/esm2020/lib/services/http/firm/employee-invite/employee-invite.service.mjs +3 -3
- package/esm2020/lib/services/http/firm/firm.service.mjs +3 -3
- package/esm2020/lib/services/http/firm/portfolio-report/client-portfolio-report.service.mjs +3 -3
- package/esm2020/lib/services/http/google/google.service.mjs +3 -3
- package/esm2020/lib/services/http/holding/holding-sale.service.mjs +3 -3
- package/esm2020/lib/services/http/holding/holding-type.service.mjs +3 -3
- package/esm2020/lib/services/http/holding/holding.service.mjs +3 -3
- package/esm2020/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.mjs +3 -3
- package/esm2020/lib/services/http/income-source/income-source.service.mjs +3 -3
- package/esm2020/lib/services/http/income-source/salary-forecast/salary-forecast.service.mjs +3 -3
- package/esm2020/lib/services/http/income-source/sole-forecast/sole-forecast.service.mjs +3 -3
- package/esm2020/lib/services/http/loan/borrowing-expense/borrowing-expense.service.mjs +3 -3
- package/esm2020/lib/services/http/loan/loan.service.mjs +3 -3
- package/esm2020/lib/services/http/property/borrowing-report/borrowing-report.service.mjs +3 -3
- package/esm2020/lib/services/http/property/property-category/property-category.service.mjs +3 -3
- package/esm2020/lib/services/http/property/property-category-movement/property-category-movement.service.mjs +3 -3
- package/esm2020/lib/services/http/property/property-document/property-document.service.mjs +3 -3
- package/esm2020/lib/services/http/property/property-sale/property-sale.service.mjs +3 -3
- package/esm2020/lib/services/http/property/property-share/property-share.service.mjs +3 -3
- package/esm2020/lib/services/http/property/property-valuation/property-valuation.service.mjs +3 -3
- package/esm2020/lib/services/http/property/property.service.mjs +3 -3
- package/esm2020/lib/services/http/rest/rest-old.service.mjs +3 -3
- package/esm2020/lib/services/http/rest/rest.service.mjs +3 -3
- package/esm2020/lib/services/http/service-notification/service-notification.service.mjs +3 -3
- package/esm2020/lib/services/http/setup-item/setup-item.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/bas-report/bas-report.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-business/sole-business.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-business-activity/sole-business-activity.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-business-loss/sole-business-loss.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-contact/sole-contact.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-details/sole-details.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-invoice/sole-invoice.service.mjs +3 -3
- package/esm2020/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.mjs +3 -3
- package/esm2020/lib/services/http/subscription/service-payment/service-payment.service.mjs +3 -3
- package/esm2020/lib/services/http/subscription/service-payment-method/service-payment-method.service.mjs +3 -3
- package/esm2020/lib/services/http/subscription/service-price/service-price.service.mjs +3 -3
- package/esm2020/lib/services/http/subscription/service-product/service-product.service.mjs +3 -3
- package/esm2020/lib/services/http/subscription/service-subscription/subscription.service.mjs +3 -3
- package/esm2020/lib/services/http/tax-review/tax-review-history/tax-review-history.service.mjs +3 -3
- package/esm2020/lib/services/http/tax-review/tax-review.service.mjs +3 -3
- package/esm2020/lib/services/http/tax-summary/tax-summary.service.mjs +3 -3
- package/esm2020/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.mjs +3 -3
- package/esm2020/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.mjs +3 -3
- package/esm2020/lib/services/http/transaction/transaction.service.mjs +3 -3
- package/esm2020/lib/services/http/tutorial-video/tutorial-video.service.mjs +3 -3
- package/esm2020/lib/services/http/user/financial-year/financial-year.service.mjs +3 -3
- package/esm2020/lib/services/http/user/user-event-setting/user-event-setting.service.mjs +3 -3
- package/esm2020/lib/services/http/user/user-event-type/user-event-type.service.mjs +3 -3
- package/esm2020/lib/services/http/user/user.service.mjs +3 -3
- package/esm2020/lib/services/http/user/users-invite/users-invite.service.mjs +3 -3
- package/esm2020/lib/services/http/vehicle/vehicle-claim-details.service.mjs +4 -21
- package/esm2020/lib/services/http/vehicle/vehicle-claim.service.mjs +6 -22
- package/esm2020/lib/services/http/vehicle/vehicle-logbook/vehicle-logbook.service.mjs +3 -3
- package/esm2020/lib/services/http/vehicle/vehicle.service.mjs +3 -3
- package/esm2020/lib/services/index.mjs +1 -2
- package/esm2020/lib/services/intercom/intercom.service.mjs +3 -3
- package/esm2020/lib/services/json/chart-accounts/chart-accounts-value.service.mjs +3 -3
- package/esm2020/lib/services/json/holding/holding-type-exchange.service.mjs +3 -3
- package/esm2020/lib/services/json/income-source/income-source-type.service.mjs +3 -3
- package/esm2020/lib/services/json/tax-exemption/tax-exemption.service.mjs +3 -3
- package/esm2020/lib/services/json/tax-return/tax-return-item.service.mjs +3 -3
- package/esm2020/lib/services/mixpanel/mixpanel.service.mjs +3 -3
- package/esm2020/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.mjs +3 -3
- package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.mjs +3 -3
- package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.mjs +3 -3
- package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-table.service.mjs +3 -3
- package/esm2020/lib/services/preloader/preloader.service.mjs +3 -3
- package/esm2020/lib/services/property/corelogic/corelogic.service.mjs +3 -3
- package/esm2020/lib/services/property/equity-position-chart/equity-position-chart.service.mjs +3 -3
- package/esm2020/lib/services/property/property-calculation/property-calculation.service.mjs +3 -3
- package/esm2020/lib/services/report/property/property-transaction-report.service.mjs +3 -3
- package/esm2020/lib/services/toast/toast.service.mjs +3 -3
- package/esm2020/lib/services/transaction/transaction-calculation.service.mjs +3 -3
- package/esm2020/lib/services/user/user-switcher.service.mjs +3 -3
- package/esm2020/lib/services/xlsx/xlsx.service.mjs +3 -3
- package/esm2020/lib/tt-core.module.mjs +4 -4
- package/esm2020/lib/validators/unique-email.validator.mjs +3 -3
- package/fesm2015/taxtank-core.mjs +503 -589
- package/fesm2015/taxtank-core.mjs.map +1 -1
- package/fesm2020/taxtank-core.mjs +503 -589
- package/fesm2020/taxtank-core.mjs.map +1 -1
- package/lib/collections/vehicle/best-vehicle-logbook.collection.d.ts +49 -0
- package/lib/collections/vehicle/index.d.ts +1 -0
- package/lib/collections/vehicle/vehicle-logbook.collection.d.ts +7 -13
- package/lib/models/vehicle/index.d.ts +0 -1
- package/lib/models/vehicle/vehicle-logbook.d.ts +0 -17
- package/lib/services/http/vehicle/vehicle-claim-details.service.d.ts +1 -8
- package/lib/services/http/vehicle/vehicle-claim.service.d.ts +0 -5
- package/lib/services/index.d.ts +0 -1
- package/package.json +1 -1
- package/esm2020/lib/models/vehicle/logbook-period.mjs +0 -25
- package/esm2020/lib/services/vehicle/index.mjs +0 -2
- package/esm2020/lib/services/vehicle/logbook-best-period.service.mjs +0 -71
- package/lib/models/vehicle/logbook-period.d.ts +0 -16
- package/lib/services/vehicle/index.d.ts +0 -1
- package/lib/services/vehicle/logbook-best-period.service.d.ts +0 -28
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { VehicleLogbookCollection } from './vehicle-logbook.collection';
|
|
2
|
+
import { DateRange } from 'moment-range';
|
|
3
|
+
import round from 'lodash/round';
|
|
4
|
+
import last from 'lodash/last';
|
|
5
|
+
/**
|
|
6
|
+
* Special logbook collection that contains logbooks from date period with the highest work usage percent
|
|
7
|
+
* Docs: https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/211517441/Logbook+Vehicle
|
|
8
|
+
*/
|
|
9
|
+
export class BestVehicleLogbookCollection extends VehicleLogbookCollection {
|
|
10
|
+
/**
|
|
11
|
+
* constructor is private because we want to prevent collection initialization via 'new' operator.
|
|
12
|
+
* We should create instances only with fromLogbooks method
|
|
13
|
+
*/
|
|
14
|
+
constructor(logbooks) {
|
|
15
|
+
super([]);
|
|
16
|
+
if (!this.isBestPeriodExist(logbooks)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this.calculateBestPeriod(logbooks);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Best period may be calculated only when user has logbooks minimum for VehicleLogbook.bestPeriodWeeks
|
|
23
|
+
*/
|
|
24
|
+
isBestPeriodExist(logbooks = this) {
|
|
25
|
+
if (logbooks.length < 2) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return BestVehicleLogbookCollection.periodDuration < (logbooks.last.date.getTime() - logbooks.first.date.getTime());
|
|
29
|
+
}
|
|
30
|
+
getWorkUsageByClaim(claim) {
|
|
31
|
+
const claimKilometers = this.getByVehicleClaim(claim).getClaimableLogbooks().kilometers;
|
|
32
|
+
return round(this.workUsage * (claimKilometers / this.kilometers), 2);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Set Date Range with the biggest work usage percent
|
|
36
|
+
* Range duration is defined as BestVehicleLogbookCollection.periodDuration by the ATO
|
|
37
|
+
*
|
|
38
|
+
* Algorithm:
|
|
39
|
+
* Claimable logbooks or claimable trips - work/business logbook items.
|
|
40
|
+
* We should work with dates from the first to the last trip (include personal trips).
|
|
41
|
+
* Get date ranges starts on each claimable trip, all other ranges are definetily worst.
|
|
42
|
+
* Also get extra date range which ends with the last claimable trip.
|
|
43
|
+
* Get all trips included to each date range.
|
|
44
|
+
* Find and return range with the biggest workUsage percent.
|
|
45
|
+
*/
|
|
46
|
+
calculateBestPeriod(logbooks) {
|
|
47
|
+
// get a list of date ranges that could potentially be the best
|
|
48
|
+
const periods = this.getPeriods(logbooks.getClaimableLogbooks());
|
|
49
|
+
periods.forEach((period) => {
|
|
50
|
+
const logbooksInPeriod = logbooks.filterByRange('date', period.start.toDate(), period.end.toDate());
|
|
51
|
+
if (!this.period || (this.workUsage < logbooksInPeriod.workUsage)) {
|
|
52
|
+
this.period = period;
|
|
53
|
+
this.items = logbooksInPeriod.toArray();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// get list of date ranges for each of passed logbook
|
|
58
|
+
getPeriods(logbooks) {
|
|
59
|
+
// get a list of date ranges that could potentially be the best
|
|
60
|
+
const periods = logbooks
|
|
61
|
+
// skip logbooks whose range ends after the last logbook
|
|
62
|
+
.filter((logbook) => this.getPeriodByLogbook(logbook).end.toDate() < logbooks.last.date)
|
|
63
|
+
.map((logbook) => this.getPeriodByLogbook(logbook));
|
|
64
|
+
// skip if the last logbook already included to the last existing date range
|
|
65
|
+
if (last(periods).end.toDate() < logbooks.last.date) {
|
|
66
|
+
// add extra date range for the last claimable logbook
|
|
67
|
+
periods.push(this.getPeriodByLogbook(logbooks.last, true));
|
|
68
|
+
}
|
|
69
|
+
return periods;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get claimable date range for passed logbook
|
|
73
|
+
* @param logbook logbook instance for range calculation
|
|
74
|
+
* @param isBackward Flag false - range for logbook + duration; flag true - range for logbook - duration. Used for extra case, when we should add an extra date range for the last logbook
|
|
75
|
+
*/
|
|
76
|
+
getPeriodByLogbook(logbook, isBackward = false) {
|
|
77
|
+
if (isBackward) {
|
|
78
|
+
return new DateRange([new Date(logbook.date.getTime() - BestVehicleLogbookCollection.periodDuration), logbook.date]);
|
|
79
|
+
}
|
|
80
|
+
return new DateRange([logbook.date, new Date(logbook.date.getTime() + BestVehicleLogbookCollection.periodDuration)]);
|
|
81
|
+
}
|
|
82
|
+
static fromLogbooks(logbooks) {
|
|
83
|
+
const collection = new BestVehicleLogbookCollection(logbooks);
|
|
84
|
+
return collection.isBestPeriodExist(logbooks) ? collection : null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Logbook claimable period duration in milliseconds.
|
|
89
|
+
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/211517441/Logbook+Vehicle
|
|
90
|
+
*/
|
|
91
|
+
BestVehicleLogbookCollection.periodDuration = 12 * 7 * 24 * 3600 * 1000;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdC12ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy92ZWhpY2xlL2Jlc3QtdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBRS9COzs7R0FHRztBQUNILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSx3QkFBd0I7SUFZeEU7OztPQUdHO0lBQ0gsWUFBb0IsUUFBa0M7UUFDcEQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRVYsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsV0FBcUMsSUFBSTtRQUN6RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLDRCQUE0QixDQUFDLGNBQWMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQW1CO1FBQ3JDLE1BQU0sZUFBZSxHQUFXLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUVoRyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSyxtQkFBbUIsQ0FBQyxRQUFrQztRQUM1RCwrREFBK0Q7UUFDL0QsTUFBTSxPQUFPLEdBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUU5RSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBaUIsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sZ0JBQWdCLEdBQTZCLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRTlILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxxREFBcUQ7SUFDN0MsVUFBVSxDQUFDLFFBQWtDO1FBQ25ELCtEQUErRDtRQUMvRCxNQUFNLE9BQU8sR0FBZ0IsUUFBUTtZQUNuQyx3REFBd0Q7YUFDdkQsTUFBTSxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN2RyxHQUFHLENBQUMsQ0FBQyxPQUF1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUdwRSw0RUFBNEU7UUFDNUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ25ELHNEQUFzRDtZQUN0RCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDNUQ7UUFFSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLE9BQXVCLEVBQUUsYUFBc0IsS0FBSztRQUM3RSxJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLDRCQUE0QixDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3RIO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBa0M7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5RCxPQUFPLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsQ0FBQzs7QUF2R0Q7OztHQUdHO0FBQ0ksMkNBQWMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVoaWNsZUNsYWltLCBWZWhpY2xlTG9nYm9vayB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gfSBmcm9tICcuL3ZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJ21vbWVudC1yYW5nZSc7XG5pbXBvcnQgcm91bmQgZnJvbSAnbG9kYXNoL3JvdW5kJztcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcblxuLyoqXG4gKiBTcGVjaWFsIGxvZ2Jvb2sgY29sbGVjdGlvbiB0aGF0IGNvbnRhaW5zIGxvZ2Jvb2tzIGZyb20gZGF0ZSBwZXJpb2Qgd2l0aCB0aGUgaGlnaGVzdCB3b3JrIHVzYWdlIHBlcmNlbnRcbiAqIERvY3M6IGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjExNTE3NDQxL0xvZ2Jvb2srVmVoaWNsZVxuICovXG5leHBvcnQgY2xhc3MgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBMb2dib29rIGNsYWltYWJsZSBwZXJpb2QgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxMTUxNzQ0MS9Mb2dib29rK1ZlaGljbGVcbiAgICovXG4gIHN0YXRpYyBwZXJpb2REdXJhdGlvbiA9IDEyICogNyAqIDI0ICogMzYwMCAqIDEwMDA7XG5cbiAgLyoqXG4gICAqIERhdGUgcmFuZ2Ugd2l0aCB0aGUgYmlnZ2VzdCB3b3JrIHVzYWdlIHBlcmNlbnRcbiAgICovXG4gIHBlcmlvZDogRGF0ZVJhbmdlO1xuXG4gIC8qKlxuICAgKiBjb25zdHJ1Y3RvciBpcyBwcml2YXRlIGJlY2F1c2Ugd2Ugd2FudCB0byBwcmV2ZW50IGNvbGxlY3Rpb24gaW5pdGlhbGl6YXRpb24gdmlhICduZXcnIG9wZXJhdG9yLlxuICAgKiBXZSBzaG91bGQgY3JlYXRlIGluc3RhbmNlcyBvbmx5IHdpdGggZnJvbUxvZ2Jvb2tzIG1ldGhvZFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihsb2dib29rczogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uKSB7XG4gICAgc3VwZXIoW10pOyBcblxuICAgIGlmICghdGhpcy5pc0Jlc3RQZXJpb2RFeGlzdChsb2dib29rcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNhbGN1bGF0ZUJlc3RQZXJpb2QobG9nYm9va3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJlc3QgcGVyaW9kIG1heSBiZSBjYWxjdWxhdGVkIG9ubHkgd2hlbiB1c2VyIGhhcyBsb2dib29rcyBtaW5pbXVtIGZvciBWZWhpY2xlTG9nYm9vay5iZXN0UGVyaW9kV2Vla3NcbiAgICovXG4gIGlzQmVzdFBlcmlvZEV4aXN0KGxvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gPSB0aGlzKTogYm9vbGVhbiB7XG4gICAgaWYgKGxvZ2Jvb2tzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5wZXJpb2REdXJhdGlvbiA8IChsb2dib29rcy5sYXN0LmRhdGUuZ2V0VGltZSgpIC0gbG9nYm9va3MuZmlyc3QuZGF0ZS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgZ2V0V29ya1VzYWdlQnlDbGFpbShjbGFpbTogVmVoaWNsZUNsYWltKTogbnVtYmVyIHtcbiAgICBjb25zdCBjbGFpbUtpbG9tZXRlcnM6IG51bWJlciA9IHRoaXMuZ2V0QnlWZWhpY2xlQ2xhaW0oY2xhaW0pLmdldENsYWltYWJsZUxvZ2Jvb2tzKCkua2lsb21ldGVycztcblxuICAgIHJldHVybiByb3VuZCh0aGlzLndvcmtVc2FnZSAqIChjbGFpbUtpbG9tZXRlcnMgLyB0aGlzLmtpbG9tZXRlcnMpLCAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgRGF0ZSBSYW5nZSB3aXRoIHRoZSBiaWdnZXN0IHdvcmsgdXNhZ2UgcGVyY2VudFxuICAgKiBSYW5nZSBkdXJhdGlvbiBpcyBkZWZpbmVkIGFzIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24ucGVyaW9kRHVyYXRpb24gYnkgdGhlIEFUT1xuICAgKiBcbiAgICogQWxnb3JpdGhtOlxuICAgKiBDbGFpbWFibGUgbG9nYm9va3Mgb3IgY2xhaW1hYmxlIHRyaXBzIC0gd29yay9idXNpbmVzcyBsb2dib29rIGl0ZW1zLlxuICAgKiBXZSBzaG91bGQgd29yayB3aXRoIGRhdGVzIGZyb20gdGhlIGZpcnN0IHRvIHRoZSBsYXN0IHRyaXAgKGluY2x1ZGUgcGVyc29uYWwgdHJpcHMpLlxuICAgKiBHZXQgZGF0ZSByYW5nZXMgc3RhcnRzIG9uIGVhY2ggY2xhaW1hYmxlIHRyaXAsIGFsbCBvdGhlciByYW5nZXMgYXJlIGRlZmluZXRpbHkgd29yc3QuXG4gICAqIEFsc28gZ2V0IGV4dHJhIGRhdGUgcmFuZ2Ugd2hpY2ggZW5kcyB3aXRoIHRoZSBsYXN0IGNsYWltYWJsZSB0cmlwLlxuICAgKiBHZXQgYWxsIHRyaXBzIGluY2x1ZGVkIHRvIGVhY2ggZGF0ZSByYW5nZS5cbiAgICogRmluZCBhbmQgcmV0dXJuIHJhbmdlIHdpdGggdGhlIGJpZ2dlc3Qgd29ya1VzYWdlIHBlcmNlbnQuXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZUJlc3RQZXJpb2QobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IHZvaWQge1xuICAgIC8vIGdldCBhIGxpc3Qgb2YgZGF0ZSByYW5nZXMgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBiZSB0aGUgYmVzdFxuICAgIGNvbnN0IHBlcmlvZHM6IERhdGVSYW5nZVtdID0gdGhpcy5nZXRQZXJpb2RzKGxvZ2Jvb2tzLmdldENsYWltYWJsZUxvZ2Jvb2tzKCkpO1xuXG4gICAgcGVyaW9kcy5mb3JFYWNoKChwZXJpb2Q6IERhdGVSYW5nZSkgPT4ge1xuICAgICAgY29uc3QgbG9nYm9va3NJblBlcmlvZDogVmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uID0gbG9nYm9va3MuZmlsdGVyQnlSYW5nZSgnZGF0ZScsIHBlcmlvZC5zdGFydC50b0RhdGUoKSwgcGVyaW9kLmVuZC50b0RhdGUoKSk7XG5cbiAgICAgIGlmICghdGhpcy5wZXJpb2QgfHwgKHRoaXMud29ya1VzYWdlIDwgbG9nYm9va3NJblBlcmlvZC53b3JrVXNhZ2UpKSB7XG4gICAgICAgIHRoaXMucGVyaW9kID0gcGVyaW9kO1xuICAgICAgICB0aGlzLml0ZW1zID0gbG9nYm9va3NJblBlcmlvZC50b0FycmF5KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBnZXQgbGlzdCBvZiBkYXRlIHJhbmdlcyBmb3IgZWFjaCBvZiBwYXNzZWQgbG9nYm9va1xuICBwcml2YXRlIGdldFBlcmlvZHMobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IERhdGVSYW5nZVtdIHtcbiAgICAvLyBnZXQgYSBsaXN0IG9mIGRhdGUgcmFuZ2VzIHRoYXQgY291bGQgcG90ZW50aWFsbHkgYmUgdGhlIGJlc3RcbiAgICBjb25zdCBwZXJpb2RzOiBEYXRlUmFuZ2VbXSA9IGxvZ2Jvb2tzXG4gICAgICAvLyBza2lwIGxvZ2Jvb2tzIHdob3NlIHJhbmdlIGVuZHMgYWZ0ZXIgdGhlIGxhc3QgbG9nYm9va1xuICAgICAgLmZpbHRlcigobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spID0+IHRoaXMuZ2V0UGVyaW9kQnlMb2dib29rKGxvZ2Jvb2spLmVuZC50b0RhdGUoKSA8IGxvZ2Jvb2tzLmxhc3QuZGF0ZSlcbiAgICAgIC5tYXAoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiB0aGlzLmdldFBlcmlvZEJ5TG9nYm9vayhsb2dib29rKSk7XG5cblxuICAgICAgLy8gc2tpcCBpZiB0aGUgbGFzdCBsb2dib29rIGFscmVhZHkgaW5jbHVkZWQgdG8gdGhlIGxhc3QgZXhpc3RpbmcgZGF0ZSByYW5nZVxuICAgICAgaWYgKGxhc3QocGVyaW9kcykuZW5kLnRvRGF0ZSgpIDwgbG9nYm9va3MubGFzdC5kYXRlKSB7XG4gICAgICAgIC8vIGFkZCBleHRyYSBkYXRlIHJhbmdlIGZvciB0aGUgbGFzdCBjbGFpbWFibGUgbG9nYm9va1xuICAgICAgICBwZXJpb2RzLnB1c2godGhpcy5nZXRQZXJpb2RCeUxvZ2Jvb2sobG9nYm9va3MubGFzdCwgdHJ1ZSkpO1xuICAgICAgfVxuXG4gICAgcmV0dXJuIHBlcmlvZHM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNsYWltYWJsZSBkYXRlIHJhbmdlIGZvciBwYXNzZWQgbG9nYm9va1xuICAgKiBAcGFyYW0gbG9nYm9vayBsb2dib29rIGluc3RhbmNlIGZvciByYW5nZSBjYWxjdWxhdGlvblxuICAgKiBAcGFyYW0gaXNCYWNrd2FyZCBGbGFnIGZhbHNlIC0gcmFuZ2UgZm9yIGxvZ2Jvb2sgKyBkdXJhdGlvbjsgZmxhZyB0cnVlIC0gcmFuZ2UgZm9yIGxvZ2Jvb2sgLSBkdXJhdGlvbi4gVXNlZCBmb3IgZXh0cmEgY2FzZSwgd2hlbiB3ZSBzaG91bGQgYWRkIGFuIGV4dHJhIGRhdGUgcmFuZ2UgZm9yIHRoZSBsYXN0IGxvZ2Jvb2tcbiAgICovXG4gIHByaXZhdGUgZ2V0UGVyaW9kQnlMb2dib29rKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rLCBpc0JhY2t3YXJkOiBib29sZWFuID0gZmFsc2UpOiBEYXRlUmFuZ2Uge1xuICAgIGlmIChpc0JhY2t3YXJkKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGVSYW5nZShbbmV3IERhdGUobG9nYm9vay5kYXRlLmdldFRpbWUoKSAtIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24ucGVyaW9kRHVyYXRpb24pLCBsb2dib29rLmRhdGVdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGVSYW5nZShbbG9nYm9vay5kYXRlLCBuZXcgRGF0ZShsb2dib29rLmRhdGUuZ2V0VGltZSgpICsgQmVzdFZlaGljbGVMb2dib29rQ29sbGVjdGlvbi5wZXJpb2REdXJhdGlvbildKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTG9nYm9va3MobG9nYm9va3M6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbik6IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gfCBudWxsIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gbmV3IEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24obG9nYm9va3MpO1xuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uaXNCZXN0UGVyaW9kRXhpc3QobG9nYm9va3MpID8gY29sbGVjdGlvbiA6IG51bGw7IFxuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './best-vehicle-logbook.collection';
|
|
1
2
|
export * from './vehicle-claim.collection';
|
|
2
3
|
export * from './vehicle-logbook.collection';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmVzdC12ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUtY2xhaW0uY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcbiJdfQ==
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import { plainToClass } from 'class-transformer';
|
|
2
1
|
import { Collection } from '../collection';
|
|
3
|
-
import { LogbookPeriod, VehicleLogbook } from '../../models';
|
|
4
2
|
import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
|
|
5
3
|
import round from 'lodash/round';
|
|
4
|
+
import { BestVehicleLogbookCollection } from './best-vehicle-logbook.collection';
|
|
6
5
|
export class VehicleLogbookCollection extends Collection {
|
|
7
|
-
/**
|
|
8
|
-
* Best period may be calculated only when user has logbooks minimum for VehicleLogbook.bestPeriodWeeks
|
|
9
|
-
* @TODO Vik: Best period: move this and related logic to backend
|
|
10
|
-
*/
|
|
11
|
-
isBestPeriodExist() {
|
|
12
|
-
if (this.items.length < 2) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
return VehicleLogbook.bestPeriodDuration < (this.last.date.getTime() - this.first.date.getTime());
|
|
16
|
-
}
|
|
17
6
|
/**
|
|
18
7
|
* Get collection of non-personal logbooks (work-related, sole-related).
|
|
19
8
|
* @TODO Vik: Best period: move this and related logic to backend
|
|
@@ -21,49 +10,6 @@ export class VehicleLogbookCollection extends Collection {
|
|
|
21
10
|
getClaimableLogbooks() {
|
|
22
11
|
return this.filterBy('isPersonal', false);
|
|
23
12
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Get Logbook Period with the biggest work usage percent
|
|
26
|
-
* Best period duration is defined as VehicleLogbook.bestPeriodWeeks by the ATO
|
|
27
|
-
* @TODO Vik: Best period: move this and related logic to backend
|
|
28
|
-
*/
|
|
29
|
-
getBestPeriod() {
|
|
30
|
-
if (!this.isBestPeriodExist()) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
let bestPeriod;
|
|
34
|
-
// get list of all logbooks available for best period calculation
|
|
35
|
-
const claimableLogbooks = this.getClaimableLogbooks().toArray();
|
|
36
|
-
for (let i = 0; i < claimableLogbooks.length; i++) {
|
|
37
|
-
// no sense to check next logbooks because we already get the end of the year
|
|
38
|
-
if (bestPeriod && bestPeriod.isEndOfYear()) {
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
// get date range started from current handling logbook date
|
|
42
|
-
const dateRange = claimableLogbooks[i].getPeriod();
|
|
43
|
-
// get all logbooks included in current logbook period
|
|
44
|
-
const logbooksInRange = this.filterByRange('date', dateRange.start, dateRange.end);
|
|
45
|
-
const currentPeriod = plainToClass(LogbookPeriod, {
|
|
46
|
-
from: dateRange.start,
|
|
47
|
-
to: dateRange.end,
|
|
48
|
-
kilometers: logbooksInRange.getClaimableLogbooks().kilometers,
|
|
49
|
-
workUsage: logbooksInRange.getWorkUsage(),
|
|
50
|
-
logbooks: logbooksInRange
|
|
51
|
-
});
|
|
52
|
-
// compare with previous best period and overwrite if needs
|
|
53
|
-
if (!bestPeriod || currentPeriod.workUsage > bestPeriod.workUsage) {
|
|
54
|
-
bestPeriod = currentPeriod;
|
|
55
|
-
}
|
|
56
|
-
else if (currentPeriod.workUsage === bestPeriod.workUsage) {
|
|
57
|
-
// if work usage is the same then get period with the biggest work usage for work tank
|
|
58
|
-
const oldWorkUsage = bestPeriod.logbooks.filterBy('tankType', TankTypeEnum.WORK).getWorkUsage();
|
|
59
|
-
const currentWorkUsage = currentPeriod.logbooks.filterBy('tankType', TankTypeEnum.WORK).getWorkUsage();
|
|
60
|
-
if (oldWorkUsage < currentWorkUsage) {
|
|
61
|
-
bestPeriod = currentPeriod;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return bestPeriod;
|
|
66
|
-
}
|
|
67
13
|
/**
|
|
68
14
|
* Calculate total kilometers traveled
|
|
69
15
|
*/
|
|
@@ -74,8 +20,13 @@ export class VehicleLogbookCollection extends Collection {
|
|
|
74
20
|
* Calculate work usage (percent of business-related kilometers from total kilometers)
|
|
75
21
|
* @TODO Alex: TT-2089 replace with getter
|
|
76
22
|
*/
|
|
77
|
-
|
|
78
|
-
|
|
23
|
+
get workUsage() {
|
|
24
|
+
if (!this.length) {
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
const workKilometers = this.items
|
|
28
|
+
.filter((logbook) => !logbook.isPersonal)
|
|
29
|
+
.reduce((sum, logbook) => sum + logbook.kilometers, 0);
|
|
79
30
|
return round(workKilometers / this.kilometers * 100, 2);
|
|
80
31
|
}
|
|
81
32
|
/**
|
|
@@ -88,5 +39,11 @@ export class VehicleLogbookCollection extends Collection {
|
|
|
88
39
|
// work tank may have only one vehicle claim, so we need to filter by tank type
|
|
89
40
|
: this.filterBy('tankType', TankTypeEnum.WORK);
|
|
90
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* get collection of logbooks with the biggest work usage for {@link BestVehicleLogbookCollection.periodDuration}
|
|
44
|
+
*/
|
|
45
|
+
getBest() {
|
|
46
|
+
return BestVehicleLogbookCollection.fromLogbooks(this);
|
|
47
|
+
}
|
|
91
48
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFVBQTBCO0lBQ3RFOzs7T0FHRztJQUNILG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQzlCLE1BQU0sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQzthQUN4RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RCxPQUFPLEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsWUFBMEI7UUFDMUMsT0FBTyxZQUFZLENBQUMsVUFBVSxFQUFFO1lBQzlCLGtGQUFrRjtZQUNsRixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEQsK0VBQStFO1lBQy9FLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sNEJBQTRCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbSwgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHJvdW5kIGZyb20gJ2xvZGFzaC9yb3VuZCc7XG5pbXBvcnQgeyBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIH0gZnJvbSAnLi9iZXN0LXZlaGljbGUtbG9nYm9vay5jb2xsZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248VmVoaWNsZUxvZ2Jvb2s+IHtcbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIG5vbi1wZXJzb25hbCBsb2dib29rcyAod29yay1yZWxhdGVkLCBzb2xlLXJlbGF0ZWQpLlxuICAgKiBAVE9ETyBWaWs6IEJlc3QgcGVyaW9kOiBtb3ZlIHRoaXMgYW5kIHJlbGF0ZWQgbG9naWMgdG8gYmFja2VuZFxuICAgKi9cbiAgZ2V0Q2xhaW1hYmxlTG9nYm9va3MoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2lzUGVyc29uYWwnLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRvdGFsIGtpbG9tZXRlcnMgdHJhdmVsZWRcbiAgICovXG4gIGdldCBraWxvbWV0ZXJzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2tpbG9tZXRlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgd29yayB1c2FnZSAocGVyY2VudCBvZiBidXNpbmVzcy1yZWxhdGVkIGtpbG9tZXRlcnMgZnJvbSB0b3RhbCBraWxvbWV0ZXJzKVxuICAgKiBAVE9ETyBBbGV4OiBUVC0yMDg5IHJlcGxhY2Ugd2l0aCBnZXR0ZXJcbiAgICovXG4gIGdldCB3b3JrVXNhZ2UoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrS2lsb21ldGVycyA9IHRoaXMuaXRlbXNcbiAgICAgIC5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiAhbG9nYm9vay5pc1BlcnNvbmFsKVxuICAgICAgLnJlZHVjZSgoc3VtLCBsb2dib29rKSA9PiBzdW0gKyBsb2dib29rLmtpbG9tZXRlcnMsIDApO1xuXG4gICAgcmV0dXJuIHJvdW5kKHdvcmtLaWxvbWV0ZXJzIC8gdGhpcy5raWxvbWV0ZXJzICogMTAwLCAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBsb2dib29rcyByZWxhdGVkIHRvIHBhc3NlZCB2ZWhpY2xlIGNsYWltXG4gICAqL1xuICBnZXRCeVZlaGljbGVDbGFpbSh2ZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSk6IHRoaXMge1xuICAgIHJldHVybiB2ZWhpY2xlQ2xhaW0uaXNTb2xlVGFuaygpXG4gICAgICAvLyBzb2xlIHRhbmsgbWF5IGhhdmUgbXVsdGlwbGUgdmVoaWNsZSBjbGFpbXMsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGJ5IGJ1c2luZXNzLmlkXG4gICAgICA/IHRoaXMuZmlsdGVyQnkoJ2J1c2luZXNzLmlkJywgdmVoaWNsZUNsYWltLmJ1c2luZXNzLmlkKVxuICAgICAgLy8gd29yayB0YW5rIG1heSBoYXZlIG9ubHkgb25lIHZlaGljbGUgY2xhaW0sIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGJ5IHRhbmsgdHlwZVxuICAgICAgOiB0aGlzLmZpbHRlckJ5KCd0YW5rVHlwZScsIFRhbmtUeXBlRW51bS5XT1JLKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgY29sbGVjdGlvbiBvZiBsb2dib29rcyB3aXRoIHRoZSBiaWdnZXN0IHdvcmsgdXNhZ2UgZm9yIHtAbGluayBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uLnBlcmlvZER1cmF0aW9ufVxuICAgKi9cbiAgZ2V0QmVzdCgpOiBCZXN0VmVoaWNsZUxvZ2Jvb2tDb2xsZWN0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuIEJlc3RWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24uZnJvbUxvZ2Jvb2tzKHRoaXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -23,9 +23,9 @@ export class BasiqClientIdInterceptor {
|
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
BasiqClientIdInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
27
|
-
BasiqClientIdInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
26
|
+
BasiqClientIdInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqClientIdInterceptor, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
|
+
BasiqClientIdInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqClientIdInterceptor });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqClientIdInterceptor, decorators: [{
|
|
29
29
|
type: Injectable
|
|
30
30
|
}], ctorParameters: function () { return [{ type: i1.UserService }]; } });
|
|
31
31
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtY2xpZW50LWlkLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9iYXNpcS1jbGllbnQtaWQuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFHekU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1UsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELCtEQUErRDtRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxhQUFhLENBQUMsRUFBRTtZQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDNUI7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUN4QyxRQUFRLENBQUMsQ0FBQyxhQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FDckYsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBNkIsRUFBRSxhQUFxQjtRQUNoRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDbkIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUhBckJVLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNpcVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEludGVyY2VwdG9yIHdoaWNoIGNoZWNrIGlmIGNsaWVudCdzIGJhc2lxIGlkIGV4aXN0IGFuZCByZXF1ZXN0IGl0IGlmIG5vdFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFzaXFDbGllbnRJZEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICAvLyBDaGVjayBpZiAnY2xpZW50IGlkJyBVUkwgc2VnbWVudCBjb250YWlucyBudWxsIGluc3RlYWQgb2YgaWRcbiAgICBpZiAoIXJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoYCR7QmFzaXFTZXJ2aWNlLmJhc2lxQXBpVXJsfS91c2Vycy9udWxsYCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZUJhc2lxKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKChiYXNpcUNsaWVudElkOiBzdHJpbmcpID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkSWQocmVxdWVzdCwgYmFzaXFDbGllbnRJZCkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZElkKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBiYXNpcUNsaWVudElkOiBzdHJpbmcpOiBIdHRwUmVxdWVzdDx1bmtub3duPiB7XG4gICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoe1xuICAgICAgdXJsOiByZXF1ZXN0LnVybC5yZXBsYWNlKCdudWxsJywgYmFzaXFDbGllbnRJZClcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -25,9 +25,9 @@ export class BasiqTokenInterceptor {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
BasiqTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
29
|
-
BasiqTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
28
|
+
BasiqTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenInterceptor, deps: [{ token: i1.BasiqTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
BasiqTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenInterceptor });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenInterceptor, decorators: [{
|
|
31
31
|
type: Injectable
|
|
32
32
|
}], ctorParameters: function () { return [{ type: i1.BasiqTokenService }]; } });
|
|
33
33
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvaW50ZXJjZXB0b3JzL2Jhc2lxLXRva2VuLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBRXpFOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUNVLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRTlDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN4RCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQzNDLFFBQVEsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUM1RSxDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUE2QixFQUFFLEtBQWlCO1FBQy9ELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsYUFBYSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSzthQUN2QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O2tIQXhCVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzaXFUb2tlbiB9IGZyb20gJy4uL21vZGVscy9iYW5rL2Jhc2lxL2Jhc2lxLXRva2VuJztcbmltcG9ydCB7IEJhc2lxVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHR0cC9iYW5rL2Jhc2lxL2Jhc2lxLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzaXFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHR0cC9iYW5rL2Jhc2lxL2Jhc2lxLnNlcnZpY2UnO1xuXG4vKipcbiAqIEludGVyY2VwdG9yIHdoaWNoIGFkZHMgdXNlcidzIGJhc2lxIHRva2VuIHRvIGFueSBodHRwIHJlcXVlc3QgdG8gYmFzaXEgYXBpXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCYXNpcVRva2VuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYmFzaXFUb2tlblNlcnZpY2U6IEJhc2lxVG9rZW5TZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgLy8gc2tpcCBub24tYmFzaXEgcmVxdWVzdHNcbiAgICBpZiAoIXJlcXVlc3QudXJsLmluY2x1ZGVzKEJhc2lxU2VydmljZS5iYXNpcUFwaVVybCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iYXNpcVRva2VuU2VydmljZS5nZXRGaXJzdCgpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodG9rZW46IEJhc2lxVG9rZW4pID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkVG9rZW4ocmVxdWVzdCwgdG9rZW4pKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUb2tlbihyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgdG9rZW46IEJhc2lxVG9rZW4pOiBIdHRwUmVxdWVzdDx1bmtub3duPiB7XG4gICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoe1xuICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0b2tlbi52YWx1ZVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -30,9 +30,9 @@ export class CorelogicInterceptor {
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
CorelogicInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
34
|
-
CorelogicInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
33
|
+
CorelogicInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: i1.CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
+
CorelogicInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: CorelogicInterceptor });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: CorelogicInterceptor, decorators: [{
|
|
36
36
|
type: Injectable
|
|
37
37
|
}], ctorParameters: function () { return [{ type: i1.CorelogicService }, { type: undefined, decorators: [{
|
|
38
38
|
type: Inject,
|
|
@@ -31,9 +31,9 @@ export class FinancialYearInterceptor {
|
|
|
31
31
|
return next.handle(clonedReq);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
FinancialYearInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
35
|
-
FinancialYearInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
34
|
+
FinancialYearInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
FinancialYearInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: FinancialYearInterceptor });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
|
|
37
37
|
type: Injectable
|
|
38
38
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
39
39
|
type: Inject,
|
|
@@ -10,9 +10,9 @@ import { BasiqClientIdInterceptor } from './basiq-client-id.interceptor';
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class InterceptorsModule {
|
|
12
12
|
}
|
|
13
|
-
InterceptorsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
14
|
-
InterceptorsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
15
|
-
InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
13
|
+
InterceptorsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
InterceptorsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: InterceptorsModule });
|
|
15
|
+
InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: InterceptorsModule, providers: [
|
|
16
16
|
{
|
|
17
17
|
provide: HTTP_INTERCEPTORS,
|
|
18
18
|
useClass: CorelogicInterceptor,
|
|
@@ -50,7 +50,7 @@ InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
|
|
|
50
50
|
multi: true
|
|
51
51
|
}
|
|
52
52
|
] });
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: InterceptorsModule, decorators: [{
|
|
54
54
|
type: NgModule,
|
|
55
55
|
args: [{
|
|
56
56
|
providers: [
|
|
@@ -127,9 +127,9 @@ export class JwtInterceptor {
|
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
131
|
-
JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
130
|
+
JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }, { token: i1.AuthService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
131
|
+
JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtInterceptor });
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtInterceptor, decorators: [{
|
|
133
133
|
type: Injectable
|
|
134
134
|
}], ctorParameters: function () { return [{ type: i1.JwtService }, { type: i1.AuthService }, { type: undefined, decorators: [{
|
|
135
135
|
type: Inject,
|
|
@@ -24,9 +24,9 @@ export class PreloaderInterceptor {
|
|
|
24
24
|
return Object.values(ENDPOINTS).find((endpoint) => endpoint.test(requestPath));
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
PreloaderInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
28
|
-
PreloaderInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
27
|
+
PreloaderInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: PreloaderInterceptor, deps: [{ token: i1.PreloaderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28
|
+
PreloaderInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: PreloaderInterceptor });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: PreloaderInterceptor, decorators: [{
|
|
30
30
|
type: Injectable
|
|
31
31
|
}], ctorParameters: function () { return [{ type: i1.PreloaderService }]; } });
|
|
32
32
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGVyLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9wcmVsb2FkZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFL0Q7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDekMsQ0FBQztJQUVKLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELE1BQU0sUUFBUSxHQUFhLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVwQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM5QixRQUFRLENBQUMsR0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sWUFBWSxDQUFDLFdBQW1CO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQzs7aUhBdkJVLG9CQUFvQjtxSEFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJlbG9hZGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVuZHBvaW50IH0gZnJvbSAnLi4vbW9kZWxzL2VuZHBvaW50L2VuZHBvaW50JztcbmltcG9ydCB7IEVORFBPSU5UUyB9IGZyb20gJy4uL21vZGVscy9lbmRwb2ludC9lbmRwb2ludHMuY29uc3QnO1xuXG4vKipcbiAqIGludGVyY2VwdG9yIGZvciBwcmVsb2FkZXIgaGFuZGxpbmdcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByZWxvYWRlckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByZWxvYWRlclNlcnZpY2U6IFByZWxvYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuICAgIGNvbnN0IGVuZHBvaW50OiBFbmRwb2ludCA9IHRoaXMuZmluZEVuZHBvaW50KGAke3JlcXVlc3QubWV0aG9kfSAke3JlcXVlc3QudXJsfWApO1xuICAgIGlmIChlbmRwb2ludCkge1xuICAgICAgdGhpcy5wcmVsb2FkZXJTZXJ2aWNlLmFkZChlbmRwb2ludCk7XG5cbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5wcmVsb2FkZXJTZXJ2aWNlLmRlbGV0ZShlbmRwb2ludCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVuZHBvaW50KHJlcXVlc3RQYXRoOiBzdHJpbmcpOiBFbmRwb2ludCB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoRU5EUE9JTlRTKS5maW5kKChlbmRwb2ludDogRW5kcG9pbnQpOiBib29sZWFuID0+IGVuZHBvaW50LnRlc3QocmVxdWVzdFBhdGgpKTtcbiAgfVxufVxuIl19
|
|
@@ -29,9 +29,9 @@ export class UserSwitcherInterceptor {
|
|
|
29
29
|
return next.handle(this.switch(request, this.userSwitcherService.get()));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
UserSwitcherInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
33
|
-
UserSwitcherInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
32
|
+
UserSwitcherInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: UserSwitcherInterceptor, deps: [{ token: i1.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
UserSwitcherInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: UserSwitcherInterceptor });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: UserSwitcherInterceptor, decorators: [{
|
|
35
35
|
type: Injectable
|
|
36
36
|
}], ctorParameters: function () { return [{ type: i1.UserSwitcherService }, { type: undefined, decorators: [{
|
|
37
37
|
type: Inject,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export * from './logbook-period';
|
|
2
1
|
export * from './vehicle';
|
|
3
2
|
export * from './vehicle-claim';
|
|
4
3
|
export * from './vehicle-claim-details';
|
|
5
4
|
export * from './vehicle-logbook';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3ZlaGljbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3ZlaGljbGUnO1xuZXhwb3J0ICogZnJvbSAnLi92ZWhpY2xlLWNsYWltJztcbmV4cG9ydCAqIGZyb20gJy4vdmVoaWNsZS1jbGFpbS1kZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdmVoaWNsZS1sb2dib29rJztcbiJdfQ==
|
|
@@ -3,17 +3,6 @@ import { VehicleLogbook as VehicleLogbookBase } from '../../db/Models/vehicle/ve
|
|
|
3
3
|
import { Type } from 'class-transformer';
|
|
4
4
|
import { SoleBusiness } from '../sole';
|
|
5
5
|
import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
|
|
6
|
-
/**
|
|
7
|
-
* moment js import for date range
|
|
8
|
-
* Hack: The library is using not by documentation, but works
|
|
9
|
-
* https://github.com/rotaready/moment-range
|
|
10
|
-
* extendMoment(Moment) cause errors since we updated to Typescript 4 (https://github.com/rotaready/moment-range/issues/238)
|
|
11
|
-
* @TODO Alex: move this import to some global const if we will need it one more time
|
|
12
|
-
*/
|
|
13
|
-
// import * as Moment from 'moment';
|
|
14
|
-
// problem with DateRange and typescript. See more https://github.com/rotaready/moment-range/issues/263
|
|
15
|
-
// const moment = extendMoment(Moment);
|
|
16
|
-
import { DateRange } from 'moment-range';
|
|
17
6
|
export class VehicleLogbook extends VehicleLogbookBase {
|
|
18
7
|
get kilometers() {
|
|
19
8
|
return this.odometerEnd - this.odometerStart;
|
|
@@ -27,27 +16,11 @@ export class VehicleLogbook extends VehicleLogbookBase {
|
|
|
27
16
|
isSoleTank() {
|
|
28
17
|
return !!this.business;
|
|
29
18
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Get logbook period date range from logbook date and weeksInPeriod duration
|
|
32
|
-
*/
|
|
33
|
-
getPeriod() {
|
|
34
|
-
/**
|
|
35
|
-
* Hack: The library is using not by documentation, but works
|
|
36
|
-
* moment-range is broken since we updated Typescript to v4 (https://github.com/rotaready/moment-range/issues/238)
|
|
37
|
-
* extendMoment(Moment) cause error and broke the app
|
|
38
|
-
*/
|
|
39
|
-
return new DateRange([this.date, new Date(this.date.getTime() + VehicleLogbook.bestPeriodDuration)]);
|
|
40
|
-
}
|
|
41
19
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Logbook period duration in milliseconds.
|
|
44
|
-
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/211517441/Logbook+Vehicle
|
|
45
|
-
*/
|
|
46
|
-
VehicleLogbook.bestPeriodDuration = 12 * 7 * 24 * 3600 * 1000;
|
|
47
20
|
__decorate([
|
|
48
21
|
Type(() => Date)
|
|
49
22
|
], VehicleLogbook.prototype, "date", void 0);
|
|
50
23
|
__decorate([
|
|
51
24
|
Type(() => SoleBusiness)
|
|
52
25
|
], VehicleLogbook.prototype, "business", void 0);
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy92ZWhpY2xlL3ZlaGljbGUtbG9nYm9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQU9wRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDbkUsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBcEJHO0lBREQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzs0Q0FDSjtBQUdYO0lBREQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztnREFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVMb2dib29rIGFzIFZlaGljbGVMb2dib29rQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy92ZWhpY2xlL3ZlaGljbGUtbG9nYm9vayc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzIH0gZnJvbSAnLi4vc29sZSc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBWZWhpY2xlTG9nYm9vayBleHRlbmRzIFZlaGljbGVMb2dib29rQmFzZSB7XG4gIEBUeXBlKCgpID0+IERhdGUpXG4gICAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBTb2xlQnVzaW5lc3MpXG4gICAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBnZXQga2lsb21ldGVycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm9kb21ldGVyRW5kIC0gdGhpcy5vZG9tZXRlclN0YXJ0O1xuICB9XG5cbiAgZ2V0IHRhbmtUeXBlKCk6IFRhbmtUeXBlRW51bSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTb2xlVGFuaygpID8gVGFua1R5cGVFbnVtLlNPTEUgOiBUYW5rVHlwZUVudW0uV09SSztcbiAgfVxuXG4gIGlzV29ya1RhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmJ1c2luZXNzO1xuICB9XG5cbiAgaXNTb2xlVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmJ1c2luZXNzO1xuICB9XG59XG4iXX0=
|
|
@@ -11,9 +11,9 @@ export class AppCurrencyPipe extends CurrencyPipe {
|
|
|
11
11
|
return super.transform(value, currencyCode, display, digitsInfo, locale);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
AppCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
15
|
-
AppCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
14
|
+
AppCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AppCurrencyPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
+
AppCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: AppCurrencyPipe, isStandalone: true, name: "appCurrency" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AppCurrencyPipe, decorators: [{
|
|
17
17
|
type: Pipe,
|
|
18
18
|
args: [{
|
|
19
19
|
name: 'appCurrency',
|
|
@@ -158,9 +158,9 @@ export class AccountSetupService {
|
|
|
158
158
|
return this.setItemStatus(this.items.findBy('isBankFeeds', true), this.bankAccountsService.getArray());
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
AccountSetupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
162
|
-
AccountSetupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
161
|
+
AccountSetupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, deps: [{ token: i1.SetupItemService }, { token: i2.PropertyService }, { token: i2.IncomeSourceService }, { token: i2.BankAccountService }, { token: i2.TransactionAllocationService }, { token: i2.VehicleClaimService }, { token: i2.TransactionService }, { token: i2.SoleBusinessService }, { token: i2.HoldingService }, { token: i2.UserService }, { token: i2.ClientMovementService }, { token: i2.ClientInviteService }, { token: i2.EmployeeService }, { token: i2.EmployeeInviteService }, { token: i2.FirmService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
162
|
+
AccountSetupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, providedIn: 'root' });
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, decorators: [{
|
|
164
164
|
type: Injectable,
|
|
165
165
|
args: [{
|
|
166
166
|
providedIn: 'root'
|
|
@@ -20,9 +20,9 @@ export class RewardfulService {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
RewardfulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
24
|
-
RewardfulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
23
|
+
RewardfulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
|
+
RewardfulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, providedIn: 'root' });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, decorators: [{
|
|
26
26
|
type: Injectable,
|
|
27
27
|
args: [{
|
|
28
28
|
providedIn: 'root'
|
|
@@ -37,9 +37,9 @@ export class AssetsService {
|
|
|
37
37
|
return this.http.delete(`${this.environment.apiV2}/${asset.entityType}/${entityId}/${asset.type}/${asset.id}`);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
AssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
41
|
-
AssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
40
|
+
AssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, deps: [{ token: i1.HttpClient }, { token: i2.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
41
|
+
AssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, providedIn: 'root' });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, decorators: [{
|
|
43
43
|
type: Injectable,
|
|
44
44
|
args: [{
|
|
45
45
|
providedIn: 'root'
|
|
@@ -41,9 +41,9 @@ export class AuthService {
|
|
|
41
41
|
location.replace(url);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
45
|
-
AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
44
|
+
AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.MixpanelService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
45
|
+
AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, decorators: [{
|
|
47
47
|
type: Injectable,
|
|
48
48
|
args: [{
|
|
49
49
|
providedIn: 'root'
|
|
@@ -37,9 +37,9 @@ export class JwtService extends JwtHelperService {
|
|
|
37
37
|
return this.getUser().id === userId;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
JwtService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
41
|
-
JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
40
|
+
JwtService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
41
|
+
JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, providedIn: 'root' });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, decorators: [{
|
|
43
43
|
type: Injectable,
|
|
44
44
|
args: [{
|
|
45
45
|
providedIn: 'root'
|
|
@@ -25,9 +25,9 @@ export class BankAccountCalculationService {
|
|
|
25
25
|
return bankAccounts.currentBalance - this.getTaxTankBalance(bankAccounts.getLoanAccounts(), bankTransactions, allocations);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
BankAccountCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
29
|
-
BankAccountCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
28
|
+
BankAccountCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, deps: [{ token: i1.BankTransactionCalculationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
BankAccountCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, providedIn: 'root' });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, decorators: [{
|
|
31
31
|
type: Injectable,
|
|
32
32
|
args: [{
|
|
33
33
|
providedIn: 'root'
|
|
@@ -50,9 +50,9 @@ export class BankTransactionCalculationService {
|
|
|
50
50
|
return allocations.getByBankTransactionsIds(bankTransactions.debitTransactions.getIds()).amount;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
BankTransactionCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
54
|
-
BankTransactionCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
53
|
+
BankTransactionCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
|
+
BankTransactionCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, providedIn: 'root' });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, decorators: [{
|
|
56
56
|
type: Injectable,
|
|
57
57
|
args: [{
|
|
58
58
|
providedIn: 'root'
|
|
@@ -34,9 +34,9 @@ export class DataService {
|
|
|
34
34
|
this.cache = this.createCollectionInstance(this.collectionClass, data.map((item) => this.createModelInstance(item)));
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
38
|
-
DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
37
|
+
DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, providedIn: 'root' });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, decorators: [{
|
|
40
40
|
type: Injectable,
|
|
41
41
|
args: [{
|
|
42
42
|
providedIn: 'root'
|