@golemio/energetics 1.7.1-dev.2195848807 → 1.7.1-dev.2249489220

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/db/migrations/postgresql/20251210082937-ppas-distribution-invoice-data.js +53 -0
  2. package/db/migrations/postgresql/sqls/20251210082937-ppas-distribution-invoice-data-down.sql +3 -0
  3. package/db/migrations/postgresql/sqls/20251210082937-ppas-distribution-invoice-data-up.sql +89 -0
  4. package/dist/input-gateway/transformations/PreCsvInputTransformation.d.ts +1 -1
  5. package/dist/integration-engine/commodity-providers/transformations/PreMeasurementTransformation.d.ts +1 -1
  6. package/dist/integration-engine/commodity-providers/workers/schema/PreEanMeasurementSchema.d.ts +1 -1
  7. package/dist/integration-engine/commodity-providers/workers/tasks/ProcessPreEanMeasurementsTask.d.ts +1 -1
  8. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.d.ts +20 -0
  9. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js +118 -0
  10. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js.map +1 -0
  11. package/dist/integration-engine/enapo/ioc/Di.js +15 -3
  12. package/dist/integration-engine/enapo/ioc/Di.js.map +1 -1
  13. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.d.ts +6 -0
  14. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js +6 -0
  15. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js.map +1 -1
  16. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceDeviceRepository.d.ts +7 -0
  17. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceDeviceRepository.js +35 -0
  18. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceDeviceRepository.js.map +1 -0
  19. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoicePriceRepository.d.ts +7 -0
  20. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoicePriceRepository.js +35 -0
  21. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoicePriceRepository.js.map +1 -0
  22. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceRepository.d.ts +7 -0
  23. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceRepository.js +35 -0
  24. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceRepository.js.map +1 -0
  25. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.d.ts +32 -0
  26. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js +197 -0
  27. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js.map +1 -0
  28. package/dist/integration-engine/enapo/workers/EnapoWorker.js +1 -0
  29. package/dist/integration-engine/enapo/workers/EnapoWorker.js.map +1 -1
  30. package/dist/integration-engine/enapo/workers/interfaces/IEnapoPpasDistributionParams.d.ts +4 -0
  31. package/dist/integration-engine/enapo/{interfaces/predi/IPrediMetadata.js → workers/interfaces/IEnapoPpasDistributionParams.js} +1 -1
  32. package/dist/integration-engine/enapo/workers/interfaces/IEnapoPpasDistributionParams.js.map +1 -0
  33. package/dist/integration-engine/enapo/workers/schema/EnapoPpasDistributionParamsSchema.d.ts +5 -0
  34. package/dist/integration-engine/enapo/workers/schema/EnapoPpasDistributionParamsSchema.js +29 -0
  35. package/dist/integration-engine/enapo/workers/schema/EnapoPpasDistributionParamsSchema.js.map +1 -0
  36. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.d.ts +27 -0
  37. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.js +95 -0
  38. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.js.map +1 -0
  39. package/dist/schema-definitions/datasources/commodity-providers/IPreEanMeasurement.js.map +1 -0
  40. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput.d.ts +78 -0
  41. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput.js +3 -0
  42. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput.js.map +1 -0
  43. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceListInput.d.ts +40 -0
  44. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceListInput.js +3 -0
  45. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceListInput.js.map +1 -0
  46. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.d.ts +7 -0
  47. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.js +224 -0
  48. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.js.map +1 -0
  49. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.d.ts +24 -0
  50. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.js +52 -0
  51. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.js.map +1 -0
  52. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.d.ts +46 -0
  53. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.js +102 -0
  54. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.js.map +1 -0
  55. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.d.ts +23 -0
  56. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.js +50 -0
  57. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.js.map +1 -0
  58. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoice.d.ts +40 -0
  59. package/dist/{integration-engine/enapo/interfaces/IPPasMeasurementData.js → schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoice.js} +1 -1
  60. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoice.js.map +1 -0
  61. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice.d.ts +18 -0
  62. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice.js +3 -0
  63. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice.js.map +1 -0
  64. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice.d.ts +17 -0
  65. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice.js +3 -0
  66. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice.js.map +1 -0
  67. package/docs/implementation_documentation.md +57 -0
  68. package/package.json +1 -1
  69. package/dist/integration-engine/commodity-providers/workers/interfaces/IPreEanMeasurement.js.map +0 -1
  70. package/dist/integration-engine/enapo/interfaces/IPPasMeasurementData.d.ts +0 -28
  71. package/dist/integration-engine/enapo/interfaces/IPPasMeasurementData.js.map +0 -1
  72. package/dist/integration-engine/enapo/interfaces/predi/IPrediMetadata.d.ts +0 -17
  73. package/dist/integration-engine/enapo/interfaces/predi/IPrediMetadata.js.map +0 -1
  74. /package/dist/{integration-engine/commodity-providers/workers/interfaces → schema-definitions/datasources/commodity-providers}/IPreEanMeasurement.d.ts +0 -0
  75. /package/dist/{integration-engine/commodity-providers/workers/interfaces → schema-definitions/datasources/commodity-providers}/IPreEanMeasurement.js +0 -0
