chellow 1715955542.0.0__tar.gz → 1716366171.0.0__tar.gz

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.

Potentially problematic release.


This version of chellow might be problematic. Click here for more details.

Files changed (474) hide show
  1. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/PKG-INFO +1 -1
  2. chellow-1716366171.0.0/VERSION +1 -0
  3. chellow-1715955542.0.0/chellow/gas/bill_parser_edi.py → chellow-1716366171.0.0/chellow/gas/bill_parser_total_edi.py +30 -182
  4. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/engine.py +1 -10
  5. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/views.py +27 -5
  6. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/bill_import.html +2 -0
  7. chellow-1716366171.0.0/chellow/templates/g/supply_edit.html +62 -0
  8. chellow-1716366171.0.0/test/gas/bill_parsers/test_g_bill_parser_total_edi.py +80 -0
  9. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/gas/test_engine.py +1 -1
  10. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/gas/test_gas_views.py +38 -0
  11. chellow-1715955542.0.0/VERSION +0 -1
  12. chellow-1715955542.0.0/chellow/templates/g/supply_edit.html +0 -76
  13. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/.ebextensions/chellow.config +0 -0
  14. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/.github/workflows/chellow.yml +0 -0
  15. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/.gitignore +0 -0
  16. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/README.md +0 -0
  17. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/application.py +0 -0
  18. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/bin/chellow_service_monitor.sh +0 -0
  19. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/bin/chellow_start.sh +0 -0
  20. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/__init__.py +0 -0
  21. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/api.py +0 -0
  22. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/bank_holidays.py +0 -0
  23. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/commands.py +0 -0
  24. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/dloads.py +0 -0
  25. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/__init__.py +0 -0
  26. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/aahedc.py +0 -0
  27. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_importer.py +0 -0
  28. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/__init__.py +0 -0
  29. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +0 -0
  30. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +0 -0
  31. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/bgb_edi.py +0 -0
  32. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/csv.py +0 -0
  33. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/engie_edi.py +0 -0
  34. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/engie_xls.py +0 -0
  35. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/engie_xlsx.py +0 -0
  36. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/gdf_csv.py +0 -0
  37. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/haven_csv.py +0 -0
  38. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/haven_edi.py +0 -0
  39. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/haven_edi_tprs.py +0 -0
  40. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/mm.py +0 -0
  41. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +0 -0
  42. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +0 -0
  43. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/sse_edi.py +0 -0
  44. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bill_parsers/sww_xls.py +0 -0
  45. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bmarketidx.py +0 -0
  46. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/bsuos.py +0 -0
  47. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/ccl.py +0 -0
  48. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/cfd.py +0 -0
  49. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/computer.py +0 -0
  50. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/dno_rate_parser.py +0 -0
  51. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/duos.py +0 -0
  52. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/elexon.py +0 -0
  53. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/energy_management.py +0 -0
  54. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/hh_importer.py +0 -0
  55. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/hh_parser_bg_csv.py +0 -0
  56. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/hh_parser_df2.py +0 -0
  57. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/hh_parser_simple_csv.py +0 -0
  58. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/laf_import.py +0 -0
  59. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/lcc.py +0 -0
  60. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/mdd_importer.py +0 -0
  61. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/rcrc.py +0 -0
  62. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/ro.py +0 -0
  63. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/scenario.py +0 -0
  64. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/system_price.py +0 -0
  65. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/tlms.py +0 -0
  66. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/tnuos.py +0 -0
  67. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/triad.py +0 -0
  68. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/e/views.py +0 -0
  69. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/edi_lib.py +0 -0
  70. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/bill_import.py +0 -0
  71. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/bill_parser_csv.py +0 -0
  72. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/bill_parser_engie_edi.py +0 -0
  73. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/ccl.py +0 -0
  74. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/cv.py +0 -0
  75. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/dn_rate_parser.py +0 -0
  76. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/gas/transportation.py +0 -0
  77. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/general_import.py +0 -0
  78. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/models.py +0 -0
  79. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/national_grid.py +0 -0
  80. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/proxy.py +0 -0
  81. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/rate_server.py +0 -0
  82. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/__init__.py +0 -0
  83. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_109.py +0 -0
  84. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_111.py +0 -0
  85. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_169.py +0 -0
  86. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_181.py +0 -0
  87. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_183.py +0 -0
  88. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_187.py +0 -0
  89. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_219.py +0 -0
  90. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_231.py +0 -0
  91. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_233.py +0 -0
  92. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_241.py +0 -0
  93. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_247.py +0 -0
  94. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_29.py +0 -0
  95. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_291.py +0 -0
  96. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_33.py +0 -0
  97. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_387.py +0 -0
  98. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_41.py +0 -0
  99. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_429.py +0 -0
  100. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_59.py +0 -0
  101. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_81.py +0 -0
  102. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_87.py +0 -0
  103. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_asset_comparison.py +0 -0
  104. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_batches.py +0 -0
  105. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_bills.py +0 -0
  106. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_csv_llfcs.py +0 -0
  107. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_csv_site_hh_data.py +0 -0
  108. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_csv_site_snags.py +0 -0
  109. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_ecoes_comparison.py +0 -0
  110. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_g_monthly_duration.py +0 -0
  111. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_g_supplies_snapshot.py +0 -0
  112. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_g_supply_virtual_bill.py +0 -0
  113. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_g_virtual_bills.py +0 -0
  114. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_g_virtual_bills_hh.py +0 -0
  115. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_sscs.py +0 -0
  116. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/reports/report_supply_contacts.py +0 -0
  117. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/static/css/chellow.css +0 -0
  118. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/static/images/favicon.svg +0 -0
  119. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/static/images/favicon_test.svg +0 -0
  120. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/static/images/logo.png +0 -0
  121. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/static/js/htmx.min.js +0 -0
  122. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/403.html +0 -0
  123. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/base.html +0 -0
  124. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/bill_type.html +0 -0
  125. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/bill_types.html +0 -0
  126. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/chain.html +0 -0
  127. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/csv_sites_monthly_duration.html +0 -0
  128. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/downloads.html +0 -0
  129. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/asset_comparison.html +0 -0
  130. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/channel.html +0 -0
  131. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/channel_add.html +0 -0
  132. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/channel_edit.html +0 -0
  133. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/channel_snag.html +0 -0
  134. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/channel_snag_edit.html +0 -0
  135. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/channel_snags.html +0 -0
  136. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/comm.html +0 -0
  137. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/comms.html +0 -0
  138. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/cop.html +0 -0
  139. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/cops.html +0 -0
  140. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/csv_bills.html +0 -0
  141. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/csv_register_reads.html +0 -0
  142. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/csv_sites_hh_data.html +0 -0
  143. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/csv_sites_triad.html +0 -0
  144. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/csv_supplies_hh_data.html +0 -0
  145. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/csv_supplies_snapshot.html +0 -0
  146. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/csv_supplies_triad.html +0 -0
  147. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_auto_importer.html +0 -0
  148. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_batch.html +0 -0
  149. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_batch_add.html +0 -0
  150. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_batch_edit.html +0 -0
  151. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_batch_file.html +0 -0
  152. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_batch_file_edit.html +0 -0
  153. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_batch_upload_file.html +0 -0
  154. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_batches.html +0 -0
  155. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_bill.html +0 -0
  156. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_bill_add.html +0 -0
  157. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_bill_edit.html +0 -0
  158. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_bill_import.html +0 -0
  159. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_bill_imports.html +0 -0
  160. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contract.html +0 -0
  161. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contract_edit.html +0 -0
  162. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contract_hh_import.html +0 -0
  163. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contract_hh_imports.html +0 -0
  164. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contract_properties.html +0 -0
  165. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contract_properties_edit.html +0 -0
  166. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contracts.html +0 -0
  167. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_contracts_add.html +0 -0
  168. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_rate_script.html +0 -0
  169. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_rate_script_add.html +0 -0
  170. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dc_rate_script_edit.html +0 -0
  171. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dno.html +0 -0
  172. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dno_rate_script.html +0 -0
  173. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dno_rate_script_add.html +0 -0
  174. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dno_rate_script_edit.html +0 -0
  175. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dnos.html +0 -0
  176. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dtc_meter_type.html +0 -0
  177. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/dtc_meter_types.html +0 -0
  178. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/duration_report.html +0 -0
  179. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/elexon.html +0 -0
  180. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/em_hh_data.html +0 -0
  181. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/em_months.html +0 -0
  182. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/em_site.html +0 -0
  183. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/em_totals.html +0 -0
  184. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/energisation_status.html +0 -0
  185. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/energisation_statuses.html +0 -0
  186. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/era_edit.html +0 -0
  187. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/era_edit_form.html +0 -0
  188. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/era_supplier_bill_add.html +0 -0
  189. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/generator_type.html +0 -0
  190. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/generator_types.html +0 -0
  191. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/gsp_group.html +0 -0
  192. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/gsp_groups.html +0 -0
  193. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/hh_datum_edit.html +0 -0
  194. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/lafs.html +0 -0
  195. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/lcc.html +0 -0
  196. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/llfc.html +0 -0
  197. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/llfc_edit.html +0 -0
  198. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/llfcs.html +0 -0
  199. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/market_role.html +0 -0
  200. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/market_roles.html +0 -0
  201. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/meter_payment_type.html +0 -0
  202. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/meter_payment_types.html +0 -0
  203. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/meter_type.html +0 -0
  204. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/meter_types.html +0 -0
  205. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_batch.html +0 -0
  206. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_batch_add.html +0 -0
  207. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_batch_edit.html +0 -0
  208. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_batch_file.html +0 -0
  209. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_batch_file_edit.html +0 -0
  210. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_batch_upload_file.html +0 -0
  211. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_batches.html +0 -0
  212. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_bill.html +0 -0
  213. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_bill_add.html +0 -0
  214. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_bill_edit.html +0 -0
  215. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_bill_import.html +0 -0
  216. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_bill_imports.html +0 -0
  217. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_contract.html +0 -0
  218. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_contract_add.html +0 -0
  219. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_contract_edit.html +0 -0
  220. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_contracts.html +0 -0
  221. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_rate_script.html +0 -0
  222. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_rate_script_add.html +0 -0
  223. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mop_rate_script_edit.html +0 -0
  224. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc.html +0 -0
  225. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_llfc.html +0 -0
  226. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_llfc_ssc.html +0 -0
  227. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_llfc_ssc_pc.html +0 -0
  228. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_llfc_ssc_pcs.html +0 -0
  229. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_llfc_sscs.html +0 -0
  230. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_llfcs.html +0 -0
  231. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_participant.html +0 -0
  232. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_participants.html +0 -0
  233. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_ssc.html +0 -0
  234. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtc_sscs.html +0 -0
  235. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/mtcs.html +0 -0
  236. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/ods_monthly_duration.html +0 -0
  237. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/participant.html +0 -0
  238. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/participants.html +0 -0
  239. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/parties.html +0 -0
  240. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/party.html +0 -0
  241. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/pc.html +0 -0
  242. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/pcs.html +0 -0
  243. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/read_add.html +0 -0
  244. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/read_edit.html +0 -0
  245. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/read_type.html +0 -0
  246. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/read_types.html +0 -0
  247. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/scenario.html +0 -0
  248. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/scenario_add.html +0 -0
  249. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/scenario_docs.html +0 -0
  250. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/scenario_edit.html +0 -0
  251. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/scenarios.html +0 -0
  252. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_add_e_supply.html +0 -0
  253. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_add_e_supply_form.html +0 -0
  254. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_hh_data.html +0 -0
  255. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_site_snags.html +0 -0
  256. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_snag.html +0 -0
  257. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_snag_edit.html +0 -0
  258. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_snags.html +0 -0
  259. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/site_snags_edit.html +0 -0
  260. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/source.html +0 -0
  261. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/sources.html +0 -0
  262. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/ssc.html +0 -0
  263. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/sscs.html +0 -0
  264. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batch.html +0 -0
  265. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batch_add.html +0 -0
  266. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batch_edit.html +0 -0
  267. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batch_file.html +0 -0
  268. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batch_file_add.html +0 -0
  269. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batch_file_edit.html +0 -0
  270. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batch_upload_file.html +0 -0
  271. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_batches.html +0 -0
  272. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_bill.html +0 -0
  273. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_bill_add.html +0 -0
  274. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_bill_edit.html +0 -0
  275. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_bill_import.html +0 -0
  276. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_bill_imports.html +0 -0
  277. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_contract.html +0 -0
  278. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_contract_add.html +0 -0
  279. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_contract_edit.html +0 -0
  280. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_contracts.html +0 -0
  281. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_rate_script.html +0 -0
  282. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_rate_script_add.html +0 -0
  283. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supplier_rate_script_edit.html +0 -0
  284. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply.html +0 -0
  285. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_edit.html +0 -0
  286. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_eras.html +0 -0
  287. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_hh_data.html +0 -0
  288. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_months.html +0 -0
  289. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_note_add.html +0 -0
  290. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_note_edit.html +0 -0
  291. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_notes.html +0 -0
  292. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_post.html +0 -0
  293. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/supply_virtual_bill.html +0 -0
  294. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/tpr.html +0 -0
  295. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/e/tprs.html +0 -0
  296. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/edi_viewer.html +0 -0
  297. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/batch.html +0 -0
  298. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/batch_add.html +0 -0
  299. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/batch_edit.html +0 -0
  300. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/batches.html +0 -0
  301. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/bill.html +0 -0
  302. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/bill_add.html +0 -0
  303. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/bill_edit.html +0 -0
  304. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/bill_imports.html +0 -0
  305. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/dn.html +0 -0
  306. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/dns.html +0 -0
  307. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/era_edit.html +0 -0
  308. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/exit_zone.html +0 -0
  309. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_auto_importer.html +0 -0
  310. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_contract.html +0 -0
  311. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_contract_add.html +0 -0
  312. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_contract_edit.html +0 -0
  313. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_contracts.html +0 -0
  314. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_rate_script.html +0 -0
  315. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_rate_script_add.html +0 -0
  316. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/industry_rate_script_edit.html +0 -0
  317. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/ldz.html +0 -0
  318. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/read_add.html +0 -0
  319. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/read_edit.html +0 -0
  320. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/read_type.html +0 -0
  321. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/read_types.html +0 -0
  322. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/reading_frequencies.html +0 -0
  323. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/reading_frequency.html +0 -0
  324. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/reports.html +0 -0
  325. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplier_contract.html +0 -0
  326. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplier_contract_add.html +0 -0
  327. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplier_contract_edit.html +0 -0
  328. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplier_contracts.html +0 -0
  329. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplier_rate_script.html +0 -0
  330. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplier_rate_script_add.html +0 -0
  331. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplier_rate_script_edit.html +0 -0
  332. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supplies.html +0 -0
  333. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supply.html +0 -0
  334. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supply_note_add.html +0 -0
  335. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supply_note_edit.html +0 -0
  336. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/supply_notes.html +0 -0
  337. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/unit.html +0 -0
  338. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/g/units.html +0 -0
  339. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/general_import.html +0 -0
  340. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/general_imports.html +0 -0
  341. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/home.html +0 -0
  342. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/input_date.html +0 -0
  343. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/local_report.html +0 -0
  344. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/local_reports.html +0 -0
  345. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/macros.html +0 -0
  346. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/national_grid.html +0 -0
  347. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/non_core_auto_importer.html +0 -0
  348. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/non_core_contract.html +0 -0
  349. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/non_core_contract_edit.html +0 -0
  350. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/non_core_contracts.html +0 -0
  351. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/non_core_rate_script.html +0 -0
  352. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/non_core_rate_script_add.html +0 -0
  353. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/non_core_rate_script_edit.html +0 -0
  354. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/object_summary.html +0 -0
  355. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/rate_server.html +0 -0
  356. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_run.html +0 -0
  357. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_run_asset_comparison.html +0 -0
  358. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_run_bill_check.html +0 -0
  359. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_run_ecoes_comparison.html +0 -0
  360. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_run_row.html +0 -0
  361. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_run_row_bill_check.html +0 -0
  362. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_run_supply_contacts.html +0 -0
  363. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/report_runs.html +0 -0
  364. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/site.html +0 -0
  365. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/site_add.html +0 -0
  366. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/site_edit.html +0 -0
  367. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/site_gen_graph.html +0 -0
  368. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/site_hh_data.html +0 -0
  369. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/site_months.html +0 -0
  370. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/site_used_graph.html +0 -0
  371. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/sites.html +0 -0
  372. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/supplies.html +0 -0
  373. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/system.html +0 -0
  374. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/tester.html +0 -0
  375. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/user.html +0 -0
  376. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/user_roles.html +0 -0
  377. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/templates/users.html +0 -0
  378. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/testing.py +0 -0
  379. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/utils.py +0 -0
  380. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/chellow/views.py +0 -0
  381. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/gpl.txt +0 -0
  382. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/pyproject.toml +0 -0
  383. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/requirements.txt +0 -0
  384. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/setup.cfg +0 -0
  385. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/systemd/chellow.service +0 -0
  386. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/systemd/chellow_upgrader.service +0 -0
  387. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/systemd/chellow_upgrader.timer +0 -0
  388. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/conftest.py +0 -0
  389. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_activity_mop_stark_xlsx.py +0 -0
  390. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_annual_mop_stark_xlsx.py +0 -0
  391. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_csv.py +0 -0
  392. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_engie_edi.py +0 -0
  393. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_engie_xls.py +0 -0
  394. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +0 -0
  395. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_haven_csv.py +0 -0
  396. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi.py +0 -0
  397. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi_tprs.py +0 -0
  398. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills.nonsettlement.dc.stark.xlsx +0 -0
  399. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills_old.nonsettlement.dc.stark.xlsx +0 -0
  400. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/test_bill_parser_nonsettlement_dc_stark_xlsx.py +0 -0
  401. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/bills.settlement.dc.stark.xlsx +0 -0
  402. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/test_bill_parser_settlement_dc_stark_xlsx.py +0 -0
  403. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_sse_edi.py +0 -0
  404. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/bill_parsers/test_bill_parser_sww_xls.py +0 -0
  405. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/system_price/prices.xls +0 -0
  406. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/system_price/test_system_price.py +0 -0
  407. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_aahedc.py +0 -0
  408. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_bill_importer.py +0 -0
  409. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_bsuos.py +0 -0
  410. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_ccl.py +0 -0
  411. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_cfd.py +0 -0
  412. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_computer.py +0 -0
  413. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_dno_rate_parser.py +0 -0
  414. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_duos.py +0 -0
  415. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_e_views.py +0 -0
  416. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_hh_importer.py +0 -0
  417. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_hh_parser_df2.py +0 -0
  418. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_laf_importer.py +0 -0
  419. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_mdd_importer.py +0 -0
  420. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_rcrc_importer.py +0 -0
  421. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_ro.py +0 -0
  422. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_scenario.py +0 -0
  423. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_tlms.py +0 -0
  424. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_tnuos.py +0 -0
  425. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/e/test_triad.py +0 -0
  426. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/gas/bill_parsers/test_g_bill_parser_engie_edi.py +0 -0
  427. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/gas/test_dn_rate_parser.py +0 -0
  428. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/gas/test_g_cv.py +0 -0
  429. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/gas/test_transportation.py +0 -0
  430. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_g_monthly_duration.py +0 -0
  431. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_g_supplies_snapshot.py +0 -0
  432. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_g_supply_virtual_bill.py +0 -0
  433. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_g_virtual_bills.py +0 -0
  434. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_g_virtual_bills_hh.py +0 -0
  435. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_109.py +0 -0
  436. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_111.py +0 -0
  437. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_169.py +0 -0
  438. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_181.py +0 -0
  439. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_183.py +0 -0
  440. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_187.py +0 -0
  441. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_219.py +0 -0
  442. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_231.py +0 -0
  443. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_233.py +0 -0
  444. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_241.py +0 -0
  445. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_247.py +0 -0
  446. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_29.py +0 -0
  447. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_291.py +0 -0
  448. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_33.py +0 -0
  449. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_387.py +0 -0
  450. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_41.py +0 -0
  451. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_429.py +0 -0
  452. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_59.py +0 -0
  453. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_81.py +0 -0
  454. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_87.py +0 -0
  455. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_asset_comparison.py +0 -0
  456. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_batches.py +0 -0
  457. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_bills.py +0 -0
  458. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_csv_llfcs.py +0 -0
  459. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_csv_site_hh_data.py +0 -0
  460. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_csv_site_snags.py +0 -0
  461. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_dno_vl_parser.py +0 -0
  462. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_ecoes_comparison.py +0 -0
  463. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_sscs.py +0 -0
  464. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/reports/test_report_supply_contacts.py +0 -0
  465. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_chellow.py +0 -0
  466. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_dloads.py +0 -0
  467. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_edi_viewer.py +0 -0
  468. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_general_import.py +0 -0
  469. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_models.py +0 -0
  470. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_rate_server.py +0 -0
  471. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_testing.py +0 -0
  472. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_utils.py +0 -0
  473. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/test_views.py +0 -0
  474. {chellow-1715955542.0.0 → chellow-1716366171.0.0}/test/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: chellow
