@golemio/energetics 1.10.1-dev.2609634792 → 1.10.1-dev.2634930492

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 (91) hide show
  1. package/db/migrations/postgresql/20260619000001-ppas-commercial-invoice.js +47 -0
  2. package/db/migrations/postgresql/sqls/20260619000001-ppas-commercial-invoice-down.sql +4 -0
  3. package/db/migrations/postgresql/sqls/20260619000001-ppas-commercial-invoice-up.sql +99 -0
  4. package/dist/integration-engine/enapo/datasources/ppas/AbstractPpasDatasource.d.ts +16 -0
  5. package/dist/integration-engine/enapo/datasources/ppas/AbstractPpasDatasource.js +88 -0
  6. package/dist/integration-engine/enapo/datasources/ppas/AbstractPpasDatasource.js.map +1 -0
  7. package/dist/integration-engine/enapo/datasources/ppas/commercial/PpasCommercialDatasource.d.ts +13 -0
  8. package/dist/integration-engine/enapo/datasources/ppas/commercial/PpasCommercialDatasource.js +66 -0
  9. package/dist/integration-engine/enapo/datasources/ppas/commercial/PpasCommercialDatasource.js.map +1 -0
  10. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.d.ts +3 -14
  11. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js +6 -86
  12. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js.map +1 -1
  13. package/dist/integration-engine/enapo/ioc/Di.js +14 -0
  14. package/dist/integration-engine/enapo/ioc/Di.js.map +1 -1
  15. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.d.ts +7 -0
  16. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js +7 -0
  17. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js.map +1 -1
  18. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceDeviceRepository.d.ts +7 -0
  19. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceDeviceRepository.js +35 -0
  20. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceDeviceRepository.js.map +1 -0
  21. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceInstallationRepository.d.ts +7 -0
  22. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceInstallationRepository.js +35 -0
  23. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceInstallationRepository.js.map +1 -0
  24. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoicePriceRepository.d.ts +7 -0
  25. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoicePriceRepository.js +35 -0
  26. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoicePriceRepository.js.map +1 -0
  27. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceRepository.d.ts +7 -0
  28. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceRepository.js +35 -0
  29. package/dist/integration-engine/enapo/repositories/ppas/PpasCommercialInvoiceRepository.js.map +1 -0
  30. package/dist/integration-engine/enapo/transformations/ppas/PpasCommercialTransformation.d.ts +28 -0
  31. package/dist/integration-engine/enapo/transformations/ppas/PpasCommercialTransformation.js +184 -0
  32. package/dist/integration-engine/enapo/transformations/ppas/PpasCommercialTransformation.js.map +1 -0
  33. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.d.ts +0 -18
  34. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js +14 -82
  35. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js.map +1 -1
  36. package/dist/integration-engine/enapo/transformations/ppas/PpasInvoicePriceTypeHelper.d.ts +33 -0
  37. package/dist/integration-engine/enapo/transformations/ppas/PpasInvoicePriceTypeHelper.js +87 -0
  38. package/dist/integration-engine/enapo/transformations/ppas/PpasInvoicePriceTypeHelper.js.map +1 -0
  39. package/dist/integration-engine/enapo/workers/EnapoWorker.js +1 -0
  40. package/dist/integration-engine/enapo/workers/EnapoWorker.js.map +1 -1
  41. package/dist/integration-engine/enapo/workers/interfaces/IEnapoPpasCommercialParams.d.ts +4 -0
  42. package/dist/integration-engine/enapo/workers/interfaces/IEnapoPpasCommercialParams.js +3 -0
  43. package/dist/integration-engine/enapo/workers/interfaces/IEnapoPpasCommercialParams.js.map +1 -0
  44. package/dist/integration-engine/enapo/workers/schema/EnapoPpasCommercialParamsSchema.d.ts +5 -0
  45. package/dist/integration-engine/enapo/workers/schema/EnapoPpasCommercialParamsSchema.js +29 -0
  46. package/dist/integration-engine/enapo/workers/schema/EnapoPpasCommercialParamsSchema.js.map +1 -0
  47. package/dist/integration-engine/enapo/workers/task/EnapoPpasCommercialTask.d.ts +34 -0
  48. package/dist/integration-engine/enapo/workers/task/EnapoPpasCommercialTask.js +181 -0
  49. package/dist/integration-engine/enapo/workers/task/EnapoPpasCommercialTask.js.map +1 -0
  50. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.js.map +1 -1
  51. package/dist/schema-definitions/datasources/enapo/ppas/IPpasInvoiceCommon.d.ts +23 -0
  52. package/dist/schema-definitions/datasources/enapo/ppas/IPpasInvoiceCommon.js +3 -0
  53. package/dist/schema-definitions/datasources/enapo/ppas/IPpasInvoiceCommon.js.map +1 -0
  54. package/dist/schema-definitions/datasources/enapo/ppas/commercial/IPpasCommercialInvoiceDetailInput.d.ts +62 -0
  55. package/dist/schema-definitions/datasources/enapo/ppas/commercial/IPpasCommercialInvoiceDetailInput.js +3 -0
  56. package/dist/schema-definitions/datasources/enapo/ppas/commercial/IPpasCommercialInvoiceDetailInput.js.map +1 -0
  57. package/dist/schema-definitions/datasources/enapo/ppas/commercial/IPpasCommercialInvoiceListInput.d.ts +26 -0
  58. package/dist/schema-definitions/datasources/enapo/ppas/commercial/IPpasCommercialInvoiceListInput.js +3 -0
  59. package/dist/schema-definitions/datasources/enapo/ppas/commercial/IPpasCommercialInvoiceListInput.js.map +1 -0
  60. package/dist/schema-definitions/datasources/enapo/ppas/commercial/PpasCommercialSchema.d.ts +5 -0
  61. package/dist/schema-definitions/datasources/enapo/ppas/commercial/PpasCommercialSchema.js +185 -0
  62. package/dist/schema-definitions/datasources/enapo/ppas/commercial/PpasCommercialSchema.js.map +1 -0
  63. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput.d.ts +7 -6
  64. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceListInput.d.ts +5 -27
  65. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.js.map +1 -1
  66. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceDeviceModel.d.ts +24 -0
  67. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceDeviceModel.js +54 -0
  68. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceDeviceModel.js.map +1 -0
  69. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceInstallationModel.d.ts +26 -0
  70. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceInstallationModel.js +56 -0
  71. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceInstallationModel.js.map +1 -0
  72. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceModel.d.ts +30 -0
  73. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceModel.js +64 -0
  74. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoiceModel.js.map +1 -0
  75. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoicePriceModel.d.ts +23 -0
  76. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoicePriceModel.js +52 -0
  77. package/dist/schema-definitions/models/enapo/ppas/PpasCommercialInvoicePriceModel.js.map +1 -0
  78. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoice.d.ts +24 -0
  79. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoice.js +3 -0
  80. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoice.js.map +1 -0
  81. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceDevice.d.ts +19 -0
  82. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceDevice.js +3 -0
  83. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceDevice.js.map +1 -0
  84. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceInstallation.d.ts +20 -0
  85. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceInstallation.js +3 -0
  86. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoiceInstallation.js.map +1 -0
  87. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoicePrice.d.ts +18 -0
  88. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoicePrice.js +3 -0
  89. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasCommercialInvoicePrice.js.map +1 -0
  90. package/docs/implementation_documentation.md +60 -1
  91. package/package.json +1 -1