@@ -0,0 +1,32 @@
1
+ import { IPpasDistributionInvoiceDetailInput } from "../../../../schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput";
2
+ import { IPpasDistributionInvoice } from "../../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoice";
3
+ import { IPpasDistributionInvoiceDevice } from "../../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice";
4
+ import { IPpasDistributionInvoicePrice } from "../../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice";
5
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
6
+ type DistributionPriceType = "STANDARD" | "CORRECTION";
7
+ type DistributionGroupState = {
8
+ occurrenceIndex: number;
9
+ zeroOccurrenceIndex: number;
10
+ hasStandardInGroup: boolean;
11
+ hasCorrectionInGroup: boolean;
12
+ };
13
+ export declare class PpasDistributionTransformation extends AbstractTransformation<IPpasDistributionInvoiceDetailInput, {
14
+ invoiceHeader: IPpasDistributionInvoice;
15
+ rowDevices: IPpasDistributionInvoiceDevice[];
16
+ rowPrice: IPpasDistributionInvoicePrice[];
17
+ }> {
18
+ name: string;
19
+ constructor();
20
+ protected transformInternal: (element: IPpasDistributionInvoiceDetailInput) => {
21
+ invoiceHeader: IPpasDistributionInvoice;
22
+ rowDevices: IPpasDistributionInvoiceDevice[];
23
+ rowPrice: IPpasDistributionInvoicePrice[];
24
+ };
25
+ private normalizeToStringOrNull;
26
+ private getOrCreateDistributionGroupState;
27
+ private resolveNeutralDistributionPriceType;
28
+ determineDistributionPriceType(priceNetto: number | null | undefined, quantity: number | null | undefined, groupState: DistributionGroupState): DistributionPriceType;
29
+ private createDistributionPriceGroupKey;
30
+ private createDeviceGroupKey;
31
+ }
32
+ export {};
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PpasDistributionTransformation = void 0;
13
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
14
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
15
+ let PpasDistributionTransformation = exports.PpasDistributionTransformation = class PpasDistributionTransformation extends AbstractTransformation_1.AbstractTransformation {
16
+ constructor() {
17
+ super();
18
+ this.name = "PpasDistributionTransformation";
19
+ this.transformInternal = (element) => {
20
+ const rowDevices = [];
21
+ const rowPrice = [];
22
+ const invoiceHeader = {
23
+ id: element.id.intNum,
24
+ preceding_id: element?.precedingId?.intNum,
25
+ customer_id: element.customer.id,
26
+ customer_company_id: element?.customer?.companyId?.toString(),
27
+ customer_name: element.customer.name,
28
+ customer_contract_account_id: element.customer.contractAccountId,
29
+ customer_address_street: element.customerAddress.street,
30
+ customer_address_house_number: this.normalizeToStringOrNull(element.customerAddress.houseNumber),
31
+ customer_address_house_org_number: this.normalizeToStringOrNull(element.installations.address.houseOrgNumber),
32
+ customer_address_city: element.customerAddress.city,
33
+ customer_address_city_part: element.customerAddress.cityPart,
34
+ customer_address_post_code: element.customerAddress.postCode,
35
+ customer_address_country: element.customerAddress.country,
36
+ customer_address_ruian_id: element.customerAddress.ruianId,
37
+ facts_doc_date: element.facts.docDate,
38
+ facts_net_date: element.facts.netDate,
39
+ facts_billing_transaction: element.facts.billingTransaction,
40
+ facts_to_pay_amount: element.facts.toPayAmount,
41
+ facts_currency: element.facts.currency,
42
+ facts_price_brutto: element.facts.priceBrutto,
43
+ is_canceled: element?.cancellation?.isCanceled,
44
+ canceled_reason: element?.cancellation?.reason,
45
+ eic: element.installations.pointOfDelivery,
46
+ place_id: element.installations.installation,
47
+ installations_billing_class: element.installations.billingClass,
48
+ installations_measurement_type: element.installations.measurementType,
49
+ installations_contract_contract_id: this.normalizeToStringOrNull(element.installations.contract.contractId),
50
+ installations_contract_move_in_date: element.installations.contract.moveInDate,
51
+ installations_contract_move_out_date: element.installations.contract.moveOutDate,
52
+ installations_tdd_class: element.installations.tddClass,
53
+ installations_address_street: element.installations.address.street,
54
+ installations_address_house_number: this.normalizeToStringOrNull(element.installations.address.houseNumber),
55
+ installations_address_house_org_number: this.normalizeToStringOrNull(element.installations.address.houseOrgNumber),
56
+ installations_address_city: element.installations.address.city,
57
+ installations_address_city_part: element.installations.address.cityPart,
58
+ installations_address_post_code: element.installations.address.postCode,
59
+ installations_address_country: element.installations.address.country,
60
+ installations_address_ruian_id: element.installations.address.ruianId,
61
+ };
62
+ // devices can contain object or array
63
+ if (!Array.isArray(element.installations.devices)) {
64
+ element.installations.devices = [element.installations.devices];
65
+ }
66
+ const deviceGroupStateByKey = new Map();
67
+ for (const device of element.installations.devices) {
68
+ if (!device?.readings)
69
+ continue;
70
+ if (!Array.isArray(device.readings)) {
71
+ device.readings = [device.readings];
72
+ }
73
+ for (const reading of device.readings) {
74
+ const deviceGroupKey = this.createDeviceGroupKey(device, reading);
75
+ const deviceGroupState = this.getOrCreateDistributionGroupState(deviceGroupStateByKey, deviceGroupKey);
76
+ const resolvedReadingType = this.determineDistributionPriceType(reading?.gas?.consumptionKwh ?? 0, 0, deviceGroupState);
77
+ rowDevices.push({
78
+ device_serial_number: device.number,
79
+ type: device.type,
80
+ invoice_id: element.id.intNum,
81
+ date_from: reading.dateFrom,
82
+ date_to: reading.dateTo,
83
+ kind: reading.kind,
84
+ reading_from: reading.readingFrom,
85
+ reading_to: reading.readingTo,
86
+ consumption: reading.consumption,
87
+ unit: reading.unit,
88
+ meter_reading_type: this.normalizeToStringOrNull(reading.mrType),
89
+ reading_type: resolvedReadingType,
90
+ gas_consumption_kwh: reading?.gas?.consumptionKwh,
91
+ volume_coefficient: reading?.gas?.volumeCoefficient,
92
+ combustion_heat: reading?.gas?.combustionHeat,
93
+ normometers_nm3: reading?.gas?.normometersNm3,
94
+ });
95
+ }
96
+ }
97
+ const groupStateByKey = new Map();
98
+ for (const price of element.installations.prices) {
99
+ const groupKey = this.createDistributionPriceGroupKey(price);
100
+ const groupState = this.getOrCreateDistributionGroupState(groupStateByKey, groupKey);
101
+ const priceType = this.determineDistributionPriceType(price.priceNetto, price.quantity, groupState);
102
+ rowPrice.push({
103
+ invoice_id: element.id.intNum,
104
+ customer_id: element.customer.id,
105
+ date_from: price.dateFrom,
106
+ date_to: price.dateTo,
107
+ kind: price.kind,
108
+ description: price.description,
109
+ price_group: price.priceGroup,
110
+ quantity: price.quantity,
111
+ unit: price.unit,
112
+ unit_price: price.unitPrice,
113
+ time_slot: price.timeSlot,
114
+ price_netto: price.priceNetto,
115
+ price_type: priceType,
116
+ currency: price.currency,
117
+ tax_rate: price.taxRate,
118
+ });
119
+ }
120
+ return {
121
+ invoiceHeader,
122
+ rowDevices,
123
+ rowPrice,
124
+ };
125
+ };
126
+ }
127
+ normalizeToStringOrNull(value) {
128
+ const str = String(value).trim();
129
+ return str === "" ? null : str;
130
+ }
131
+ getOrCreateDistributionGroupState(groupStateByKey, groupKey) {
132
+ const existingState = groupStateByKey.get(groupKey);
133
+ if (existingState)
134
+ return existingState;
135
+ const initialState = {
136
+ occurrenceIndex: 0,
137
+ zeroOccurrenceIndex: 0,
138
+ hasStandardInGroup: false,
139
+ hasCorrectionInGroup: false,
140
+ };
141
+ groupStateByKey.set(groupKey, initialState);
142
+ return initialState;
143
+ }
144
+ resolveNeutralDistributionPriceType(groupState) {
145
+ if (!groupState.hasStandardInGroup)
146
+ return "STANDARD";
147
+ if (!groupState.hasCorrectionInGroup)
148
+ return "CORRECTION";
149
+ return groupState.zeroOccurrenceIndex % 2 === 0 ? "STANDARD" : "CORRECTION";
150
+ }
151
+ determineDistributionPriceType(priceNetto, quantity, groupState) {
152
+ const priceNettoValue = priceNetto ?? 0;
153
+ const quantityValue = quantity ?? 0;
154
+ const isPositive = priceNettoValue > 0 || quantityValue > 0;
155
+ const isNegative = priceNettoValue < 0 || quantityValue < 0;
156
+ const isZeroRow = priceNettoValue === 0 && quantityValue === 0;
157
+ if (isPositive) {
158
+ groupState.hasStandardInGroup = true;
159
+ return "STANDARD";
160
+ }
161
+ if (isNegative) {
162
+ groupState.hasCorrectionInGroup = true;
163
+ return "CORRECTION";
164
+ }
165
+ const resolvedType = this.resolveNeutralDistributionPriceType(groupState);
166
+ if (resolvedType === "STANDARD") {
167
+ groupState.hasStandardInGroup = true;
168
+ }
169
+ else {
170
+ groupState.hasCorrectionInGroup = true;
171
+ }
172
+ if (isZeroRow) {
173
+ groupState.zeroOccurrenceIndex += 1;
174
+ }
175
+ return resolvedType;
176
+ }
177
+ createDistributionPriceGroupKey(price) {
178
+ return [
179
+ price.dateFrom,
180
+ price.dateTo,
181
+ price.kind,
182
+ price.unit ?? "",
183
+ price.unitPrice ?? "",
184
+ price.timeSlot ?? "",
185
+ price.description ?? "",
186
+ price.priceGroup ?? "",
187
+ ].join("|");
188
+ }
189
+ createDeviceGroupKey(device, reading) {
190
+ return [device.number, reading.dateFrom, reading.dateTo, device.kind ?? reading.kind ?? ""].join("|");
191
+ }
192
+ };
193
+ exports.PpasDistributionTransformation = PpasDistributionTransformation = __decorate([
194
+ (0, tsyringe_1.injectable)(),
195
+ __metadata("design:paramtypes", [])
196
+ ], PpasDistributionTransformation);
197
+ //# sourceMappingURL=PpasDistributionTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PpasDistributionTransformation.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,6GAA0G;AAC1G,iEAAgE;AAWzD,IAAM,8BAA8B,4CAApC,MAAM,8BAA+B,SAAQ,+CAOnD;IAGG;QACI,KAAK,EAAE,CAAC;QAHL,SAAI,GAAG,gCAAgC,CAAC;QAMrC,sBAAiB,GAAG,CAAC,OAA4C,EAAE,EAAE;YAC3E,MAAM,UAAU,GAAqC,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAoC,EAAE,CAAC;YAErD,MAAM,aAAa,GAA6B;gBAC5C,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM;gBACrB,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;gBAC1C,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAChC,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;gBAC7D,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gBACpC,4BAA4B,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAChE,uBAAuB,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM;gBACvD,6BAA6B,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC;gBAChG,iCAAiC,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC7G,qBAAqB,EAAE,OAAO,CAAC,eAAe,CAAC,IAAI;gBACnD,0BAA0B,EAAE,OAAO,CAAC,eAAe,CAAC,QAAQ;gBAC5D,0BAA0B,EAAE,OAAO,CAAC,eAAe,CAAC,QAAQ;gBAC5D,wBAAwB,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO;gBACzD,yBAAyB,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO;gBAC1D,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;gBACrC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;gBACrC,yBAAyB,EAAE,OAAO,CAAC,KAAK,CAAC,kBAAkB;gBAC3D,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW;gBAC9C,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;gBACtC,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW;gBAC7C,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU;gBAC9C,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM;gBAC9C,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,eAAe;gBAC1C,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY;gBAC5C,2BAA2B,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY;gBAC/D,8BAA8B,EAAE,OAAO,CAAC,aAAa,CAAC,eAAe;gBACrE,kCAAkC,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC3G,mCAAmC,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU;gBAC9E,oCAAoC,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW;gBAChF,uBAAuB,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;gBACvD,4BAA4B,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM;gBAClE,kCAAkC,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC3G,sCAAsC,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;gBAClH,0BAA0B,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI;gBAC9D,+BAA+B,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ;gBACvE,+BAA+B,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ;gBACvE,6BAA6B,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO;gBACpE,8BAA8B,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO;aACxE,CAAC;YAEF,sCAAsC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;gBAC/C,OAAO,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aACnE;YACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkC,CAAC;YAExE,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE;gBAChD,IAAI,CAAC,MAAM,EAAE,QAAQ;oBAAE,SAAS;gBAEhC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACjC,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACvC;gBAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACnC,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAElE,MAAM,gBAAgB,GAAG,IAAI,CAAC,iCAAiC,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;oBAEvG,MAAM,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAC3D,OAAO,EAAE,GAAG,EAAE,cAAc,IAAI,CAAC,EACjC,CAAC,EACD,gBAAgB,CACnB,CAAC;oBAEF,UAAU,CAAC,IAAI,CAAC;wBACZ,oBAAoB,EAAE,MAAM,CAAC,MAAM;wBACnC,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM;wBAC7B,SAAS,EAAE,OAAO,CAAC,QAAQ;wBAC3B,OAAO,EAAE,OAAO,CAAC,MAAM;wBACvB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,YAAY,EAAE,OAAO,CAAC,WAAW;wBACjC,UAAU,EAAE,OAAO,CAAC,SAAS;wBAC7B,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC;wBAChE,YAAY,EAAE,mBAAmB;wBACjC,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;wBACjD,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB;wBACnD,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;wBAC7C,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc;qBACd,CAAC,CAAC;iBACxC;aACJ;YAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;YAClE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;gBAE7D,MAAM,UAAU,GAAG,IAAI,CAAC,iCAAiC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAErF,MAAM,SAAS,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACpG,QAAQ,CAAC,IAAI,CAAC;oBACV,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM;oBAC7B,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,SAAS,EAAE,KAAK,CAAC,QAAQ;oBACzB,OAAO,EAAE,KAAK,CAAC,MAAM;oBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,KAAK,CAAC,UAAU;oBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,UAAU,EAAE,KAAK,CAAC,SAAS;oBAC3B,SAAS,EAAE,KAAK,CAAC,QAAQ;oBACzB,WAAW,EAAE,KAAK,CAAC,UAAU;oBAC7B,UAAU,EAAE,SAAS;oBACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,OAAO;iBACO,CAAC,CAAC;aACvC;YAED,OAAO;gBACH,aAAa;gBACb,UAAU;gBACV,QAAQ;aACX,CAAC;QACN,CAAC,CAAC;IA3HF,CAAC;IA6HO,uBAAuB,CAAC,KAAsB;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACnC,CAAC;IAEO,iCAAiC,CACrC,eAAoD,EACpD,QAAgB;QAEhB,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,MAAM,YAAY,GAA2B;YACzC,eAAe,EAAE,CAAC;YAClB,mBAAmB,EAAE,CAAC;YACtB,kBAAkB,EAAE,KAAK;YACzB,oBAAoB,EAAE,KAAK;SAC9B,CAAC;QAEF,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,mCAAmC,CAAC,UAAkC;QAC1E,IAAI,CAAC,UAAU,CAAC,kBAAkB;YAAE,OAAO,UAAU,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,oBAAoB;YAAE,OAAO,YAAY,CAAC;QAC1D,OAAO,UAAU,CAAC,mBAAmB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAChF,CAAC;IAEM,8BAA8B,CACjC,UAAqC,EACrC,QAAmC,EACnC,UAAkC;QAElC,MAAM,eAAe,GAAG,UAAU,IAAI,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,QAAQ,IAAI,CAAC,CAAC;QAEpC,MAAM,UAAU,GAAG,eAAe,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,eAAe,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,eAAe,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC;QAE/D,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACrC,OAAO,UAAU,CAAC;SACrB;QAED,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACvC,OAAO,YAAY,CAAC;SACvB;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,YAAY,KAAK,UAAU,EAAE;YAC7B,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;SACxC;aAAM;YACH,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC;SAC1C;QAED,IAAI,SAAS,EAAE;YACX,UAAU,CAAC,mBAAmB,IAAI,CAAC,CAAC;SACvC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,+BAA+B,CAAC,KASvC;QACG,OAAO;YACH,KAAK,CAAC,QAAQ;YACd,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,IAAI,IAAI,EAAE;YAChB,KAAK,CAAC,SAAS,IAAI,EAAE;YACrB,KAAK,CAAC,QAAQ,IAAI,EAAE;YACpB,KAAK,CAAC,WAAW,IAAI,EAAE;YACvB,KAAK,CAAC,UAAU,IAAI,EAAE;SACzB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAEO,oBAAoB,CACxB,MAAyC,EACzC,OAA4D;QAE5D,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1G,CAAC;CACJ,CAAA;yCAvOY,8BAA8B;IAD1C,IAAA,qBAAU,GAAE;;GACA,8BAA8B,CAuO1C"}
@@ -20,6 +20,7 @@ class EnapoWorker extends integration_engine_1.AbstractWorker {
20
20
  this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnoBuildingTask));