3
- Version: 1715955542.0.0
3
+ Version: 1716366171.0.0
4
4
  Summary: Web Application for checking UK energy bills.
5
5
  Project-URL: Homepage, https://github.com/WessexWater/chellow
6
6
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
@@ -0,0 +1 @@
1
+ __version__ = "1716366171.0.0"
@@ -12,27 +12,11 @@ from chellow.utils import HH, to_ct, to_utc
12
12
 
13
13
  READ_TYPE_MAP = {"00": "A", "01": "E", "02": "E"}
14
14
 
15
- TCOD_MAP = {
16
- "Energy Bill Discount Scheme": {"PPK": "ebrs"},
17
- "Energy Bill Relief Scheme": {"PPK": "ebrs"},
18
- "Energy Bill Relief Scheme Discount": {"PPK": "ebrs"},
19
- "Unidentified Gas": {"PPK": "ug"},
20
- "Commodity": {"PPK": "commodity"},
21
- "Transportation": {"PPD": "transportation_fixed", "PPK": "transportation_variable"},
22
- "Gas Flexi": {"PPK": "commodity"},
23
- "Flex - Gas Flexi (New)": {"PPK": "commodity"},
24
- "Meter Reading": {"PPD": "meter_read"},
25
- "Meter Reading Credit Oct 19": {"FIX": "meter_read"},
26
- "Meter Rental": {"PPD": "metering"},
27
- "CCL": {"PPK": "ccl"},
28
- "Consumption Based Administration": {"PPK": "admin_variable"},
29
- "Swing": {"PPK": "swing"},
30
- }
31
15
 
