@golemio/energetics 1.12.2-dev.2727447026 → 1.12.2-dev.2740928370

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 (130) hide show
  1. package/db/example/00_clear_test_data.sql +0 -13
  2. package/db/migrations/postgresql/{20260730120000-enapo-om-detail-porsenna.js → 20260805090000-ppas-distribution-installation.js} +2 -8
  3. package/db/migrations/postgresql/sqls/20260805090000-ppas-distribution-installation-down.sql +86 -0
  4. package/db/migrations/postgresql/sqls/20260805090000-ppas-distribution-installation-up.sql +124 -0
  5. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js +2 -5
  6. package/dist/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.js.map +1 -1
  7. package/dist/integration-engine/enapo/ioc/Di.js +2 -0
  8. package/dist/integration-engine/enapo/ioc/Di.js.map +1 -1
  9. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.d.ts +1 -0
  10. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js +1 -0
  11. package/dist/integration-engine/enapo/ioc/EnapoWorkerContainerToken.js.map +1 -1
  12. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceInstallationRepository.d.ts +7 -0
  13. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceInstallationRepository.js +36 -0
  14. package/dist/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceInstallationRepository.js.map +1 -0
  15. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.d.ts +7 -0
  16. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js +133 -122
  17. package/dist/integration-engine/enapo/transformations/ppas/PpasDistributionTransformation.js.map +1 -1
  18. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.d.ts +3 -1
  19. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.js +10 -5
  20. package/dist/integration-engine/enapo/workers/task/EnapoPpasDistributionTask.js.map +1 -1
  21. package/dist/output-gateway/constants/Links.d.ts +0 -1
  22. package/dist/output-gateway/constants/Links.js +1 -2
  23. package/dist/output-gateway/constants/Links.js.map +1 -1
  24. package/dist/output-gateway/index.js +1 -8
  25. package/dist/output-gateway/index.js.map +1 -1
  26. package/dist/output-gateway/ioc/Di.js +1 -9
  27. package/dist/output-gateway/ioc/Di.js.map +1 -1
  28. package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +0 -4
  29. package/dist/output-gateway/ioc/ModuleContainerToken.js +0 -4
  30. package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -1
  31. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput.d.ts +10 -10
  32. package/dist/schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceListInput.d.ts +1 -1
  33. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.d.ts +1 -3
  34. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.js +57 -72
  35. package/dist/schema-definitions/datasources/enapo/ppas/distribution/PpasDistributionSchema.js.map +1 -1
  36. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.d.ts +9 -8
  37. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.js +10 -8
  38. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceDeviceModel.js.map +1 -1
  39. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceInstallationModel.d.ts +26 -0
  40. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceInstallationModel.js +56 -0
  41. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceInstallationModel.js.map +1 -0
  42. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.d.ts +1 -17
  43. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.js +1 -33
  44. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoiceModel.js.map +1 -1
  45. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.d.ts +2 -1
  46. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.js +5 -3
  47. package/dist/schema-definitions/models/enapo/ppas/PpasDistributionInvoicePriceModel.js.map +1 -1
  48. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoice.d.ts +1 -17
  49. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice.d.ts +9 -7
  50. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceInstallation.d.ts +20 -0
  51. package/dist/{output-gateway/models/interfaces/IEnoBuildingDetailView.js → schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceInstallation.js} +1 -1
  52. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceInstallation.js.map +1 -0
  53. package/dist/schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice.d.ts +3 -1
  54. package/dist/schema-definitions/models/eno/AddressModel.d.ts +1 -1
  55. package/dist/schema-definitions/models/eno/AddressModel.js +1 -1
  56. package/dist/schema-definitions/models/eno/AddressModel.js.map +1 -1
  57. package/dist/schema-definitions/models/eno/interfaces/IAddress.d.ts +1 -1
  58. package/docs/implementation_documentation.md +4 -41
  59. package/docs/openapi-output.yaml +1 -260
  60. package/package.json +1 -1
  61. package/db/example/06_eno.sql +0 -25
  62. package/db/example/07_enapo_om_detail.sql +0 -131
  63. package/db/migrations/postgresql/20260729100000-enapo-gid-mapping-om-detail.js +0 -53
  64. package/db/migrations/postgresql/sqls/20260729100000-enapo-gid-mapping-om-detail-down.sql +0 -3
  65. package/db/migrations/postgresql/sqls/20260729100000-enapo-gid-mapping-om-detail-up.sql +0 -179
  66. package/db/migrations/postgresql/sqls/20260730120000-enapo-om-detail-porsenna-down.sql +0 -132
  67. package/db/migrations/postgresql/sqls/20260730120000-enapo-om-detail-porsenna-up.sql +0 -287
  68. package/db/scripts/ded_gid_mapping_mock_import.sql +0 -48
  69. package/dist/output-gateway/controllers/v2/EnoBuildingsController.d.ts +0 -11
  70. package/dist/output-gateway/controllers/v2/EnoBuildingsController.js +0 -53
  71. package/dist/output-gateway/controllers/v2/EnoBuildingsController.js.map +0 -1
  72. package/dist/output-gateway/helpers/objectMappers.d.ts +0 -10
  73. package/dist/output-gateway/helpers/objectMappers.js +0 -37
  74. package/dist/output-gateway/helpers/objectMappers.js.map +0 -1
  75. package/dist/output-gateway/models/EnoBuildingDetailViewModel.d.ts +0 -35
  76. package/dist/output-gateway/models/EnoBuildingDetailViewModel.js +0 -43
  77. package/dist/output-gateway/models/EnoBuildingDetailViewModel.js.map +0 -1
  78. package/dist/output-gateway/models/EnoConsumptionPointViewModel.d.ts +0 -105
  79. package/dist/output-gateway/models/EnoConsumptionPointViewModel.js +0 -118
  80. package/dist/output-gateway/models/EnoConsumptionPointViewModel.js.map +0 -1
  81. package/dist/output-gateway/models/EnoPorsennaDeviceViewModel.d.ts +0 -27
  82. package/dist/output-gateway/models/EnoPorsennaDeviceViewModel.js +0 -41
  83. package/dist/output-gateway/models/EnoPorsennaDeviceViewModel.js.map +0 -1
  84. package/dist/output-gateway/models/interfaces/IEnoBuildingDetailView.d.ts +0 -30
  85. package/dist/output-gateway/models/interfaces/IEnoBuildingDetailView.js.map +0 -1
  86. package/dist/output-gateway/models/interfaces/IEnoConsumptionPointView.d.ts +0 -104
  87. package/dist/output-gateway/models/interfaces/IEnoConsumptionPointView.js +0 -3
  88. package/dist/output-gateway/models/interfaces/IEnoConsumptionPointView.js.map +0 -1
  89. package/dist/output-gateway/models/interfaces/IEnoPorsennaDeviceView.d.ts +0 -22
  90. package/dist/output-gateway/models/interfaces/IEnoPorsennaDeviceView.js +0 -3
  91. package/dist/output-gateway/models/interfaces/IEnoPorsennaDeviceView.js.map +0 -1
  92. package/dist/output-gateway/repositories/AbstractNumericParsingRepository.d.ts +0 -12
  93. package/dist/output-gateway/repositories/AbstractNumericParsingRepository.js +0 -41
  94. package/dist/output-gateway/repositories/AbstractNumericParsingRepository.js.map +0 -1
  95. package/dist/output-gateway/repositories/EnoBuildingAddressesRepository.d.ts +0 -8
  96. package/dist/output-gateway/repositories/EnoBuildingAddressesRepository.js +0 -62
  97. package/dist/output-gateway/repositories/EnoBuildingAddressesRepository.js.map +0 -1
  98. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.d.ts +0 -18
  99. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js +0 -100
  100. package/dist/output-gateway/repositories/EnoBuildingDetailRepository.js.map +0 -1
  101. package/dist/output-gateway/repositories/EnoConsumptionPointsRepository.d.ts +0 -8
  102. package/dist/output-gateway/repositories/EnoConsumptionPointsRepository.js +0 -51
  103. package/dist/output-gateway/repositories/EnoConsumptionPointsRepository.js.map +0 -1
  104. package/dist/output-gateway/repositories/EnoPorsennaDevicesRepository.d.ts +0 -8
  105. package/dist/output-gateway/repositories/EnoPorsennaDevicesRepository.js +0 -51
  106. package/dist/output-gateway/repositories/EnoPorsennaDevicesRepository.js.map +0 -1
  107. package/dist/output-gateway/repositories/PorsennaConsumptionsRepository.d.ts +0 -8
  108. package/dist/output-gateway/repositories/PorsennaConsumptionsRepository.js +0 -52
  109. package/dist/output-gateway/repositories/PorsennaConsumptionsRepository.js.map +0 -1
  110. package/dist/output-gateway/repositories/PpasInvoiceChildRepository.d.ts +0 -13
  111. package/dist/output-gateway/repositories/PpasInvoiceChildRepository.js +0 -39
  112. package/dist/output-gateway/repositories/PpasInvoiceChildRepository.js.map +0 -1
  113. package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.d.ts +0 -22
  114. package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.js +0 -3
  115. package/dist/output-gateway/repositories/interfaces/IEnoBuildingDetailAggregate.js.map +0 -1
  116. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.d.ts +0 -106
  117. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.js +0 -3
  118. package/dist/output-gateway/routers/interfaces/IEnoBuildingDetailResponse.js.map +0 -1
  119. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.d.ts +0 -9
  120. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js +0 -40
  121. package/dist/output-gateway/routers/v2/V2EnoBuildingsRouter.js.map +0 -1
  122. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.d.ts +0 -14
  123. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js +0 -149
  124. package/dist/output-gateway/transformations/EnoBuildingDetailTransformation.js.map +0 -1
  125. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.d.ts +0 -17
  126. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js +0 -63
  127. package/dist/schema-definitions/models/enapo/EnapoGidMappingModel.js.map +0 -1
  128. package/dist/schema-definitions/models/enapo/interfaces/IEnapoGidMapping.d.ts +0 -11
  129. package/dist/schema-definitions/models/enapo/interfaces/IEnapoGidMapping.js +0 -3
  130. package/dist/schema-definitions/models/enapo/interfaces/IEnapoGidMapping.js.map +0 -1