@@ -16,10 +16,7 @@ exports.PpasDistributionTransformation = void 0;
16
16
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
17
17
  const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
18
18
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
19
- const DISTRIBUTION_PRICE_TYPE = {
20
- STANDARD: "STANDARD",
21
- CORRECTION: "CORRECTION",
22
- };
19
+ const PpasInvoicePriceTypeHelper_1 = require("./PpasInvoicePriceTypeHelper");
23
20
  let PpasDistributionTransformation = exports.PpasDistributionTransformation = class PpasDistributionTransformation extends AbstractTransformation_1.AbstractTransformation {
24
21
  constructor(logger) {
25
22
  super();
@@ -36,8 +33,8 @@ let PpasDistributionTransformation = exports.PpasDistributionTransformation = cl
36
33
  customer_name: element.customer.name,
37
34
  customer_contract_account_id: element.customer.contractAccountId,
38
35
  customer_address_street: element.customerAddress.street,
39
- customer_address_house_number: this.normalizeToStringOrNull(element.customerAddress.houseNumber),
40
- customer_address_house_org_number: this.normalizeToStringOrNull(element.installations.address.houseOrgNumber),
36
+ customer_address_house_number: (0, PpasInvoicePriceTypeHelper_1.normalizeToStringOrNull)(element.customerAddress.houseNumber),
37
+ customer_address_house_org_number: (0, PpasInvoicePriceTypeHelper_1.normalizeToStringOrNull)(element.installations.address.houseOrgNumber),
41
38
  customer_address_city: element.customerAddress.city,
42
39
  customer_address_city_part: element.customerAddress.cityPart,
43
40
  customer_address_post_code: element.customerAddress.postCode,
@@ -55,13 +52,13 @@ let PpasDistributionTransformation = exports.PpasDistributionTransformation = cl
55
52
  place_id: element.installations.installation,
56
53
  installations_billing_class: element.installations.billingClass,
57
54
  installations_measurement_type: element.installations.measurementType,
58
- installations_contract_contract_id: this.normalizeToStringOrNull(element.installations.contract.contractId),
55
+ installations_contract_contract_id: (0, PpasInvoicePriceTypeHelper_1.normalizeToStringOrNull)(element.installations.contract.contractId),
59
56
  installations_contract_move_in_date: element.installations.contract.moveInDate,
60
57
  installations_contract_move_out_date: element.installations.contract.moveOutDate,
61
58
  installations_tdd_class: element.installations.tddClass,
62
59
  installations_address_street: element.installations.address.street,
63
- installations_address_house_number: this.normalizeToStringOrNull(element.installations.address.houseNumber),
64
- installations_address_house_org_number: this.normalizeToStringOrNull(element.installations.address.houseOrgNumber),
60
+ installations_address_house_number: (0, PpasInvoicePriceTypeHelper_1.normalizeToStringOrNull)(element.installations.address.houseNumber),
61
+ installations_address_house_org_number: (0, PpasInvoicePriceTypeHelper_1.normalizeToStringOrNull)(element.installations.address.houseOrgNumber),
65
62
  installations_address_city: element.installations.address.city,
66
63
  installations_address_city_part: element.installations.address.cityPart,
67
64
  installations_address_post_code: element.installations.address.postCode,
@@ -81,9 +78,9 @@ let PpasDistributionTransformation = exports.PpasDistributionTransformation = cl
81
78
  device.readings = [device.readings];
82
79
  }
83
80
  for (const reading of device.readings) {
84
- const deviceGroupKey = this.createDeviceGroupKey(device, reading);
85
- const deviceGroupState = this.getOrCreateDistributionGroupState(deviceGroupStateByKey, deviceGroupKey);
86
- const resolvedReadingType = this.determineDistributionPriceType(reading?.gas?.consumptionKwh ?? 0, 0, deviceGroupState);
81
+ const deviceGroupKey = (0, PpasInvoicePriceTypeHelper_1.createDeviceGroupKey)(device, reading);
82
+ const deviceGroupState = (0, PpasInvoicePriceTypeHelper_1.getOrCreateGroupState)(deviceGroupStateByKey, deviceGroupKey);
83
+ const resolvedReadingType = (0, PpasInvoicePriceTypeHelper_1.determinePriceType)(reading?.gas?.consumptionKwh ?? 0, 0, deviceGroupState);
87
84
  const deviceRow = {
88
85
  device_serial_number: device.number,
89
86
  type: device.type,
@@ -95,14 +92,14 @@ let PpasDistributionTransformation = exports.PpasDistributionTransformation = cl
95
92
  reading_to: reading.readingTo,
96
93
  consumption: reading.consumption,
97
94
  unit: reading.unit,
98
- meter_reading_type: this.normalizeToStringOrNull(reading.mrType),
95
+ meter_reading_type: (0, PpasInvoicePriceTypeHelper_1.normalizeToStringOrNull)(reading.mrType),
99
96
  reading_type: resolvedReadingType,
100
97
  gas_consumption_kwh: reading?.gas?.consumptionKwh,
101
98
  volume_coefficient: reading?.gas?.volumeCoefficient,
102
99
  combustion_heat: reading?.gas?.combustionHeat,
103
100
  normometers_nm3: reading?.gas?.normometersNm3,
104
101
  };
105
- const inputReadingKey = this.createDeviceGroupKey(device, reading);
102
+ const inputReadingKey = (0, PpasInvoicePriceTypeHelper_1.createDeviceGroupKey)(device, reading);
106
103
  if (uniqueDeviceReadingKeys.has(inputReadingKey)) {
107
104
  this.logger.info(`${this.name}: Duplicate device key for device_serial_number ${device.number}
108
105
  and invoice_id ${element.id.intNum}`);
@@ -115,9 +112,9 @@ let PpasDistributionTransformation = exports.PpasDistributionTransformation = cl
115
112
  const groupStateByKey = new Map();
116
113
  const uniquePriceConflictKeys = new Set();
117
114
  for (const price of element.installations.prices) {
118
- const groupKey = this.createDistributionPriceGroupKey(price);
119
- const groupState = this.getOrCreateDistributionGroupState(groupStateByKey, groupKey);
120
- const priceType = this.determineDistributionPriceType(price.priceNetto, price.quantity, groupState);
115
+ const groupKey = (0, PpasInvoicePriceTypeHelper_1.createPriceGroupKey)(price);
116
+ const groupState = (0, PpasInvoicePriceTypeHelper_1.getOrCreateGroupState)(groupStateByKey, groupKey);
117
+ const priceType = (0, PpasInvoicePriceTypeHelper_1.determinePriceType)(price.priceNetto, price.quantity, groupState);
121
118
  const priceRow = {
122
119
  invoice_id: element.id.intNum,
123
120
  customer_id: element.customer.id,
@@ -157,74 +154,9 @@ let PpasDistributionTransformation = exports.PpasDistributionTransformation = cl
157
154
  };
158
155
  };
159
156
  }
160
- normalizeToStringOrNull(value) {
161
- const str = String(value).trim();
162
- return str === "" ? null : str;
163
- }
164
- getOrCreateDistributionGroupState(groupStateByKey, groupKey) {
165
- const existingState = groupStateByKey.get(groupKey);
166
- if (existingState)
167
- return existingState;
168
- const initialState = {
169
- occurrenceIndex: 0,
170
- zeroOccurrenceIndex: 0,
171
- hasStandardInGroup: false,
172
- hasCorrectionInGroup: false,
173
- };
174
- groupStateByKey.set(groupKey, initialState);
175
- return initialState;
176
- }
177
- resolveNeutralDistributionPriceType(groupState) {
178
- if (!groupState.hasStandardInGroup)
179
- return DISTRIBUTION_PRICE_TYPE.STANDARD;
180
- if (!groupState.hasCorrectionInGroup)
181
- return DISTRIBUTION_PRICE_TYPE.CORRECTION;
182
- return groupState.zeroOccurrenceIndex % 2 === 0 ? DISTRIBUTION_PRICE_TYPE.STANDARD : DISTRIBUTION_PRICE_TYPE.CORRECTION;
183
- }
184
- determineDistributionPriceType(priceNetto, quantity, groupState) {
185
- const priceNettoValue = priceNetto ?? 0;
186
- const quantityValue = quantity ?? 0;
187
- const isPositive = priceNettoValue > 0 || quantityValue > 0;
188
- const isNegative = priceNettoValue < 0 || quantityValue < 0;
189
- const isZeroRow = priceNettoValue === 0 && quantityValue === 0;
190
- if (isPositive) {
191
- groupState.hasStandardInGroup = true;
192
- return DISTRIBUTION_PRICE_TYPE.STANDARD;
193
- }
194
- if (isNegative) {
195
- groupState.hasCorrectionInGroup = true;
196
- return DISTRIBUTION_PRICE_TYPE.CORRECTION;
197
- }
198
- const resolvedType = this.resolveNeutralDistributionPriceType(groupState);
199
- if (resolvedType === DISTRIBUTION_PRICE_TYPE.STANDARD) {
200
- groupState.hasStandardInGroup = true;
201
- }
202
- else {
203
- groupState.hasCorrectionInGroup = true;
204
- }
205
- if (isZeroRow) {
206
- groupState.zeroOccurrenceIndex += 1;
207
- }
208
- return resolvedType;
209
- }
210
- createDistributionPriceGroupKey(price) {
211
- return [
212
- price.dateFrom,
213
- price.dateTo,
214
- price.kind,
215
- price.unit ?? "",
216
- price.unitPrice ?? "",
217
- price.timeSlot ?? "",
218
- price.description ?? "",
219
- price.priceGroup ?? "",
220
- ].join("|");
221
- }
222
157
  createInvoicePriceConflictKey(row) {
223
158
  return [row.invoice_id, row.customer_id, row.date_from, row.date_to, row.kind, row.price_type].join("|");
224
159
  }
225
- createDeviceGroupKey(device, reading) {
226
- return [device.number, reading.dateFrom, reading.dateTo, device.kind ?? reading.kind ?? ""].join("|");
227
- }
228
160
  };
229
161
  exports.PpasDistributionTransformation = PpasDistributionTransformation = __decorate([
230
162
  (0, tsyringe_1.injectable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"PpasDistributionTransformation.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PpasDistributionTransformation.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export declare const PPAS_INVOICE_PRICE_TYPE: {
2
+ readonly STANDARD: "STANDARD";
3
+ readonly CORRECTION: "CORRECTION";
4
+ };
5
+ export type PpasInvoicePriceType = (typeof PPAS_INVOICE_PRICE_TYPE)[keyof typeof PPAS_INVOICE_PRICE_TYPE];
6
+ export type PpasInvoiceGroupState = {
7
+ occurrenceIndex: number;
8
+ zeroOccurrenceIndex: number;
9
+ hasStandardInGroup: boolean;
10
+ hasCorrectionInGroup: boolean;
11
+ };
12
+ export declare function getOrCreateGroupState(groupStateByKey: Map<string, PpasInvoiceGroupState>, groupKey: string): PpasInvoiceGroupState;
13
+ export declare function determinePriceType(priceNetto: number | null | undefined, quantity: number | null | undefined, groupState: PpasInvoiceGroupState): PpasInvoicePriceType;
14
+ export declare function createDeviceGroupKey(device: {
15
+ number: string;
16
+ kind?: string;
17
+ }, reading: {
18
+ dateFrom: string;
19
+ dateTo: string;
20
+ kind?: string;
21
+ }): string;
22
+ export declare function createPriceGroupKey(price: {
23
+ dateFrom: string;
24
+ dateTo: string;
25
+ kind: string;
26
+ unit?: string;
27
+ unitPrice?: number;
28
+ timeSlot?: number | string | null;
29
+ description?: string;
30
+ priceGroup?: string;
31
+ }): string;
32
+ export declare function normalizeToStringOrNull(value: string | number | undefined | null): string | null;
33
+ export declare function normalizeToNumberOrNull(value: string | number | undefined | null): number | null;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeToNumberOrNull = exports.normalizeToStringOrNull = exports.createPriceGroupKey = exports.createDeviceGroupKey = exports.determinePriceType = exports.getOrCreateGroupState = exports.PPAS_INVOICE_PRICE_TYPE = void 0;
4
+ exports.PPAS_INVOICE_PRICE_TYPE = {
5
+ STANDARD: "STANDARD",
6
+ CORRECTION: "CORRECTION",
7
+ };
8
+ function getOrCreateGroupState(groupStateByKey, groupKey) {
9
+ const existingState = groupStateByKey.get(groupKey);
10
+ if (existingState)
11
+ return existingState;
12
+ const initialState = {
13
+ occurrenceIndex: 0,
14
+ zeroOccurrenceIndex: 0,
15
+ hasStandardInGroup: false,
16
+ hasCorrectionInGroup: false,
17
+ };
18
+ groupStateByKey.set(groupKey, initialState);
19
+ return initialState;
20
+ }
21
+ exports.getOrCreateGroupState = getOrCreateGroupState;
22
+ function resolveNeutralPriceType(groupState) {
23
+ if (!groupState.hasStandardInGroup)
24
+ return exports.PPAS_INVOICE_PRICE_TYPE.STANDARD;
25
+ if (!groupState.hasCorrectionInGroup)
26
+ return exports.PPAS_INVOICE_PRICE_TYPE.CORRECTION;
27
+ return groupState.zeroOccurrenceIndex % 2 === 0 ? exports.PPAS_INVOICE_PRICE_TYPE.STANDARD : exports.PPAS_INVOICE_PRICE_TYPE.CORRECTION;
28
+ }
29
+ function determinePriceType(priceNetto, quantity, groupState) {
30
+ const priceNettoValue = priceNetto ?? 0;
31
+ const quantityValue = quantity ?? 0;
32
+ const isPositive = priceNettoValue > 0 || quantityValue > 0;
33
+ const isNegative = priceNettoValue < 0 || quantityValue < 0;
34
+ const isZeroRow = priceNettoValue === 0 && quantityValue === 0;
35
+ if (isPositive) {
36
+ groupState.hasStandardInGroup = true;
37
+ return exports.PPAS_INVOICE_PRICE_TYPE.STANDARD;
38
+ }
39
+ if (isNegative) {
40
+ groupState.hasCorrectionInGroup = true;
41
+ return exports.PPAS_INVOICE_PRICE_TYPE.CORRECTION;
42
+ }
43
+ const resolvedType = resolveNeutralPriceType(groupState);
44
+ if (resolvedType === exports.PPAS_INVOICE_PRICE_TYPE.STANDARD) {
45
+ groupState.hasStandardInGroup = true;
46
+ }
47
+ else {
48
+ groupState.hasCorrectionInGroup = true;
49
+ }
50
+ if (isZeroRow) {
51
+ groupState.zeroOccurrenceIndex += 1;
52
+ }
53
+ return resolvedType;
54
+ }
55
+ exports.determinePriceType = determinePriceType;
56
+ function createDeviceGroupKey(device, reading) {
57
+ return [device.number, reading.dateFrom, reading.dateTo, device.kind ?? reading.kind ?? ""].join("|");
58
+ }
59
+ exports.createDeviceGroupKey = createDeviceGroupKey;
60
+ function createPriceGroupKey(price) {
61
+ return [
62
+ price.dateFrom,
63
+ price.dateTo,
64
+ price.kind,
65
+ price.unit ?? "",
66
+ price.unitPrice ?? "",
67
+ price.timeSlot ?? "",
68
+ price.description ?? "",
69
+ price.priceGroup ?? "",
70
+ ].join("|");
71
+ }
72
+ exports.createPriceGroupKey = createPriceGroupKey;
73
+ function normalizeToStringOrNull(value) {
74
+ if (value === undefined || value === null)
75
+ return null;
76
+ const str = String(value).trim();
77
+ return str === "" ? null : str;
78
+ }
79
+ exports.normalizeToStringOrNull = normalizeToStringOrNull;
80
+ function normalizeToNumberOrNull(value) {
81
+ if (value === undefined || value === null || value === "")
82
+ return null;
83
+ const num = Number(value);
84
+ return Number.isFinite(num) ? num : null;
85
+ }
86
+ exports.normalizeToNumberOrNull = normalizeToNumberOrNull;
87
+ //# sourceMappingURL=PpasInvoicePriceTypeHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PpasInvoicePriceTypeHelper.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/transformations/ppas/PpasInvoicePriceTypeHelper.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG;IACnC,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CAClB,CAAC;AAWX,SAAgB,qBAAqB,CACjC,eAAmD,EACnD,QAAgB;IAEhB,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,MAAM,YAAY,GAA0B;QACxC,eAAe,EAAE,CAAC;QAClB,mBAAmB,EAAE,CAAC;QACtB,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,KAAK;KAC9B,CAAC;IAEF,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5C,OAAO,YAAY,CAAC;AACxB,CAAC;AAhBD,sDAgBC;AAED,SAAS,uBAAuB,CAAC,UAAiC;IAC9D,IAAI,CAAC,UAAU,CAAC,kBAAkB;QAAE,OAAO,+BAAuB,CAAC,QAAQ,CAAC;IAC5E,IAAI,CAAC,UAAU,CAAC,oBAAoB;QAAE,OAAO,+BAAuB,CAAC,UAAU,CAAC;IAChF,OAAO,UAAU,CAAC,mBAAmB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,+BAAuB,CAAC,UAAU,CAAC;AAC5H,CAAC;AAED,SAAgB,kBAAkB,CAC9B,UAAqC,EACrC,QAAmC,EACnC,UAAiC;IAEjC,MAAM,eAAe,GAAG,UAAU,IAAI,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,QAAQ,IAAI,CAAC,CAAC;IAEpC,MAAM,UAAU,GAAG,eAAe,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,eAAe,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,eAAe,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC;IAE/D,IAAI,UAAU,EAAE;QACZ,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACrC,OAAO,+BAAuB,CAAC,QAAQ,CAAC;KAC3C;IAED,IAAI,UAAU,EAAE;QACZ,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACvC,OAAO,+BAAuB,CAAC,UAAU,CAAC;KAC7C;IAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEzD,IAAI,YAAY,KAAK,+BAAuB,CAAC,QAAQ,EAAE;QACnD,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;KACxC;SAAM;QACH,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAC1C;IAED,IAAI,SAAS,EAAE;QACX,UAAU,CAAC,mBAAmB,IAAI,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAnCD,gDAmCC;AAED,SAAgB,oBAAoB,CAChC,MAAyC,EACzC,OAA4D;IAE5D,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;AAC1G,CAAC;AALD,oDAKC;AAED,SAAgB,mBAAmB,CAAC,KASnC;IACG,OAAO;QACH,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,IAAI,IAAI,EAAE;QAChB,KAAK,CAAC,SAAS,IAAI,EAAE;QACrB,KAAK,CAAC,QAAQ,IAAI,EAAE;QACpB,KAAK,CAAC,WAAW,IAAI,EAAE;QACvB,KAAK,CAAC,UAAU,IAAI,EAAE;KACzB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AApBD,kDAoBC;AAED,SAAgB,uBAAuB,CAAC,KAAyC;IAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAJD,0DAIC;AAED,SAAgB,uBAAuB,CAAC,KAAyC;IAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAJD,0DAIC"}
@@ -21,6 +21,7 @@ class EnapoWorker extends integration_engine_1.AbstractWorker {
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
23
  this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasDistributionTask));
24
+ this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasCommercialTask));
24
25
  this.registerTask(Di_1.EnapoContainer.resolve(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PorsennaDistributionTask));