32
16
  SUPPLIER_CODE_MAP = {
33
- "STD": "standing",
34
- "MET": "commodity",
35
- "CCL": "ccl",
17
+ "STD": ("standing", Decimal("1000"), Decimal("1")),
18
+ "MET": ("commodity", Decimal("100000"), Decimal("1000")),
19
+ "CCL": ("ccl", Decimal("100000"), Decimal("1000")),
36
20
  }
37
21
 
38
22
  UNIT_MAP = {"M3": "M3", "HH": "HCUF", "HCUF": "HCUF"}
@@ -62,16 +46,6 @@ def _process_BCD(elements, headers):
62
46
  btcd = elements["BTCD"]
63
47
  headers["bill_type_code"] = btcd[0]
64
48
 
65
- sumo = elements["SUMO"]
66
- start_date = to_date(sumo[0])
67
- if start_date is not None:
68
- headers["start_date"] = start_date
69
-
70
- if len(sumo) > 1:
71
- finish_date = _to_finish_date(sumo[1])
72
- if finish_date is not None:
73
- headers["finish_date"] = finish_date
74
-
75
49
 
76
50
  def _process_MHD(elements, headers):
77
51
  headers.clear()
@@ -88,62 +62,12 @@ def _process_MHD(elements, headers):
88
62
  headers["gross"] = Decimal("0.00")