@@ -9,16 +9,3 @@ truncate organizations;
9
9
  truncate access_limitation;
10
10
  truncate enapo_measurements;
11
11
  truncate enapo_pre_metadata_history;
12
- truncate enapo_gid_mapping;
13
- truncate eno_budova;
14
- truncate eno_adresa;
15
- truncate enapo_ppas_distribution_invoice;
16
- truncate enapo_ppas_distribution_invoice_device;
17
- truncate enapo_ppas_distribution_invoice_price;
18
- truncate enapo_ppas_commercial_invoice;
19
- truncate enapo_ppas_commercial_invoice_installations;
20
- truncate enapo_ppas_commercial_invoice_device;
21
- truncate enapo_ppas_commercial_invoice_price;
22
- truncate enapo_porsenna_buildings;
23
- truncate enapo_porsenna_devices;
24
- truncate enapo_porsenna_consumption;
@@ -7,10 +7,6 @@ var fs = require('fs');
7
7
  var path = require('path');
8
8
  var Promise;
9
9
 
10
- /**
11
- * We receive the dbmigrate dependency from dbmigrate initially.
12
- * This enables us to not have to rely on NODE_PATH.
13
- */
14
10
  exports.setup = function(options, seedLink) {
15
11
  dbm = options.dbmigrate;
16
12
  type = dbm.dataType;
@@ -19,12 +15,11 @@ exports.setup = function(options, seedLink) {
19
15
  };
20
16
 
21
17
  exports.up = function(db) {
22
- var filePath = path.join(__dirname, 'sqls', '20260730120000-enapo-om-detail-porsenna-up.sql');
18
+ var filePath = path.join(__dirname, 'sqls', '20260805090000-ppas-distribution-installation-up.sql');
23
19
  return new Promise( function( resolve, reject ) {
24
20
  fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25
21
  if (err) return reject(err);
26
22
  console.log('received data: ' + data);
27
-
28
23
  resolve(data);
29
24
  });
30
25
  })