21
21
  this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnoStructureTask));
22
22
  this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnoGeometryTask));
23
+ this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasDistributionTask));
23
24
  }
24
25
  }
25
26
  exports.EnapoWorker = EnapoWorker;
@@ -1 +1 @@
1
- {"version":3,"file":"EnapoWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/workers/EnapoWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAuE;AAEvE,4CAAiD;AACjD,kCAA2C;AAC3C,gFAA6E;AAE7E,MAAa,WAAY,SAAQ,mCAAc;IAG3C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,6BAAiB,CAAC;QAc5B,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAZE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;IAChG,CAAC;CAMJ;AAnBD,kCAmBC"}
1
+ {"version":3,"file":"EnapoWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/workers/EnapoWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAuE;AAEvE,4CAAiD;AACjD,kCAA2C;AAC3C,gFAA6E;AAE7E,MAAa,WAAY,SAAQ,mCAAc;IAG3C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,6BAAiB,CAAC;QAe5B,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAbE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC1G,CAAC;CAMJ;AApBD,kCAoBC"}
@@ -0,0 +1,4 @@
1
+ export interface IEnapoPpasDistributionParams {
2
+ from: string;
3
+ to: string;
4
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IPrediMetadata.js.map
3
+ //# sourceMappingURL=IEnapoPpasDistributionParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEnapoPpasDistributionParams.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/interfaces/IEnapoPpasDistributionParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { IEnapoPpasDistributionParams } from "../interfaces/IEnapoPpasDistributionParams";
2
+ export declare class EnapoPpasDistributionParamsSchema implements IEnapoPpasDistributionParams {
3
+ from: string;
4
+ to: string;
5
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EnapoPpasDistributionParamsSchema = void 0;
13
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
+ class EnapoPpasDistributionParamsSchema {
15
+ }
16
+ exports.EnapoPpasDistributionParamsSchema = EnapoPpasDistributionParamsSchema;
17
+ __decorate([
18
+ (0, class_validator_1.IsOptional)(),
19
+ (0, class_validator_1.IsISO8601)({ strict: true }),
20
+ (0, class_validator_1.Length)(10, 10),
21
+ __metadata("design:type", String)
22
+ ], EnapoPpasDistributionParamsSchema.prototype, "from", void 0);
23
+ __decorate([
24
+ (0, class_validator_1.IsOptional)(),
25
+ (0, class_validator_1.IsISO8601)({ strict: true }),
26
+ (0, class_validator_1.Length)(10, 10),
27
+ __metadata("design:type", String)
28
+ ], EnapoPpasDistributionParamsSchema.prototype, "to", void 0);
29
+ //# sourceMappingURL=EnapoPpasDistributionParamsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnapoPpasDistributionParamsSchema.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/schema/EnapoPpasDistributionParamsSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAA0F;AAG1F,MAAa,iCAAiC;CAS7C;AATD,8EASC;AALG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3B,IAAA,wBAAM,EAAC,EAAE,EAAE,EAAE,CAAC;;+DACD;AAId;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3B,IAAA,wBAAM,EAAC,EAAE,EAAE,EAAE,CAAC;;6DACH"}
@@ -0,0 +1,27 @@
1
+ import { PpasDistributionDatasource } from "../../datasources/ppas/distribution/PpasDistributionDatasource";
2
+ import { PpasDistributionInvoiceDeviceRepository } from "../../repositories/ppas/PpasDistributionInvoiceDeviceRepository";
3
+ import { PpasDistributionInvoicePriceRepository } from "../../repositories/ppas/PpasDistributionInvoicePriceRepository";
4
+ import { PpasDistributionInvoiceRepository } from "../../repositories/ppas/PpasDistributionInvoiceRepository";
5
+ import { PpasDistributionTransformation } from "../../transformations/ppas/PpasDistributionTransformation";
6
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
7
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
8
+ import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
9
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
10
+ import { IEnapoPpasDistributionParams } from "../interfaces/IEnapoPpasDistributionParams";
11
+ import { EnapoPpasDistributionParamsSchema } from "../schema/EnapoPpasDistributionParamsSchema";
12
+ export declare class EnapoPpasDistributionTask extends AbstractTask<IEnapoPpasDistributionParams> {
13
+ protected config: ISimpleConfig;
14
+ protected logger: ILogger;
15
+ protected dbConnector: IDatabaseConnector;
16
+ protected datasource: PpasDistributionDatasource;
17
+ protected ppasDistributionInvoiceDeviceRepository: PpasDistributionInvoiceDeviceRepository;
18
+ protected ppasDistributionInvoicePriceRepository: PpasDistributionInvoicePriceRepository;
19
+ protected ppasDistributionInvoiceRepository: PpasDistributionInvoiceRepository;
20
+ protected ppasDistributionTransformation: PpasDistributionTransformation;
21
+ private readonly DEFAULT_DAYS_BACK;
22
+ queueName: string;
23
+ queueTtl: number;
24
+ schema: typeof EnapoPpasDistributionParamsSchema;
25
+ constructor(config: ISimpleConfig, logger: ILogger, dbConnector: IDatabaseConnector, datasource: PpasDistributionDatasource, ppasDistributionInvoiceDeviceRepository: PpasDistributionInvoiceDeviceRepository, ppasDistributionInvoicePriceRepository: PpasDistributionInvoicePriceRepository, ppasDistributionInvoiceRepository: PpasDistributionInvoiceRepository, ppasDistributionTransformation: PpasDistributionTransformation);
26
+ execute(params: IEnapoPpasDistributionParams): Promise<void>;
27
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.EnapoPpasDistributionTask = void 0;
16
+ const constants_1 = require("../../constants");
17
+ const PpasDistributionDatasource_1 = require("../../datasources/ppas/distribution/PpasDistributionDatasource");
18
+ const EnapoWorkerContainerToken_1 = require("../../ioc/EnapoWorkerContainerToken");
19
+ const PpasDistributionInvoiceDeviceRepository_1 = require("../../repositories/ppas/PpasDistributionInvoiceDeviceRepository");
20
+ const PpasDistributionInvoicePriceRepository_1 = require("../../repositories/ppas/PpasDistributionInvoicePriceRepository");
21
+ const PpasDistributionInvoiceRepository_1 = require("../../repositories/ppas/PpasDistributionInvoiceRepository");
22
+ const PpasDistributionTransformation_1 = require("../../transformations/ppas/PpasDistributionTransformation");
23
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
24
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
25
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
26
+ const luxon_1 = require("@golemio/core/dist/shared/luxon");
27
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
28
+ const EnapoPpasDistributionParamsSchema_1 = require("../schema/EnapoPpasDistributionParamsSchema");
29
+ let EnapoPpasDistributionTask = exports.EnapoPpasDistributionTask = class EnapoPpasDistributionTask extends integration_engine_1.AbstractTask {
30
+ constructor(config, logger, dbConnector, datasource, ppasDistributionInvoiceDeviceRepository, ppasDistributionInvoicePriceRepository, ppasDistributionInvoiceRepository, ppasDistributionTransformation) {
31
+ super(constants_1.ENAPO_WORKER_NAME);
32
+ this.config = config;
33
+ this.logger = logger;
34
+ this.dbConnector = dbConnector;
35
+ this.datasource = datasource;
36
+ this.ppasDistributionInvoiceDeviceRepository = ppasDistributionInvoiceDeviceRepository;
37
+ this.ppasDistributionInvoicePriceRepository = ppasDistributionInvoicePriceRepository;
38
+ this.ppasDistributionInvoiceRepository = ppasDistributionInvoiceRepository;
39
+ this.ppasDistributionTransformation = ppasDistributionTransformation;
40
+ this.DEFAULT_DAYS_BACK = 3;
41
+ this.queueName = "fetchPpasDistribution";
42
+ this.queueTtl = 60 * 60 * 1000;
43
+ this.schema = EnapoPpasDistributionParamsSchema_1.EnapoPpasDistributionParamsSchema;
44
+ }
45
+ async execute(params) {
46
+ try {
47
+ if (!params.from || !params.to) {
48
+ params.from = luxon_1.DateTime.now().minus({ days: this.DEFAULT_DAYS_BACK }).toFormat("yyyy-LL-dd");
49
+ params.to = luxon_1.DateTime.now().toFormat("yyyy-LL-dd");
50
+ }
51
+ const invoiceList = await this.datasource.getInvoiceList(params.from, params.to);
52
+ let invoiceDetail;
53
+ for (const invoice of invoiceList) {
54
+ const transaction = await this.dbConnector.getConnection().transaction();
55
+ try {
56
+ invoiceDetail = await this.datasource.getInvoiceDetail(invoice.id.intNum);
57
+ const { invoiceHeader, rowDevices, rowPrice } = this.ppasDistributionTransformation.transformElement(invoiceDetail);
58
+ await this.ppasDistributionInvoiceRepository.bulkSave([invoiceHeader], undefined, undefined, undefined, transaction);
59
+ await this.ppasDistributionInvoicePriceRepository.bulkSave(rowPrice, undefined, undefined, undefined, transaction);
60
+ if (rowDevices.length > 0) {
61
+ await this.ppasDistributionInvoiceDeviceRepository.bulkSave(rowDevices, undefined, undefined, undefined, transaction);
62
+ }
63
+ await transaction.commit();
64
+ }
65
+ catch (err) {
66
+ await transaction.rollback();
67
+ throw err;
68
+ }
69
+ }
70
+ }
71
+ catch (err) {
72
+ if (err instanceof golemio_errors_1.AbstractGolemioError) {
73
+ throw err;
74
+ }
75
+ throw new golemio_errors_1.GeneralError(`Unable to download ppas distribution data`, this.constructor.name, err);
76
+ }
77
+ }
78
+ };
79
+ exports.EnapoPpasDistributionTask = EnapoPpasDistributionTask = __decorate([
80
+ (0, tsyringe_1.injectable)(),
81
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
82
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
83
+ __param(2, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
84
+ __param(3, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasDistributionDatasource)),
85
+ __param(4, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionInvoiceDeviceRepository)),
86
+ __param(5, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionInvoicePriceRepository)),
87
+ __param(6, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionInvoiceRepository)),
88
+ __param(7, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionTransformation)),
89
+ __metadata("design:paramtypes", [Object, Object, Object, PpasDistributionDatasource_1.PpasDistributionDatasource,
90
+ PpasDistributionInvoiceDeviceRepository_1.PpasDistributionInvoiceDeviceRepository,
91
+ PpasDistributionInvoicePriceRepository_1.PpasDistributionInvoicePriceRepository,
92
+ PpasDistributionInvoiceRepository_1.PpasDistributionInvoiceRepository,
93
+ PpasDistributionTransformation_1.PpasDistributionTransformation])
94
+ ], EnapoPpasDistributionTask);
95
+ //# sourceMappingURL=EnapoPpasDistributionTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnapoPpasDistributionTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPreEanMeasurement.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/commodity-providers/IPreEanMeasurement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ import { IPpasDistributionInvoiceCancellation, IPpasDistributionInvoiceCustomer, IPpasDistributionInvoiceCustomerAddress, IPpasDistributionInvoiceFacts, IPpasDistributionInvoiceId } from "./IPpasDistributionInvoiceListInput";
2
+ export type ReadingType = {
3
+ dateFrom: string;
4
+ dateTo: string;
5
+ kind: string;
6
+ readingFrom: number;
7
+ readingTo: number;
8
+ consumption: number;
9
+ unit: string;
10
+ mrType: string | number;
11
+ gas: {
12
+ consumptionKwh: number;
13
+ volumeCoefficient: number;
14
+ combustionHeat: number;
15
+ normometersNm3: number;
16
+ };
17
+ };
18
+ export type Readings = ReadingType | ReadingType[];
19
+ export type DeviceType = {
20
+ number: string;
21
+ type: string;
22
+ readings: Readings;
23
+ };
24
+ export type Devices = DeviceType | DeviceType[];
25
+ export interface IPpasDistributionInvoiceDetailInput {
26
+ id: IPpasDistributionInvoiceId;
27
+ precedingId: IPpasDistributionInvoiceId;
28
+ customer: IPpasDistributionInvoiceCustomer;
29
+ customerAddress: IPpasDistributionInvoiceCustomerAddress;
30
+ facts: IPpasDistributionInvoiceFacts;
31
+ cancellation?: IPpasDistributionInvoiceCancellation;
32
+ charges: Array<{
33
+ dateFrom: string;
34
+ dateTo: string;
35
+ id: string;
36
+ description: string;
37
+ priceNetto: number;
38
+ currency: string;
39
+ taxRate: number;
40
+ }>;
41
+ installations: {
42
+ pointOfDelivery: string;
43
+ installation: string;
44
+ billingClass: string;
45
+ measurementType: string;
46
+ contract: {
47
+ contractId: string | number;
48
+ moveInDate: string;
49
+ moveOutDate: string;
50
+ };
51
+ tddClass: string;
52
+ address: IPpasDistributionInvoiceCustomerAddress;
53
+ devices: Devices;
54
+ prices: Array<{
55
+ dateFrom: string;
56
+ dateTo: string;
57
+ kind: string;
58
+ description: string;
59
+ priceGroup: string;
60
+ quantity: number;
61
+ unit: string;
62
+ unitPrice: number;
63
+ timeSlot: number;
64
+ priceNetto: number;
65
+ currency: string;
66
+ taxRate: number;
67
+ }>;
68
+ charges: Array<{
69
+ dateFrom: string;
70
+ dateTo: string;
71
+ id: string;
72
+ description: string;
73
+ priceNetto: number;
74
+ currency: string;
75
+ taxRate: number;
76
+ }>;
77
+ };
78
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPpasDistributionInvoiceDetailInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPpasDistributionInvoiceDetailInput.js","sourceRoot":"","sources":["../../../../../../src/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ export interface IPpasDistributionInvoiceId {
2
+ num: string | number;
3
+ intNum: string;
4
+ }
5
+ export interface IPpasDistributionInvoiceCustomer {
6
+ id: string;
7
+ companyId: string | number;
8
+ name: string;
9
+ contractAccountId: string;
10
+ }
11
+ export interface IPpasDistributionInvoiceCustomerAddress {
12
+ street: string;
13
+ houseNumber: number | string;
14
+ houseOrgNumber: number | string;
15
+ city: string;
16
+ cityPart: string;
17
+ postCode: string;
18
+ country: string;
19
+ ruianId: number;
20
+ }
21
+ export interface IPpasDistributionInvoiceFacts {
22
+ docDate: string;
23
+ netDate: string;
24
+ billingTransaction: string;
25
+ toPayAmount: number;
26
+ currency: string;
27
+ priceBrutto: number;
28
+ }
29
+ export interface IPpasDistributionInvoiceCancellation {
30
+ isCanceled: boolean;
31
+ id: IPpasDistributionInvoiceId;
32
+ reason: string;
33
+ }
34
+ export interface IPpasDistributionInvoiceListInput {
35
+ id: IPpasDistributionInvoiceId;
36
+ customer: IPpasDistributionInvoiceCustomer;
37
+ customerAddress: IPpasDistributionInvoiceCustomerAddress;
38
+ facts: IPpasDistributionInvoiceFacts;
39
+ cancellation: IPpasDistributionInvoiceCancellation;
40
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPpasDistributionInvoiceListInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPpasDistributionInvoiceListInput.js","sourceRoot":"","sources":["../../../../../../src/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceListInput.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
+ import { IPpasDistributionInvoiceListInput } from "./IPpasDistributionInvoiceListInput";
3
+ import { IPpasDistributionInvoiceDetailInput } from "./IPpasDistributionInvoiceDetailInput";
4
+ export declare const ppasDistributionInvoiceListInputJsonSchema: JSONSchemaType<{
5
+ InvoiceList: IPpasDistributionInvoiceListInput | IPpasDistributionInvoiceListInput[];
6
+ }>;
7
+ export declare const ppasDistributionInvoiceDetailInputJsonSchema: JSONSchemaType<IPpasDistributionInvoiceDetailInput>;