89
63
 
90
64
 
91
- def _process_CCD1(elements, headers):
92
- mtnr = elements["MTNR"]
93
- msn = mtnr[0]
94
-
95
- mloc = elements["MLOC"]
96
-
97
- # Bug in EDI where MPRN missing in second CCD 1
98
- if "mprn" not in headers:
99
- headers["mprn"] = mloc[0]
100
-
101
- prdt = elements["PRDT"]
102
- pvdt = elements["PVDT"]
103
-
104
- pres_read_date = to_date(prdt[0])
105
- prev_read_date = to_date(pvdt[0])
106
-
107
- prrd = elements["PRRD"]
108
- pres_read_value = Decimal(prrd[0])
109
- pres_read_type = READ_TYPE_MAP[prrd[1]]
110
- prev_read_value = Decimal(prrd[2])
111
- prev_read_type = READ_TYPE_MAP[prrd[3]]
112
-
113
- conb = elements["CONB"]
114
- unit = UNIT_MAP[conb[1]]
115
- headers["breakdown"]["units_consumed"] += to_decimal(conb) / Decimal("1000")
116
-
117
- adjf = elements["ADJF"]
118
- correction_factor = Decimal(adjf[1]) / Decimal(100000)
119
-
120
- nuct = elements["NUCT"]
121
-
122
- headers["kwh"] += to_decimal(nuct) / Decimal("1000")
123
-
124
- headers["reads"].append(
125
- {
126
- "msn": msn,
127
- "unit": unit,
128
- "correction_factor": correction_factor,
129
- "prev_date": prev_read_date,
130
- "prev_value": prev_read_value,
131
- "prev_type_code": prev_read_type,
132
- "pres_date": pres_read_date,
133
- "pres_value": pres_read_value,
134
- "pres_type_code": pres_read_type,
135
- }
136
- )
137
-
138
-
139
65
  NUCT_LOOKUP = {"DAY": "days", "KWH": "kwh"}