@@ -34,12 +29,11 @@ exports.up = function(db) {
34
29
  };
35
30
 
36
31
  exports.down = function(db) {
37
- var filePath = path.join(__dirname, 'sqls', '20260730120000-enapo-om-detail-porsenna-down.sql');
32
+ var filePath = path.join(__dirname, 'sqls', '20260805090000-ppas-distribution-installation-down.sql');
38
33
  return new Promise( function( resolve, reject ) {
39
34
  fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40
35
  if (err) return reject(err);
41
36
  console.log('received data: ' + data);
42
-
43
37
  resolve(data);
44
38
  });
45
39
  })
@@ -0,0 +1,86 @@
1
+ -- Rounding is lossy, but an integer column cannot hold the fractional periods.
2
+ ALTER TABLE enapo_ppas_distribution_invoice_price
3
+ ALTER COLUMN time_slot TYPE int4 USING round(time_slot)::int4;
4
+
5
+ -- Give up the per-installation scoping. The pre-existing keys cannot represent more than one
6
+ -- installation per invoice, so colliding rows beyond the lowest place_id are dropped first -- the same
7
+ -- lossy restore the invoice header gets below.
8
+ DELETE FROM enapo_ppas_distribution_invoice_device d
9
+ USING enapo_ppas_distribution_invoice_device x
10
+ WHERE d.device_serial_number = x.device_serial_number
11
+ AND d.invoice_id = x.invoice_id
12
+ AND d.date_from = x.date_from
13
+ AND d.date_to = x.date_to
14
+ AND d.reading_type = x.reading_type
15
+ AND d.kind = x.kind
16
+ AND d.place_id > x.place_id;
17
+
18
+ DELETE FROM enapo_ppas_distribution_invoice_price p
19
+ USING enapo_ppas_distribution_invoice_price x
20
+ WHERE p.invoice_id = x.invoice_id
21
+ AND p.customer_id = x.customer_id
22
+ AND p.date_from = x.date_from
23
+ AND p.date_to = x.date_to
24
+ AND p.kind = x.kind
25
+ AND p.price_type = x.price_type
26
+ AND p.place_id > x.place_id;
27
+
28
+ -- Dropping the column cascades away both the place_id index and the primary key that contains it.
29
+ ALTER TABLE enapo_ppas_distribution_invoice_device DROP COLUMN place_id;
30
+ ALTER TABLE enapo_ppas_distribution_invoice_device
31
+ ADD CONSTRAINT enapo_ppas_distribution_invoice_device_pk
32
+ PRIMARY KEY (device_serial_number, invoice_id, date_from, date_to, reading_type, kind);
33
+
34
+ ALTER TABLE enapo_ppas_distribution_invoice_price DROP COLUMN place_id;
35
+ ALTER TABLE enapo_ppas_distribution_invoice_price
36
+ ADD CONSTRAINT enapo_ppas_distribution_invoice_price_pk
37
+ PRIMARY KEY (invoice_id, customer_id, date_from, date_to, kind, price_type);
38
+
39
+ ALTER TABLE enapo_ppas_distribution_invoice
40
+ ADD COLUMN eic varchar NULL,
41
+ ADD COLUMN place_id varchar NULL,
42
+ ADD COLUMN installations_billing_class varchar NULL,
43
+ ADD COLUMN installations_measurement_type varchar NULL,
44
+ ADD COLUMN installations_contract_contract_id varchar NULL,
45
+ ADD COLUMN installations_contract_move_in_date date NULL,
46
+ ADD COLUMN installations_contract_move_out_date date NULL,
47
+ ADD COLUMN installations_tdd_class varchar NULL,
48
+ ADD COLUMN installations_address_street varchar NULL,
49
+ ADD COLUMN installations_address_house_number varchar NULL,
50
+ ADD COLUMN installations_address_house_org_number varchar NULL,
51
+ ADD COLUMN installations_address_city varchar NULL,
52
+ ADD COLUMN installations_address_city_part varchar NULL,
53
+ ADD COLUMN installations_address_post_code varchar NULL,
54
+ ADD COLUMN installations_address_country varchar NULL,
55
+ ADD COLUMN installations_address_ruian_id int8 NULL;
56
+
57
+ -- Only one installation fits the invoice header, so the lowest place_id per invoice is restored.
58
+ UPDATE enapo_ppas_distribution_invoice i
59
+ SET
60
+ eic = s.eic,
61
+ place_id = s.place_id,
62
+ installations_billing_class = s.billing_class,
63
+ installations_measurement_type = s.measurement_type,
64
+ installations_contract_contract_id = s.contract_contract_id,
65
+ installations_contract_move_in_date = s.contract_move_in_date,
66
+ installations_contract_move_out_date = s.contract_move_out_date,
67
+ installations_tdd_class = s.tdd_class,
68
+ installations_address_street = s.address_street,
69
+ installations_address_house_number = s.address_house_number,
70
+ installations_address_house_org_number = s.address_house_org_number,
71
+ installations_address_city = s.address_city,
72
+ installations_address_city_part = s.address_city_part,
73
+ installations_address_post_code = s.address_post_code,
74
+ installations_address_country = s.address_country,
75
+ installations_address_ruian_id = s.address_ruian_id
76
+ FROM (
77
+ SELECT DISTINCT ON (invoice_id, customer_id) *
78
+ FROM enapo_ppas_distribution_installation
79
+ ORDER BY invoice_id, customer_id, place_id
80
+ ) s
81
+ WHERE i.id = s.invoice_id AND i.customer_id = s.customer_id;
82
+
83
+ CREATE INDEX idx_ppas_invoice_eic ON enapo_ppas_distribution_invoice(eic);
84
+ CREATE INDEX idx_ppas_invoice_place_id ON enapo_ppas_distribution_invoice(place_id);
85
+
86
+ DROP TABLE enapo_ppas_distribution_installation;
@@ -0,0 +1,124 @@
1
+ CREATE TABLE enapo_ppas_distribution_installation (
2
+ invoice_id varchar,
3
+ customer_id varchar,
4
+ place_id varchar,
5
+ eic varchar NULL,
6
+ billing_class varchar NULL,
7
+ measurement_type varchar NULL,
8
+ contract_contract_id varchar NULL,
9
+ contract_move_in_date date NULL,
10
+ contract_move_out_date date NULL,
11
+ tdd_class varchar NULL,
12
+ address_street varchar NULL,
13
+ address_house_number varchar NULL,
14
+ address_house_org_number varchar NULL,
15
+ address_city varchar NULL,
16
+ address_city_part varchar NULL,
17
+ address_post_code varchar NULL,
18
+ address_country varchar NULL,
19
+ address_ruian_id int8 NULL,
20
+ created_at timestamptz DEFAULT now() NULL,
21
+ updated_at timestamptz NULL,
22
+ CONSTRAINT enapo_ppas_distribution_installation_pk PRIMARY KEY (invoice_id, customer_id, place_id)
23
+ );
24
+
25
+ CREATE INDEX idx_ppas_distribution_installation_eic ON enapo_ppas_distribution_installation(eic);
26
+ CREATE INDEX idx_ppas_distribution_installation_place_id ON enapo_ppas_distribution_installation(place_id);
27
+
28
+ -- Move the already stored installations out of the invoice header, its still necessary to download history because there can be more than one installation per invoice
29
+ INSERT INTO enapo_ppas_distribution_installation (
30
+ invoice_id, customer_id, place_id, eic, billing_class, measurement_type,
31
+ contract_contract_id, contract_move_in_date, contract_move_out_date, tdd_class,
32
+ address_street, address_house_number, address_house_org_number, address_city,
33
+ address_city_part, address_post_code, address_country, address_ruian_id
34
+ )
35
+ SELECT
36
+ id, customer_id, place_id, eic, installations_billing_class, installations_measurement_type,
37
+ installations_contract_contract_id, installations_contract_move_in_date, installations_contract_move_out_date,
38
+ installations_tdd_class, installations_address_street, installations_address_house_number,
39
+ installations_address_house_org_number, installations_address_city, installations_address_city_part,
40
+ installations_address_post_code, installations_address_country, installations_address_ruian_id
41
+ FROM enapo_ppas_distribution_invoice
42
+ WHERE place_id IS NOT NULL
43
+ ON CONFLICT (invoice_id, customer_id, place_id) DO NOTHING;
44
+
45
+ ALTER TABLE enapo_ppas_distribution_invoice_device ADD COLUMN place_id varchar NULL;
46
+ ALTER TABLE enapo_ppas_distribution_invoice_price ADD COLUMN place_id varchar NULL;
47
+
48
+ -- Existing rows were written when only installations[0] was stored
49
+ UPDATE enapo_ppas_distribution_invoice_device d
50
+ SET place_id = s.place_id
51
+ FROM (
52
+ SELECT invoice_id, min(place_id) AS place_id
53
+ FROM enapo_ppas_distribution_installation
54
+ GROUP BY invoice_id
55
+ ) s
56
+ WHERE d.invoice_id = s.invoice_id;
57
+
58
+ UPDATE enapo_ppas_distribution_invoice_price p
59
+ SET place_id = s.place_id
60
+ FROM (
61
+ SELECT invoice_id, customer_id, min(place_id) AS place_id
62
+ FROM enapo_ppas_distribution_installation
63
+ GROUP BY invoice_id, customer_id
64
+ ) s
65
+ WHERE p.invoice_id = s.invoice_id AND p.customer_id = s.customer_id;
66
+
67
+ -- Rows whose invoice never reached the installation table cannot be attributed to a consumption point.
68
+ -- Deleting them here would be silent data loss, so the migration stops instead and leaves the call to us.
69
+ DO $$
70
+ DECLARE
71
+ orphan_devices bigint;
72
+ orphan_prices bigint;
73
+ BEGIN
74
+ SELECT count(*) INTO orphan_devices FROM enapo_ppas_distribution_invoice_device WHERE place_id IS NULL;
75
+ SELECT count(*) INTO orphan_prices FROM enapo_ppas_distribution_invoice_price WHERE place_id IS NULL;
76
+
77
+ IF orphan_devices > 0 OR orphan_prices > 0 THEN
78
+ RAISE EXCEPTION
79
+ 'Cannot scope distribution rows by place_id: % device and % price rows belong to invoices missing from enapo_ppas_distribution_installation. Resolve or remove them, then re-run.',
80
+ orphan_devices, orphan_prices;
81
+ END IF;
82
+ END $$;
83
+
84
+ ALTER TABLE enapo_ppas_distribution_invoice_device
85
+ ALTER COLUMN place_id SET NOT NULL,
86
+ DROP CONSTRAINT enapo_ppas_distribution_invoice_device_pk,
87
+ ADD CONSTRAINT enapo_ppas_distribution_invoice_device_pk
88
+ PRIMARY KEY (device_serial_number, invoice_id, place_id, date_from, date_to, reading_type, kind);
89
+
90
+ ALTER TABLE enapo_ppas_distribution_invoice_price
91
+ ALTER COLUMN place_id SET NOT NULL,
92
+ DROP CONSTRAINT enapo_ppas_distribution_invoice_price_pk,
93
+ ADD CONSTRAINT enapo_ppas_distribution_invoice_price_pk
94
+ PRIMARY KEY (invoice_id, customer_id, place_id, date_from, date_to, kind, price_type);
95
+
96
+ CREATE INDEX idx_ppas_distribution_invoice_device_place_id ON enapo_ppas_distribution_invoice_device(place_id);
97
+ CREATE INDEX idx_ppas_distribution_invoice_price_place_id ON enapo_ppas_distribution_invoice_price(place_id);
98
+
99
+ -- timeSlot is a fraction of the billed period (e.g. 0.19355 = 6 of 31 days), not an int
100
+ ALTER TABLE enapo_ppas_distribution_invoice_price
101
+ ALTER COLUMN time_slot TYPE numeric;
102
+
103
+ DROP INDEX IF EXISTS idx_ppas_invoice_eic;
104
+ DROP INDEX IF EXISTS idx_ppas_invoice_place_id;
105
+
106
+
107
+
108
+ ALTER TABLE enapo_ppas_distribution_invoice
109
+ DROP COLUMN eic,
110
+ DROP COLUMN place_id,
111
+ DROP COLUMN installations_billing_class,
112
+ DROP COLUMN installations_measurement_type,
113
+ DROP COLUMN installations_contract_contract_id,
114
+ DROP COLUMN installations_contract_move_in_date,
115
+ DROP COLUMN installations_contract_move_out_date,
116
+ DROP COLUMN installations_tdd_class,
117
+ DROP COLUMN installations_address_street,
118
+ DROP COLUMN installations_address_house_number,
119
+ DROP COLUMN installations_address_house_org_number,
120
+ DROP COLUMN installations_address_city,
121
+ DROP COLUMN installations_address_city_part,
122
+ DROP COLUMN installations_address_post_code,
123
+ DROP COLUMN installations_address_country,
124
+ DROP COLUMN installations_address_ruian_id;
@@ -26,11 +26,8 @@ let PpasDistributionDatasource = class PpasDistributionDatasource extends Abstra
26
26
  from,