25
26
  }
26
27
  }
@@ -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;QAgB5B,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;QAdE,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;QACtG,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACzG,CAAC;CAMJ;AArBD,kCAqBC"}
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;QAiB5B,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;QAfE,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;QACtG,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,YAAY,CAAC,mBAAc,CAAC,OAAO,CAAQ,qDAAyB,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACzG,CAAC;CAMJ;AAtBD,kCAsBC"}
@@ -0,0 +1,4 @@
1
+ export interface IEnapoPpasCommercialParams {
2
+ from: string;
3
+ to: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEnapoPpasCommercialParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEnapoPpasCommercialParams.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/interfaces/IEnapoPpasCommercialParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { IEnapoPpasCommercialParams } from "../interfaces/IEnapoPpasCommercialParams";
2
+ export declare class EnapoPpasCommercialParamsSchema implements IEnapoPpasCommercialParams {
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.EnapoPpasCommercialParamsSchema = void 0;
13
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
+ class EnapoPpasCommercialParamsSchema {
15
+ }
16
+ exports.EnapoPpasCommercialParamsSchema = EnapoPpasCommercialParamsSchema;
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
+ ], EnapoPpasCommercialParamsSchema.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
+ ], EnapoPpasCommercialParamsSchema.prototype, "to", void 0);
29
+ //# sourceMappingURL=EnapoPpasCommercialParamsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnapoPpasCommercialParamsSchema.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/schema/EnapoPpasCommercialParamsSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAA0F;AAG1F,MAAa,+BAA+B;CAS3C;AATD,0EASC;AALG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3B,IAAA,wBAAM,EAAC,EAAE,EAAE,EAAE,CAAC;;6DACD;AAId;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3B,IAAA,wBAAM,EAAC,EAAE,EAAE,EAAE,CAAC;;2DACH"}
@@ -0,0 +1,34 @@
1
+ import { PpasCommercialDatasource } from "../../datasources/ppas/commercial/PpasCommercialDatasource";
2
+ import { PpasCommercialInvoiceDeviceRepository } from "../../repositories/ppas/PpasCommercialInvoiceDeviceRepository";
3
+ import { PpasCommercialInvoiceInstallationRepository } from "../../repositories/ppas/PpasCommercialInvoiceInstallationRepository";
4
+ import { PpasCommercialInvoicePriceRepository } from "../../repositories/ppas/PpasCommercialInvoicePriceRepository";
5
+ import { PpasCommercialInvoiceRepository } from "../../repositories/ppas/PpasCommercialInvoiceRepository";
6
+ import { PpasCommercialTransformation } from "../../transformations/ppas/PpasCommercialTransformation";
7
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
8
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
9
+ import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
10
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
11
+ import { IEnapoPpasCommercialParams } from "../interfaces/IEnapoPpasCommercialParams";
12
+ import { EnapoPpasCommercialParamsSchema } from "../schema/EnapoPpasCommercialParamsSchema";
13
+ export declare class EnapoPpasCommercialTask extends AbstractTask<IEnapoPpasCommercialParams> {
14
+ protected dbConnector: IDatabaseConnector;
15
+ protected datasource: PpasCommercialDatasource;
16
+ protected ppasCommercialInvoiceRepository: PpasCommercialInvoiceRepository;
17
+ protected ppasCommercialInvoiceInstallationRepository: PpasCommercialInvoiceInstallationRepository;
18
+ protected ppasCommercialInvoiceDeviceRepository: PpasCommercialInvoiceDeviceRepository;
19
+ protected ppasCommercialInvoicePriceRepository: PpasCommercialInvoicePriceRepository;
20
+ protected ppasCommercialTransformation: PpasCommercialTransformation;
21
+ protected logger: ILogger;
22
+ queueName: string;
23
+ queueTtl: number;
24
+ schema: typeof EnapoPpasCommercialParamsSchema;
25
+ private readonly requestDelayMs;
26
+ constructor(config: ISimpleConfig, dbConnector: IDatabaseConnector, datasource: PpasCommercialDatasource, ppasCommercialInvoiceRepository: PpasCommercialInvoiceRepository, ppasCommercialInvoiceInstallationRepository: PpasCommercialInvoiceInstallationRepository, ppasCommercialInvoiceDeviceRepository: PpasCommercialInvoiceDeviceRepository, ppasCommercialInvoicePriceRepository: PpasCommercialInvoicePriceRepository, ppasCommercialTransformation: PpasCommercialTransformation, logger: ILogger);
27
+ execute(params: IEnapoPpasCommercialParams): Promise<void>;
28
+ private saveInvoice;
29
+ private resolveDateRange;
30
+ private buildDateWindows;
31
+ private getLastInvoiceDateOrFallback;
32
+ protected sleep(ms: number): Promise<void>;
33
+ private readConfigOrDefault;
34
+ }
@@ -0,0 +1,181 @@
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.EnapoPpasCommercialTask = void 0;
16
+ const constants_1 = require("../../constants");
17
+ const PpasCommercialDatasource_1 = require("../../datasources/ppas/commercial/PpasCommercialDatasource");
18
+ const EnapoWorkerContainerToken_1 = require("../../ioc/EnapoWorkerContainerToken");
19
+ const PpasCommercialInvoiceDeviceRepository_1 = require("../../repositories/ppas/PpasCommercialInvoiceDeviceRepository");
20
+ const PpasCommercialInvoiceInstallationRepository_1 = require("../../repositories/ppas/PpasCommercialInvoiceInstallationRepository");
21
+ const PpasCommercialInvoicePriceRepository_1 = require("../../repositories/ppas/PpasCommercialInvoicePriceRepository");
22
+ const PpasCommercialInvoiceRepository_1 = require("../../repositories/ppas/PpasCommercialInvoiceRepository");
23
+ const PpasCommercialTransformation_1 = require("../../transformations/ppas/PpasCommercialTransformation");
24
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
25
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
26
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
27
+ const luxon_1 = require("@golemio/core/dist/shared/luxon");
28
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
29
+ const EnapoPpasCommercialParamsSchema_1 = require("../schema/EnapoPpasCommercialParamsSchema");
30
+ const BACKFILL_FROM_DATE = "2024-01-01";
31
+ const MAX_DATE_RANGE_DAYS = 366;
32
+ const DEFAULT_REQUEST_DELAY_MS = 650;
33
+ let EnapoPpasCommercialTask = exports.EnapoPpasCommercialTask = class EnapoPpasCommercialTask extends integration_engine_1.AbstractTask {
34
+ constructor(config, dbConnector, datasource, ppasCommercialInvoiceRepository, ppasCommercialInvoiceInstallationRepository, ppasCommercialInvoiceDeviceRepository, ppasCommercialInvoicePriceRepository, ppasCommercialTransformation, logger) {
35
+ super(constants_1.ENAPO_WORKER_NAME);
36
+ this.dbConnector = dbConnector;
37
+ this.datasource = datasource;
38
+ this.ppasCommercialInvoiceRepository = ppasCommercialInvoiceRepository;
39
+ this.ppasCommercialInvoiceInstallationRepository = ppasCommercialInvoiceInstallationRepository;
40
+ this.ppasCommercialInvoiceDeviceRepository = ppasCommercialInvoiceDeviceRepository;
41
+ this.ppasCommercialInvoicePriceRepository = ppasCommercialInvoicePriceRepository;
42
+ this.ppasCommercialTransformation = ppasCommercialTransformation;
43
+ this.logger = logger;
44
+ this.queueName = "fetchPpasCommercial";
45
+ this.queueTtl = 60 * 60 * 1000;
46
+ this.schema = EnapoPpasCommercialParamsSchema_1.EnapoPpasCommercialParamsSchema;
47
+ this.requestDelayMs = this.readConfigOrDefault(config, "module.energetics.enapo.ppas.commercial.requestDelayMs", DEFAULT_REQUEST_DELAY_MS);
48
+ }
49
+ async execute(params) {
50
+ try {
51
+ const companyIdList = await this.datasource.getCompanyIdList();
52
+ const processedIntNums = new Set();
53
+ let isFirstRequest = true;
54
+ for (const companyId of companyIdList) {
55
+ const { from, to } = await this.resolveDateRange(params, companyId);
56
+ for (const window of this.buildDateWindows(from, to)) {
57
+ if (!isFirstRequest) {
58
+ await this.sleep(this.requestDelayMs);
59
+ }
60
+ isFirstRequest = false;
61
+ let invoiceList;
62
+ try {
63
+ invoiceList = await this.datasource.getInvoiceList(window.from, window.to, companyId);
64
+ }
65
+ catch (err) {
66
+ // Stop this company's windows (don't continue) so the timestamp watermark cannot advance
67
+ // past the failed window — the next run retries it from MAX(facts_doc_date) + 1.
68
+ this.logger.error(`${this.constructor.name}: Skipping company ${companyId} from ${window.from} to ${window.to}` +
69
+ ` due to error: ` +
70
+ (err instanceof Error ? err.message : String(err)));
71
+ break;
72
+ }
73
+ for (const invoiceRef of invoiceList) {
74
+ const intNum = invoiceRef.id?.intNum;
75
+ if (!intNum || processedIntNums.has(intNum)) {
76
+ continue;
77
+ }
78
+ processedIntNums.add(intNum);
79
+ await this.sleep(this.requestDelayMs);
80
+ try {
81
+ await this.saveInvoice(intNum);
82
+ }
83
+ catch (err) {
84
+ this.logger.error(`${this.constructor.name}: Skipping invoice ${intNum} due to error: ` +
85
+ (err instanceof Error ? err.message : String(err)));
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ catch (err) {
92
+ if (err instanceof golemio_errors_1.AbstractGolemioError) {
93
+ throw err;
94
+ }
95
+ throw new golemio_errors_1.GeneralError(`Unable to download PPAS commercial data`, this.constructor.name, err);
96
+ }
97
+ }
98
+ async saveInvoice(intNum) {
99
+ const transaction = await this.dbConnector.getConnection().transaction();
100
+ try {
101
+ const invoiceDetail = await this.datasource.getInvoiceDetail(intNum);
102
+ const { invoiceHeader, rowInstallations, rowDevices, rowPrice } = this.ppasCommercialTransformation.transformElement(invoiceDetail);
103
+ await this.ppasCommercialInvoiceRepository.bulkSave([invoiceHeader], undefined, undefined, undefined, transaction);
104
+ await this.ppasCommercialInvoiceInstallationRepository.bulkSave(rowInstallations, undefined, undefined, undefined, transaction);
105
+ await this.ppasCommercialInvoicePriceRepository.bulkSave(rowPrice, undefined, undefined, undefined, transaction);
106
+ if (rowDevices.length > 0) {
107
+ await this.ppasCommercialInvoiceDeviceRepository.bulkSave(rowDevices, undefined, undefined, undefined, transaction);
108
+ }
109
+ await transaction.commit();
110
+ }
111
+ catch (err) {
112
+ await transaction.rollback();
113
+ throw err;
114
+ }
115
+ }
116
+ async resolveDateRange(params, companyId) {
117
+ if (params.from && params.to) {
118
+ return { from: params.from, to: params.to };
119
+ }
120
+ const from = await this.getLastInvoiceDateOrFallback(companyId);
121
+ const to = luxon_1.DateTime.now().toFormat("yyyy-LL-dd");
122
+ return { from, to };
123
+ }
124
+ // The upstream API limits a single query to MAX_DATE_RANGE_DAYS, so a longer range is split
125
+ // into consecutive windows. This also advances coverage to today even when a company has no
126
+ // invoices in early windows — otherwise the timestamp watermark would never move past the backfill date.
127
+ buildDateWindows(from, to) {
128
+ const windows = [];
129
+ const end = luxon_1.DateTime.fromISO(to);
130
+ let cursor = luxon_1.DateTime.fromISO(from);
131
+ while (cursor <= end) {
132
+ const windowEnd = luxon_1.DateTime.min(cursor.plus({ days: MAX_DATE_RANGE_DAYS }), end);
133
+ windows.push({ from: cursor.toFormat("yyyy-LL-dd"), to: windowEnd.toFormat("yyyy-LL-dd") });
134
+ cursor = windowEnd.plus({ days: 1 });
135
+ }
136
+ return windows;
137
+ }
138
+ async getLastInvoiceDateOrFallback(companyId) {
139
+ const result = (await this.dbConnector
140
+ .getConnection()
141
+ .query(`SELECT MAX(facts_doc_date)::text AS last_date FROM energetics.enapo_ppas_commercial_invoice ` +
142
+ `WHERE customer_company_id = :companyId`, {
143
+ type: "SELECT",
144
+ replacements: { companyId },
145
+ }));
146
+ if (result.length > 0 && result[0].last_date) {
147
+ return luxon_1.DateTime.fromISO(result[0].last_date).plus({ days: 1 }).toFormat("yyyy-LL-dd");
148
+ }
149
+ return BACKFILL_FROM_DATE;
150
+ }
151
+ sleep(ms) {
152
+ return new Promise((resolve) => setTimeout(resolve, ms));
153
+ }
154
+ readConfigOrDefault(config, key, defaultValue) {
155
+ try {
156
+ return config.getValue(key);
157
+ }
158
+ catch {
159
+ return defaultValue;
160
+ }
161
+ }
162
+ };
163
+ exports.EnapoPpasCommercialTask = EnapoPpasCommercialTask = __decorate([
164
+ (0, tsyringe_1.injectable)(),
165
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
166
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
167
+ __param(2, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnapoPpasCommercialDatasource)),
168
+ __param(3, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialInvoiceRepository)),
169
+ __param(4, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialInvoiceInstallationRepository)),
170
+ __param(5, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialInvoiceDeviceRepository)),
171
+ __param(6, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialInvoicePriceRepository)),
172
+ __param(7, (0, tsyringe_1.inject)(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialTransformation)),
173
+ __param(8, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
174
+ __metadata("design:paramtypes", [Object, Object, PpasCommercialDatasource_1.PpasCommercialDatasource,
175
+ PpasCommercialInvoiceRepository_1.PpasCommercialInvoiceRepository,
176
+ PpasCommercialInvoiceInstallationRepository_1.PpasCommercialInvoiceInstallationRepository,
177
+ PpasCommercialInvoiceDeviceRepository_1.PpasCommercialInvoiceDeviceRepository,
178
+ PpasCommercialInvoicePriceRepository_1.PpasCommercialInvoicePriceRepository,
179
+ PpasCommercialTransformation_1.PpasCommercialTransformation, Object])
180
+ ], EnapoPpasCommercialTask);
181
+ //# sourceMappingURL=EnapoPpasCommercialTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnapoPpasCommercialTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/task/EnapoPpasCommercialTask.ts"],"names":[],"mappings":"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"}