140
66
 
141
67
 
142
68
  def _process_CCD2(elements, headers):
143
69
  breakdown = headers["breakdown"]
144
70
  ccde = elements["CCDE"]
145
- ccde_supplier_code = ccde[2]
146
- tcod = elements["TCOD"]
147
71
  nuct = elements["NUCT"]
148
72
  mtnr = elements["MTNR"]
149
73
  conb = elements["CONB"]
@@ -151,57 +75,45 @@ def _process_CCD2(elements, headers):
151
75
  prdt = elements["PRDT"]
152
76
  pvdt = elements["PVDT"]
153
77
  prrd = elements["PRRD"]
78
+ cppu = elements["CPPU"]
79
+ ctot = elements["CTOT"]
80
+ csdt = elements["CSDT"]
81
+ cedt = elements["CEDT"]
82
+ mloc = elements["MLOC"]
154
83
 
155
- if len(tcod) > 1:
156
- tpref_lookup = TCOD_MAP[tcod[1]]
157
- else:
158
- tpref_lookup = SUPPLIER_CODE_MAP
84
+ ccde_supplier_code = ccde[2]
85
+ tpref, rate_divisor, units_divisor = SUPPLIER_CODE_MAP[ccde_supplier_code]
159
86
 
160
- tpref = tpref_lookup[ccde_supplier_code]
87
+ rate_str = cppu[0]
161
88
 
162
- bpri = elements["BPRI"]
163
- if len(bpri[0]) > 0:
164
- rate_key = f"{tpref}_rate"
165
- if rate_key not in breakdown:
166
- breakdown[rate_key] = set()
167
- rate = Decimal(bpri[0]) / Decimal("10000000")
168
- breakdown[rate_key].add(rate)
89
+ rate_key = f"{tpref}_rate"
90
+ if rate_key not in breakdown:
91
+ breakdown[rate_key] = set()
92
+ rate = Decimal(rate_str) / rate_divisor
93
+ breakdown[rate_key].add(rate)
169
94
 
170
- try:
171
- ctot = elements["CTOT"]
172
- breakdown[f"{tpref}_gbp"] += to_decimal(ctot) / Decimal("100")
173
-
174
- if len(nuct) > 1:
175
- key = NUCT_LOOKUP[nuct[1]]
176
- else:
177
- if ccde_supplier_code == "PPK":
178
- key = f"{tpref}_kwh"
179
- elif ccde_supplier_code == "PPD":
180
- key = f"{tpref}_days"
181
-
182
- breakdown[key] += to_decimal(nuct) / Decimal("1000")
183
- except KeyError:
184
- pass
95
+ breakdown[f"{tpref}_gbp"] += to_decimal(ctot) / Decimal("100")
96
+
97
+ suff = NUCT_LOOKUP[nuct[1].strip()]
98
+ key = f"{tpref}_{suff}"
99
+ units_billed = to_decimal(nuct) / units_divisor
100
+ breakdown[key] += units_billed
185
101
 
186
102
  if "start_date" not in headers:
187
- csdt = elements["CSDT"]
188
- start_date = to_date(csdt[0])
189
- if start_date is not None:
190
- headers["start_date"] = start_date
103
+ headers["start_date"] = to_date(csdt[0])
191
104
 
192
105
  if "finish_date" not in headers:
193
- cedt = elements["CSDT"]
194
- finish_date = _to_finish_date(cedt[0])
195
- if finish_date is not None:
196
- headers["finish_date"] = finish_date
106
+ headers["finish_date"] = _to_finish_date(cedt[0])
197
107
 
198
108
  if "mprn" not in headers:
199
- mloc = elements["MLOC"]
200
109
  headers["mprn"] = mloc[0]
201
110
 
202
111
  if len(conb) > 0 and len(conb[0]) > 0:
203
112
  headers["breakdown"]["units_consumed"] += to_decimal(conb) / Decimal("1000")
204
113
 
114
+ if tpref == "commodity":
115
+ headers["kwh"] += units_billed
116
+
205
117
  if len(prrd) > 0 and len(prrd[0]) > 0:
206
118
  pres_read_date = to_date(prdt[0])
207
119
  prev_read_date = to_date(pvdt[0])