27
27
  to,
28
28
  });
29
- let result = (await datasource.getAll()).InvoiceList;
30
- if (!Array.isArray(result)) {
31
- result = [result];
32
- }
33
- return result;
29
+ const result = await datasource.getAll();
30
+ return (Array.isArray(result) ? result : [result]);
34
31
  }
35
32
  async getInvoiceDetail(intNum) {
36
33
  const datasource = await this.getDatasource("/distribution/v1/invoice/detail/" + intNum, PpasDistributionSchema_1.ppasDistributionInvoiceDetailInputJsonSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"PpasDistributionDatasource.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,yIAGyE;AAEzE,wEAAqE;AACrE,iEAAwE;AACxE,sEAAmE;AAG5D,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,+CAAsB;IAClE,YAA4C,MAAqB;QAC7D,KAAK,CAAC,MAAM,EAAE,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,EAAU;QAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE,mEAA0C,EAAE;YACrH,IAAI;YACJ,EAAE;SACL,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,MAA6C,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,kCAAkC,GAAG,MAAM,EAC3C,qEAA4C,CAC/C,CAAC;QACF,OAAO,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAwC,CAAC;IAC9E,CAAC;CACJ,CAAA;AAxBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GADlC,0BAA0B,CAwBtC"}
1
+ {"version":3,"file":"PpasDistributionDatasource.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/enapo/datasources/ppas/distribution/PpasDistributionDatasource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,yIAGyE;AAEzE,wEAAqE;AACrE,iEAAwE;AACxE,sEAAmE;AAG5D,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,+CAAsB;IAClE,YAA4C,MAAqB;QAC7D,KAAK,CAAC,MAAM,EAAE,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,EAAU;QAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE,mEAA0C,EAAE;YACrH,IAAI;YACJ,EAAE;SACL,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;QAEzC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAwC,CAAC;IAC9F,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,kCAAkC,GAAG,MAAM,EAC3C,qEAA4C,CAC/C,CAAC;QACF,OAAO,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAwC,CAAC;IAC9E,CAAC;CACJ,CAAA;AAtBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GADlC,0BAA0B,CAsBtC"}
@@ -32,6 +32,7 @@ const PpasCommercialInvoiceInstallationRepository_1 = require("../repositories/p
32
32
  const PpasCommercialInvoicePriceRepository_1 = require("../repositories/ppas/PpasCommercialInvoicePriceRepository");
33
33
  const PpasCommercialInvoiceRepository_1 = require("../repositories/ppas/PpasCommercialInvoiceRepository");
34
34
  const PpasDistributionInvoiceDeviceRepository_1 = require("../repositories/ppas/PpasDistributionInvoiceDeviceRepository");
35
+ const PpasDistributionInvoiceInstallationRepository_1 = require("../repositories/ppas/PpasDistributionInvoiceInstallationRepository");
35
36
  const PpasDistributionInvoicePriceRepository_1 = require("../repositories/ppas/PpasDistributionInvoicePriceRepository");
36
37
  const PpasDistributionInvoiceRepository_1 = require("../repositories/ppas/PpasDistributionInvoiceRepository");
37
38
  const PPasMeasurementTransformation_1 = require("../transformations/PPasMeasurementTransformation");
@@ -85,6 +86,7 @@ EnapoContainer.register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.En
85
86
  .register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnoStructureRepository, EnoStructureRepository_1.EnoStructureRepository)
86
87
  .register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.EnoGeometryRepository, EnoGeometryRepository_1.EnoGeometryRepository)