@@ -229,70 +141,6 @@ def _process_CCD2(elements, headers):
229
141
  )
230
142
 
231
143
 
232
- def _process_CCD3(elements, headers):
233
- breakdown = headers["breakdown"]
234
- ccde = elements["CCDE"]
235
- ccde_supplier_code = ccde[2]
236
- tcod = elements["TCOD"]
237
-
238
- tpref = TCOD_MAP[tcod[1]][ccde_supplier_code]
239
-
240
- bpri = elements["BPRI"]
241
- bpri_str = bpri[0]
242
- if len(bpri_str) > 0:
243
- rate_key = f"{tpref}_rate"
244
- if rate_key not in breakdown:
245
- breakdown[rate_key] = set()
246
- rate = Decimal(bpri_str) / Decimal("10000000")
247
- breakdown[rate_key].add(rate)
248
-
249
- nuct = elements["NUCT"]
250
-
251
- try:
252
- ctot = elements["CTOT"]
253
- breakdown[f"{tpref}_gbp"] += to_decimal(ctot) / Decimal("100")
254
-
255
- if ccde_supplier_code == "PPK":
256
- key = f"{tpref}_kwh"
257
- elif ccde_supplier_code == "PPD":
258
- key = f"{tpref}_days"
259
-
260
- breakdown[key] += to_decimal(nuct) / Decimal("1000")
261
- except KeyError:
262
- pass
263
-
264
-
265
- def _process_CCD4(elements, headers):
266
- breakdown = headers["breakdown"]
267
- ccde = elements["ccde"]
268
- ccde_supplier_code = ccde[2]
269
- tcod = elements["TCOD"]
270
-
271
- tpref = TCOD_MAP[tcod[1]][ccde_supplier_code]
272
-
273
- bpri = elements["BPRI"]
274
- rate_key = f"{tpref}_rate"
275
- if rate_key not in breakdown:
276
- breakdown[rate_key] = set()
277
- rate = Decimal(bpri[0]) / Decimal("10000000")
278
- breakdown[rate_key].add(rate)
279
-
280
- nuct = elements["NUCT"]
281
-
282
- try:
283
- ctot = elements["CTOT"]
284
- breakdown[tpref + "_gbp"] += to_decimal(ctot) / Decimal("100")
285
-
286
- if ccde_supplier_code == "PPK":
287
- key = f"{tpref}_kwh"
288
- elif ccde_supplier_code == "PPD":
289
- key = f"{tpref}_days"
290
-
291
- breakdown[key] += to_decimal(nuct) / Decimal("1000")
292
- except KeyError:
293
- pass
294
-
295
-
296
144
  def _process_MTR(elements, headers):
297
145
  if headers["message_type"] == "UTLBIL":
298
146
  breakdown = headers["breakdown"]
@@ -357,10 +205,10 @@ CODE_FUNCS = {
357
205
  "ADJ": _process_ADJ,
358
206
  "BCD": _process_BCD,
359
207
  "BTL": _process_NOOP,
360
- "CCD1": _process_CCD1,
208
+ "CCD1": _process_NOOP,
361
209
  "CCD2": _process_CCD2,
362
- "CCD3": _process_CCD3,
363
- "CCD4": _process_CCD4,
210
+ "CCD3": _process_NOOP,
211
+ "CCD4": _process_NOOP,
364
212
  "CDT": _process_NOOP,
365
213
  "CLO": _process_NOOP,
366
214
  "END": _process_NOOP,
@@ -502,13 +502,6 @@ class GDataSource:
502
502
  * h["calorific_value"]
503
503
  / 3.6
504
504
  )