87
88
  .register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionInvoiceDeviceRepository, PpasDistributionInvoiceDeviceRepository_1.PpasDistributionInvoiceDeviceRepository)
89
+ .register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionInvoiceInstallationRepository, PpasDistributionInvoiceInstallationRepository_1.PpasDistributionInvoiceInstallationRepository)
88
90
  .register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionInvoicePriceRepository, PpasDistributionInvoicePriceRepository_1.PpasDistributionInvoicePriceRepository)
89
91
  .register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasDistributionInvoiceRepository, PpasDistributionInvoiceRepository_1.PpasDistributionInvoiceRepository)
90
92
  .register(EnapoWorkerContainerToken_1.EnapoWorkerContainerToken.PpasCommercialInvoiceRepository, PpasCommercialInvoiceRepository_1.PpasCommercialInvoiceRepository)
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/Di.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/Di.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ declare const EnapoWorkerContainerToken: {
8
8
  EnapoMetadataRepository: symbol;
9
9
  PreIncomingDataLogRepository: symbol;
10
10
  PpasDistributionInvoiceDeviceRepository: symbol;
11
+ PpasDistributionInvoiceInstallationRepository: symbol;
11
12
  PpasDistributionInvoicePriceRepository: symbol;
12
13
  PpasDistributionInvoiceRepository: symbol;
13
14
  PpasCommercialInvoiceRepository: symbol;
@@ -14,6 +14,7 @@ const EnapoWorkerContainerToken = {
14
14
  EnapoMetadataRepository: Symbol(),
15
15
  PreIncomingDataLogRepository: Symbol(),
16
16
  PpasDistributionInvoiceDeviceRepository: Symbol(),
17
+ PpasDistributionInvoiceInstallationRepository: Symbol(),
17
18
  PpasDistributionInvoicePriceRepository: Symbol(),
18
19
  PpasDistributionInvoiceRepository: Symbol(),
19
20
  PpasCommercialInvoiceRepository: Symbol(),
@@ -1 +1 @@
1
- {"version":3,"file":"EnapoWorkerContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/EnapoWorkerContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,yBAAyB,GAAG;IAC9B,oBAAoB;IACpB,kCAAkC,EAAE,MAAM,EAAE;IAC5C,+BAA+B,EAAE,MAAM,EAAE;IACzC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kBAAkB,EAAE,MAAM,EAAE;IAC5B,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,sBAAsB;IACtB,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,4BAA4B,EAAE,MAAM,EAAE;IACtC,uCAAuC,EAAE,MAAM,EAAE;IACjD,sCAAsC,EAAE,MAAM,EAAE;IAChD,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,2CAA2C,EAAE,MAAM,EAAE;IACrD,qCAAqC,EAAE,MAAM,EAAE;IAC/C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,2BAA2B,EAAE,MAAM,EAAE;IACrC,6BAA6B,EAAE,MAAM,EAAE;IACvC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,yBAAyB;IACzB,6BAA6B,EAAE,MAAM,EAAE;IACvC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,yBAAyB,EAAE,MAAM,EAAE;IACnC,8BAA8B,EAAE,MAAM,EAAE;IACxC,4BAA4B,EAAE,MAAM,EAAE;IACtC,2BAA2B,EAAE,MAAM,EAAE;IACrC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,YAAY;IAEZ,eAAe;IACf,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,wBAAwB,EAAE,MAAM,EAAE;IAClC,YAAY;IAEZ,aAAa;IACb,oBAAoB,EAAE,MAAM,EAAE;IAE9B,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,wBAAwB,EAAE,MAAM,EAAE;IAClC,mBAAmB,EAAE,MAAM,EAAE;IAE7B,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,eAAe,EAAE,MAAM,EAAE;IACzB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,oBAAoB,EAAE,MAAM,EAAE;IAC9B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,uBAAuB,EAAE,MAAM,EAAE;IACjC,sBAAsB,EAAE,MAAM,EAAE;IAChC,qBAAqB,EAAE,MAAM,EAAE;IAE/B,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,eAAe,EAAE,MAAM,EAAE;IACzB,YAAY;CACf,CAAC;AAEO,8DAAyB"}
1
+ {"version":3,"file":"EnapoWorkerContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/ioc/EnapoWorkerContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,yBAAyB,GAAG;IAC9B,oBAAoB;IACpB,kCAAkC,EAAE,MAAM,EAAE;IAC5C,+BAA+B,EAAE,MAAM,EAAE;IACzC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kBAAkB,EAAE,MAAM,EAAE;IAC5B,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,sBAAsB;IACtB,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,4BAA4B,EAAE,MAAM,EAAE;IACtC,uCAAuC,EAAE,MAAM,EAAE;IACjD,6CAA6C,EAAE,MAAM,EAAE;IACvD,sCAAsC,EAAE,MAAM,EAAE;IAChD,iCAAiC,EAAE,MAAM,EAAE;IAC3C,+BAA+B,EAAE,MAAM,EAAE;IACzC,2CAA2C,EAAE,MAAM,EAAE;IACrD,qCAAqC,EAAE,MAAM,EAAE;IAC/C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,2BAA2B,EAAE,MAAM,EAAE;IACrC,6BAA6B,EAAE,MAAM,EAAE;IACvC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,yBAAyB;IACzB,6BAA6B,EAAE,MAAM,EAAE;IACvC,6BAA6B,EAAE,MAAM,EAAE;IACvC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,yBAAyB,EAAE,MAAM,EAAE;IACnC,8BAA8B,EAAE,MAAM,EAAE;IACxC,4BAA4B,EAAE,MAAM,EAAE;IACtC,2BAA2B,EAAE,MAAM,EAAE;IACrC,iCAAiC,EAAE,MAAM,EAAE;IAC3C,YAAY;IAEZ,eAAe;IACf,aAAa,EAAE,MAAM,EAAE;IACvB,cAAc,EAAE,MAAM,EAAE;IACxB,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,wBAAwB,EAAE,MAAM,EAAE;IAClC,YAAY;IAEZ,aAAa;IACb,oBAAoB,EAAE,MAAM,EAAE;IAE9B,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,wBAAwB,EAAE,MAAM,EAAE;IAClC,mBAAmB,EAAE,MAAM,EAAE;IAE7B,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,eAAe,EAAE,MAAM,EAAE;IACzB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,oBAAoB,EAAE,MAAM,EAAE;IAC9B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,qBAAqB,EAAE,MAAM,EAAE;IAC/B,uBAAuB,EAAE,MAAM,EAAE;IACjC,sBAAsB,EAAE,MAAM,EAAE;IAChC,qBAAqB,EAAE,MAAM,EAAE;IAE/B,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,eAAe,EAAE,MAAM,EAAE;IACzB,YAAY;CACf,CAAC;AAEO,8DAAyB"}
@@ -0,0 +1,7 @@
1
+ import { IModel } from "@golemio/core/dist/integration-engine/models/IModel";
2
+ import { PostgresModel } from "@golemio/core/dist/integration-engine/models/PostgresModel";
3
+ export declare class PpasDistributionInvoiceInstallationRepository extends PostgresModel implements IModel {
4
+ static REPOSITORY_NAME: string;
5
+ static JSON_SCHEMA_VALIDATOR_NAME: string;
6
+ constructor();
7
+ }
@@ -0,0 +1,36 @@
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 PpasDistributionInvoiceInstallationRepository_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.PpasDistributionInvoiceInstallationRepository = void 0;
14
+ const _sch_1 = require("../../../../schema-definitions");
15
+ const PpasDistributionInvoiceInstallationModel_1 = require("../../../../schema-definitions/models/enapo/ppas/PpasDistributionInvoiceInstallationModel");
16
+ const PostgresModel_1 = require("@golemio/core/dist/integration-engine/models/PostgresModel");
17
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
18
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
19
+ let PpasDistributionInvoiceInstallationRepository = PpasDistributionInvoiceInstallationRepository_1 = class PpasDistributionInvoiceInstallationRepository extends PostgresModel_1.PostgresModel {
20
+ constructor() {
21
+ super(PpasDistributionInvoiceInstallationRepository_1.REPOSITORY_NAME, {
22
+ pgTableName: PpasDistributionInvoiceInstallationModel_1.PpasDistributionInvoiceInstallationModel.TABLE_NAME,
23
+ pgSchema: _sch_1.EnergeticsSchema.pgSchema,
24
+ outputSequelizeAttributes: PpasDistributionInvoiceInstallationModel_1.PpasDistributionInvoiceInstallationModel.attributeModel,
25
+ savingType: "insertOrUpdate",
26
+ }, new golemio_validator_1.JSONSchemaValidator(PpasDistributionInvoiceInstallationRepository_1.JSON_SCHEMA_VALIDATOR_NAME, PpasDistributionInvoiceInstallationModel_1.PpasDistributionInvoiceInstallationModel.jsonSchema));
27
+ }
28
+ };
29
+ exports.PpasDistributionInvoiceInstallationRepository = PpasDistributionInvoiceInstallationRepository;
30
+ PpasDistributionInvoiceInstallationRepository.REPOSITORY_NAME = "PpasDistributionInvoiceInstallationRepository";
31
+ PpasDistributionInvoiceInstallationRepository.JSON_SCHEMA_VALIDATOR_NAME = "PpasDistributionInvoiceInstallationRepositoryValidator";
32
+ exports.PpasDistributionInvoiceInstallationRepository = PpasDistributionInvoiceInstallationRepository = PpasDistributionInvoiceInstallationRepository_1 = __decorate([
33
+ (0, tsyringe_1.injectable)(),
34
+ __metadata("design:paramtypes", [])
35
+ ], PpasDistributionInvoiceInstallationRepository);
36
+ //# sourceMappingURL=PpasDistributionInvoiceInstallationRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PpasDistributionInvoiceInstallationRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/repositories/ppas/PpasDistributionInvoiceInstallationRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yDAAwC;AACxC,wJAA2H;AAE3H,8FAA2F;AAC3F,mFAAkF;AAClF,iEAAgE;AAGzD,IAAM,6CAA6C,qDAAnD,MAAM,6CAA8C,SAAQ,6BAAa;IAI5E;QACI,KAAK,CACD,+CAA6C,CAAC,eAAe,EAC7D;YACI,WAAW,EAAE,mFAAwC,CAAC,UAAU;YAChE,QAAQ,EAAE,uBAAgB,CAAC,QAAQ;YACnC,yBAAyB,EAAE,mFAAwC,CAAC,cAAc;YAClF,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CACnB,+CAA6C,CAAC,0BAA0B,EACxE,mFAAwC,CAAC,UAAU,CACtD,CACJ,CAAC;IACN,CAAC;;AAlBQ,sGAA6C;AACxC,6DAAe,GAAG,+CAA+C,AAAlD,CAAmD;AAClE,wEAA0B,GAAG,wDAAwD,AAA3D,CAA4D;wDAF3F,6CAA6C;IADzD,IAAA,qBAAU,GAAE;;GACA,6CAA6C,CAmBzD"}
@@ -1,11 +1,13 @@
1
1
  import { IPpasDistributionInvoiceDetailInput } from "../../../../schema-definitions/datasources/enapo/ppas/distribution/IPpasDistributionInvoiceDetailInput";
2
2
  import { IPpasDistributionInvoice } from "../../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoice";
3
3
  import { IPpasDistributionInvoiceDevice } from "../../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceDevice";
4
+ import { IPpasDistributionInvoiceInstallation } from "../../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoiceInstallation";
4
5
  import { IPpasDistributionInvoicePrice } from "../../../../schema-definitions/models/enapo/ppas/interfaces/IPpasDistributionInvoicePrice";
5
6
  import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
6
7
  import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
7
8
  export declare class PpasDistributionTransformation extends AbstractTransformation<IPpasDistributionInvoiceDetailInput, {
8
9
  invoiceHeader: IPpasDistributionInvoice;
10
+ rowInstallations: IPpasDistributionInvoiceInstallation[];
9
11
  rowDevices: IPpasDistributionInvoiceDevice[];
10
12
  rowPrice: IPpasDistributionInvoicePrice[];
11
13
  }> {
@@ -14,8 +16,13 @@ export declare class PpasDistributionTransformation extends AbstractTransformati
14
16
  constructor(logger: ILogger);
15
17
  protected transformInternal: (element: IPpasDistributionInvoiceDetailInput) => {
16
18
  invoiceHeader: IPpasDistributionInvoice;
19
+ rowInstallations: IPpasDistributionInvoiceInstallation[];
17
20
  rowDevices: IPpasDistributionInvoiceDevice[];
18
21
  rowPrice: IPpasDistributionInvoicePrice[];
19
22
  };
23
+ private buildInvoiceHeader;
24
+ private buildInstallationRow;
25
+ private buildDeviceRows;
26
+ private buildPriceRows;
20
27
  private createInvoicePriceConflictKey;
21
28
  }