505
- h["kwh_avg"] = (
506
- h["units_consumed"]
507
- * h["unit_factor"]
508
- * h["correction_factor"]
509
- * h["avg_cv"]
510
- / 3.6
511
- )
512
505
  h["ug_rate"] = float(
513
506
  g_rates(sess, self.caches, "ug", h["start_date"], True)[
514
507
  "ug_gbp_per_kwh"
@@ -703,9 +696,7 @@ def find_cv(sess, caches, dt, g_ldz_code):
703
696
  avg_cv = year_cache[ct.month]
704
697
  except KeyError:
705
698
  cv_list = [float(v["cv"]) for v in cvs.values()]
706
- avg_cv = year_cache[ct.month] = round(
707
- sum(cv_list) / len(cv_list), ndigits=1
708
- )
699
+ avg_cv = year_cache[ct.month] = sum(cv_list) / len(cv_list)
709
700
  return cv, avg_cv
710
701
 
711
702
 
@@ -289,15 +289,37 @@ def supply_edit_get(g_supply_id):
289
289
  )
290
290
 
291
291
 
292
+ @gas.route("/supplies/<int:g_supply_id>/edit", methods=["DELETE"])
293
+ def supply_edit_delete(g_supply_id):
294
+ g_supply = GSupply.get_by_id(g.sess, g_supply_id)
295
+ try:
296
+ g_supply.delete(g.sess)
297
+ g.sess.commit()
298
+ return hx_redirect("/supplies")
299
+ except BadRequest as e:
300
+ flash(e.description)
301
+ g_eras = g.sess.scalars(
302
+ select(GEra)
303
+ .where(GEra.g_supply == g_supply)
304
+ .order_by(GEra.start_date.desc())
305
+ )
306
+ g_exit_zones = g.sess.query(GExitZone).order_by(GExitZone.code).all()
307
+ return make_response(
308
+ render_template(
309
+ "supply_edit.html",
310
+ g_supply=g_supply,
311
+ g_eras=g_eras,
312
+ g_exit_zones=g_exit_zones,
313
+ ),
314
+ 400,
315
+ )
316
+
317
+
292
318
  @gas.route("/supplies/<int:g_supply_id>/edit", methods=["POST"])
293
319
  def supply_edit_post(g_supply_id):
294
320
  g_supply = GSupply.get_by_id(g.sess, g_supply_id)
295
321
  try:
296
- if "delete" in request.values:
297
- g_supply.delete(g.sess)
298
- g.sess.commit()
299
- return chellow_redirect("/supplies", 303)
300
- elif "insert_g_era" in request.values:
322
+ if "insert_g_era" in request.values:
301
323
  start_date = req_date("start")
302
324
  g_supply.insert_g_era_at(g.sess, start_date)
303
325
  g.sess.commit()
@@ -45,6 +45,7 @@
45
45
  <th>Issue Date</th>
46
46
  <th>Start Date</th>
47
47
  <th>Finish Date</th>
48
+ <th>kWh</th>
48
49
  <th>Net GBP</th>
49
50
  <th>VAT</th>
50
51
  <th>Gross GBP</th>
@@ -72,6 +73,7 @@
72
73
  <td>{{bill.issue_date|hh_format}}</td>
73
74
  <td>{{bill.start_date|hh_format}}</td>
74
75
  <td>{{bill.finish_date|hh_format}}</td>
76
+ <td>{{bill.kwh}}</td>
75
77
  <td>{{bill.net_gbp}}</td>
76
78
  <td>{{bill.vat_gbp}}</td>
77
79
  <td>{{bill.gross_gbp}}</td>
@@ -0,0 +1,62 @@
1
+ {% extends "base.html" %}
2
+
3
+ {% block title %}
4
+ Gas Supplies &raquo; {{g_supply.id}} &raquo; Edit
5
+ {% endblock %}
6
+
7
+ {% block nav %}
8
+ <a href="/g/supplies">Gas Supplies</a> &raquo;
9
+ <a href="/g/supplies/{{g_supply.id}}">{{g_supply.id}}</a> &raquo; Edit
10
+ {% endblock %}
11
+
12
+ {% block content %}
13
+ <form method="post" action="/g/supplies/{{g_supply.id}}/edit">
14
+ <fieldset>
15
+ <legend>Update this supply</legend>
16
+ <label>Name</label> {{input_text('name', g_supply.name)}}
17
+ <label>MPRN</label> {{input_text('mprn', g_supply.mprn)}}
18
+ <label>Exit Zone</label>
19
+ <select name="g_exit_zone_id">
20
+ {% for g_exit_zone in g_exit_zones %}
21
+ {{input_option(
22
+ 'g_exit_zone_id', g_exit_zone.id, g_exit_zone.code, initial=g_supply.g_exit_zone.id)}}
23
+ {% endfor %}
24
+ </select>
25
+ <input type="submit" value="Update">
26
+ </fieldset>
27
+ </form>
28
+
29
+ <form hx-delete="/g/supplies/{{g_supply.id}}/edit"
30
+ hx-confirm="Are you sure you want to delete this supply?">
31
+ <fieldset>
32
+ <legend>Delete this supply</legend>
33
+ <input type="submit" value="Delete">
34
+ </fieldset>
35
+ </form>
36
+
37
+ <form method="post" action="/g/supplies/{{g_supply.id}}/edit">
38
+ <fieldset>
39
+ <legend>Insert a new era</legend>
40
+ <label>Start date</label> {{input_date('start', None)}}
41
+ <input type="submit" name="insert_g_era" value="Insert">
42
+ </fieldset>
43
+ </form>
44
+
45
+ <table>
46
+ <caption>Existing Eras</caption>
47
+ <thead>
48
+ <tr>
49
+ <th>Start date</th>
50
+ <th>Finish date</th>
51
+ </tr>
52
+ </thead>
53
+ <tbody>
54
+ {% for g_era in g_eras %}
55
+ <tr>
56
+ <td>{{g_era.start_date|hh_format}}</td>
57
+ <td>{{g_era.finish_date|hh_format}}</td>
58
+ </tr>
59
+ {% endfor %}
60
+ </tbody>
61
+ </table>
62
+ {% endblock %}
@@ -0,0 +1,80 @@
1
+ from collections import defaultdict
2
+ from decimal import Decimal
3
+
4
+ from chellow.gas.bill_parser_total_edi import (
5
+ _process_CCD2,
6
+ _process_MHD,
7
+ _to_finish_date,
8
+ )
9
+ from chellow.utils import ct_datetime, to_utc, utc_datetime
10
+
11
+
12
+ def test_to_finish_date():
13
+ actual = _to_finish_date("211031")
14
+ assert actual == to_utc(ct_datetime(2021, 10, 31, 23, 30))
15
+
16
+
17
+ def test_process_MHD():
18
+ message_type = "UTLBIL"
19
+ headers = {}
20
+ elements = {"TYPE": [message_type, "3"]}
21
+ _process_MHD(elements, headers)
22
+
23
+ expected_headers = {
24
+ "message_type": message_type,
25
+ "reads": [],
26
+ "raw_lines": [],
27
+ "breakdown": {"units_consumed": Decimal("0")},
28
+ "kwh": Decimal("0.00"),
29
+ "net": Decimal("0.00"),
30
+ "vat": Decimal("0.00"),
31
+ "gross": Decimal("0.00"),
32
+ }
33
+ assert headers == expected_headers
34
+
35
+
36
+ def test_process_CCD2():
37
+ headers = {}
38
+ headers["reads"] = []
39
+ headers["raw_lines"] = []
40
+ headers["breakdown"] = defaultdict(int, {"units_consumed": Decimal(0)})
41
+ headers["kwh"] = Decimal("0.00")
42
+ headers["net"] = Decimal("0.00")
43
+ headers["vat"] = Decimal("0.00")
44
+ headers["gross"] = Decimal("0.00")
45
+ elements = {
46
+ "CCDE": ["", "", "MET"],
47
+ "NUCT": ["968823", "KWH"],
48
+ "MTNR": [],
49
+ "CONB": [],
50
+ "ADJF": [],
51
+ "PRDT": [],
52
+ "PVDT": [],
53
+ "PRRD": [],
54
+ "MLOC": ["978672"],
55
+ "CSDT": ["240401"],
56
+ "CEDT": ["240430"],
57
+ "CTOT": ["3882"],
58
+ "CPPU": ["9742"],
59
+ }
60
+ _process_CCD2(elements, headers)
61
+ print(headers)
62
+ expected_headers = {
63
+ "reads": [],
64
+ "raw_lines": [],
65
+ "breakdown": {
66
+ "units_consumed": Decimal("0"),
67
+ "commodity_rate": {Decimal("0.09742")},
68
+ "commodity_gbp": Decimal("38.82"),
69
+ "commodity_kwh": Decimal("968.823"),
70
+ },
71
+ "kwh": Decimal("968.823"),
72
+ "net": Decimal("0.00"),
73
+ "vat": Decimal("0.00"),
74
+ "gross": Decimal("0.00"),
75
+ "start_date": utc_datetime(2024, 3, 31, 23, 0),
76
+ "finish_date": utc_datetime(2024, 4, 30, 22, 30),
77
+ "mprn": "978672",
78
+ }
79
+
80
+ assert headers == expected_headers
@@ -40,7 +40,7 @@ def test_find_cv(sess):
40
40
  dt = to_utc(ct_datetime(2020, 1, 1))
41
41
  cv, avg_cv = find_cv(sess, caches, dt, g_ldz.code)
42
42
 
43
- assert (cv, avg_cv) == (39.2101, 39.2)
43
+ assert (cv, avg_cv) == (39.2101, 39.2101)
44
44
 
45
45
 
46
46
  def test_find_hhs_pairs_before_after_chunk_finish(mocker):
@@ -978,6 +978,44 @@ def test_read_edit_post_delete(sess, client):
978
978
  match(response, 303, f"/g/bills/{g_bill.id}")
979
979
 
980
980
 
981
+ def test_supply_edit_get(client, sess):
982
+ vf = to_utc(ct_datetime(2000, 1, 1))
983
+ site = Site.insert(sess, "22488", "Water Works")
984
+
985
+ g_dn = GDn.insert(sess, "EE", "East of England")
986
+ g_ldz = g_dn.insert_g_ldz(sess, "EA")
987
+ g_exit_zone = g_ldz.insert_g_exit_zone(sess, "EA1")
988
+ insert_g_units(sess)
989
+ g_unit_M3 = GUnit.get_by_code(sess, "M3")
990
+
991
+ g_contract = GContract.insert_supplier(sess, "Fusion 2020", "", {}, vf, None, {})
992
+
993
+ insert_g_reading_frequencies(sess)
994
+ g_reading_frequency_M = GReadingFrequency.get_by_code(sess, "M")
995
+
996
+ g_supply = site.insert_g_supply(
997
+ sess,
998
+ "7y94u5",
999
+ "main",
1000
+ g_exit_zone,
1001
+ utc_datetime(2018, 1, 1),
1002
+ None,
1003
+ "hgeu8rhg",
1004
+ 1,
1005
+ g_unit_M3,
1006
+ g_contract,
1007
+ "d7gthekrg",
1008
+ g_reading_frequency_M,
1009
+ 1,
1010
+ 1,
1011
+ )
1012
+
1013
+ sess.commit()
1014
+
1015
+ response = client.get(f"/g/supplies/{g_supply.id}/edit")
1016
+ match(response, 200, r'<option value="1" selected>EA1</option>')
1017
+
1018
+
981
1019
  def test_supplier_rate_script_get(sess, client):
982
1020
  g_contract = GContract.insert(
983
1021
  sess,
@@ -1 +0,0 @@
1
- __version__ = "1715955542.0.0"
@@ -1,76 +0,0 @@
1
- {% extends "base.html" %}
2
-
3
- {% block title %}
4
- Gas Supplies &raquo; {{g_supply.id}} &raquo; Edit
5
- {% endblock %}
6
-
7
- {% block nav %}
8
- <a href="/g/supplies">Gas Supplies</a> &raquo;
9
- <a href="/g/supplies/{{g_supply.id}}">{{g_supply.id}}</a> &raquo; Edit
10
- {% endblock %}
11
-
12
- {% block content %}
13
- {% if request.method == 'GET' and request.values.delete %}
14
- <form method="post" action="/g/supplies/{{g_supply.id}}/edit">
15
- <fieldset>
16
- <legend>Delete</legend>
17
- <p>Are you sure you want to delete this supply?</p>
18
- <input type="submit" name="delete" value="Delete">
19
- </fieldset>
20
- </form>
21
-
22
- <p>
23
- <a href="/g/supplies/{{g_supply.id}}">Cancel</a>
24
- </p>
25
-
26
- {% else %}
27
-
28
- <form method="post" action="/g/supplies/{{g_supply.id}}/edit">
29
- <fieldset>
30
- <legend>Update this supply</legend>
31
- <label>Name</label> {{input_text('name', g_supply.name)}}
32
- <label>MPRN</label> {{input_text('mprn', g_supply.mprn)}}
33
- <label>Exit Zone</label>
34
- <select name="g_exit_zone_id">
35
- {% for g_exit_zone in g_exit_zones %}
36
- {{input_option( 'g_exit_zone_id', g_exit_zone.id, g_exit_zone.code)}}
37
- {% endfor %}
38
- </select>
39
- <input type="submit" value="Update">
40
- </fieldset>
41
- </form>
42
- <br>
43
- <form action="/g/supplies/{{g_supply.id}}/edit">
44
- <fieldset>
45
- <legend>Delete this supply</legend>
46
- <input type="submit" name="delete" value="Delete">
47
- </fieldset>
48
- </form>
49
- <br>
50
- <form method="post" action="/g/supplies/{{g_supply.id}}/edit">
51
- <fieldset>
52
- <legend>Insert a new era</legend>
53
- <label>Start date</label> {{input_date('start', None)}}
54
- <input type="submit" name="insert_g_era" value="Insert">
55
- </fieldset>
56
- </form>
57
- <br>
58
- <table>
59
- <caption>Existing Eras</caption>
60
- <thead>
61
- <tr>
62
- <th>Start date</th>
63
- <th>Finish date</th>
64
- </tr>
65
- </thead>
66
- <tbody>
67
- {% for g_era in g_eras %}
68
- <tr>
69
- <td>{{g_era.start_date|hh_format}}</td>
70
- <td>{{g_era.finish_date|hh_format}}</td>
71
- </tr>
72
- {% endfor %}
73
- </tbody>
74
- </table>
75
- {% endif %}
76
- {% endblock %}