chellow 1739889885.0.0__tar.gz → 1740736363.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 (491) hide show
  1. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/PKG-INFO +4 -3
  2. chellow-1740736363.0.0/VERSION +1 -0
  3. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/computer.py +35 -24
  4. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/tlms.py +5 -1
  5. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_429.py +55 -15
  6. chellow-1740736363.0.0/chellow/templates/report_run_row_g_bill_check.html +261 -0
  7. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/views.py +23 -21
  8. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/pyproject.toml +3 -2
  9. chellow-1739889885.0.0/VERSION +0 -1
  10. chellow-1739889885.0.0/chellow/templates/report_run_row_g_bill_check.html +0 -191
  11. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/.ebextensions/chellow.config +0 -0
  12. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/.github/workflows/chellow.yml +0 -0
  13. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/.gitignore +0 -0
  14. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/README.md +0 -0
  15. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/application.py +0 -0
  16. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/bin/chellow_service_monitor.sh +0 -0
  17. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/bin/chellow_start.sh +0 -0
  18. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/__init__.py +0 -0
  19. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/api.py +0 -0
  20. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/bank_holidays.py +0 -0
  21. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/commands.py +0 -0
  22. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/dloads.py +0 -0
  23. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/__init__.py +0 -0
  24. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/aahedc.py +0 -0
  25. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_importer.py +0 -0
  26. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/__init__.py +0 -0
  27. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +0 -0
  28. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +0 -0
  29. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/bgb_edi.py +0 -0
  30. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/csv.py +0 -0
  31. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/edf_export_xlsx.py +0 -0
  32. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/engie_edi.py +0 -0
  33. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/engie_export_xlsx.py +0 -0
  34. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/engie_xls.py +0 -0
  35. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/engie_xlsx.py +0 -0
  36. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/gdf_csv.py +0 -0
  37. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/haven_csv.py +0 -0
  38. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/haven_edi.py +0 -0
  39. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/haven_edi_tprs.py +0 -0
  40. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/mm.py +0 -0
  41. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +0 -0
  42. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +0 -0
  43. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/sse_edi.py +0 -0
  44. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bill_parsers/sww_xls.py +0 -0
  45. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bmarketidx.py +0 -0
  46. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/bsuos.py +0 -0
  47. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/ccl.py +0 -0
  48. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/cfd.py +0 -0
  49. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/dno_rate_parser.py +0 -0
  50. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/duos.py +0 -0
  51. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/elexon.py +0 -0
  52. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/energy_management.py +0 -0
  53. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_importer.py +0 -0
  54. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_parser_bg_csv.py +0 -0
  55. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_parser_df2.py +0 -0
  56. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_parser_edf_csv.py +0 -0
  57. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_parser_schneider_csv.py +0 -0
  58. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_parser_schneider_xlsx.py +0 -0
  59. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_parser_simple_csv.py +0 -0
  60. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/hh_parser_vital_xlsx.py +0 -0
  61. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/laf_import.py +0 -0
  62. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/lcc.py +0 -0
  63. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/mdd_importer.py +0 -0
  64. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/rcrc.py +0 -0
  65. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/ro.py +0 -0
  66. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/scenario.py +0 -0
  67. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/system_price.py +0 -0
  68. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/tnuos.py +0 -0
  69. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/triad.py +0 -0
  70. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/e/views.py +0 -0
  71. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/edi_lib.py +0 -0
  72. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/bill_import.py +0 -0
  73. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/bill_parser_csv.py +0 -0
  74. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/bill_parser_engie_edi.py +0 -0
  75. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/bill_parser_total_edi.py +0 -0
  76. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/ccl.py +0 -0
  77. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/cv.py +0 -0
  78. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/dn_rate_parser.py +0 -0
  79. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/engine.py +0 -0
  80. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/transportation.py +0 -0
  81. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/gas/views.py +0 -0
  82. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/general_import.py +0 -0
  83. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/models.py +0 -0
  84. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/national_grid.py +0 -0
  85. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/proxy.py +0 -0
  86. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/rate_server.py +0 -0
  87. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/__init__.py +0 -0
  88. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_109.py +0 -0
  89. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_111.py +0 -0
  90. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_169.py +0 -0
  91. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_181.py +0 -0
  92. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_183.py +0 -0
  93. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_187.py +0 -0
  94. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_219.py +0 -0
  95. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_231.py +0 -0
  96. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_233.py +0 -0
  97. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_241.py +0 -0
  98. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_247.py +0 -0
  99. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_29.py +0 -0
  100. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_291.py +0 -0
  101. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_33.py +0 -0
  102. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_387.py +0 -0
  103. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_41.py +0 -0
  104. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_59.py +0 -0
  105. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_81.py +0 -0
  106. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_87.py +0 -0
  107. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_asset_comparison.py +0 -0
  108. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_batches.py +0 -0
  109. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_bills.py +0 -0
  110. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_csv_llfcs.py +0 -0
  111. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_csv_site_hh_data.py +0 -0
  112. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_csv_site_snags.py +0 -0
  113. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_ecoes_comparison.py +0 -0
  114. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_g_monthly_duration.py +0 -0
  115. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_g_supplies_snapshot.py +0 -0
  116. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_g_supply_virtual_bill.py +0 -0
  117. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_g_virtual_bills.py +0 -0
  118. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_g_virtual_bills_hh.py +0 -0
  119. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_sscs.py +0 -0
  120. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/reports/report_supply_contacts.py +0 -0
  121. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/rrun.py +0 -0
  122. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/static/css/chellow.css +0 -0
  123. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/static/images/favicon.svg +0 -0
  124. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/static/images/favicon_test.svg +0 -0
  125. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/static/images/logo.png +0 -0
  126. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/static/js/htmx.min.js +0 -0
  127. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/403.html +0 -0
  128. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/base.html +0 -0
  129. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/bill_type.html +0 -0
  130. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/bill_types.html +0 -0
  131. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/chain.html +0 -0
  132. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/csv_sites_monthly_duration.html +0 -0
  133. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/downloads.html +0 -0
  134. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/asset_comparison.html +0 -0
  135. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/channel.html +0 -0
  136. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/channel_add.html +0 -0
  137. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/channel_edit.html +0 -0
  138. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/channel_snag.html +0 -0
  139. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/channel_snag_edit.html +0 -0
  140. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/channel_snags.html +0 -0
  141. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/comm.html +0 -0
  142. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/comms.html +0 -0
  143. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/cop.html +0 -0
  144. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/cops.html +0 -0
  145. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/csv_bills.html +0 -0
  146. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/csv_register_reads.html +0 -0
  147. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/csv_sites_hh_data.html +0 -0
  148. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/csv_sites_triad.html +0 -0
  149. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/csv_supplies_hh_data.html +0 -0
  150. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/csv_supplies_snapshot.html +0 -0
  151. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/csv_supplies_triad.html +0 -0
  152. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_auto_importer.html +0 -0
  153. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_batch.html +0 -0
  154. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_batch_add.html +0 -0
  155. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_batch_edit.html +0 -0
  156. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_batch_file.html +0 -0
  157. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_batch_file_edit.html +0 -0
  158. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_batch_upload_file.html +0 -0
  159. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_batches.html +0 -0
  160. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_bill.html +0 -0
  161. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_bill_add.html +0 -0
  162. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_bill_edit.html +0 -0
  163. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_bill_import.html +0 -0
  164. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_bill_imports.html +0 -0
  165. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contract.html +0 -0
  166. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contract_edit.html +0 -0
  167. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contract_hh_import.html +0 -0
  168. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contract_hh_imports.html +0 -0
  169. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contract_properties.html +0 -0
  170. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contract_properties_edit.html +0 -0
  171. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contracts.html +0 -0
  172. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_contracts_add.html +0 -0
  173. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_rate_script.html +0 -0
  174. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_rate_script_add.html +0 -0
  175. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dc_rate_script_edit.html +0 -0
  176. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dno.html +0 -0
  177. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dno_rate_script.html +0 -0
  178. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dno_rate_script_add.html +0 -0
  179. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dno_rate_script_edit.html +0 -0
  180. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dnos.html +0 -0
  181. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dtc_meter_type.html +0 -0
  182. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/dtc_meter_types.html +0 -0
  183. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/duration_report.html +0 -0
  184. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/elexon.html +0 -0
  185. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/em_hh_data.html +0 -0
  186. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/em_months.html +0 -0
  187. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/em_site.html +0 -0
  188. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/em_totals.html +0 -0
  189. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/energisation_status.html +0 -0
  190. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/energisation_statuses.html +0 -0
  191. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/era_edit.html +0 -0
  192. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/era_edit_form.html +0 -0
  193. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/era_supplier_bill_add.html +0 -0
  194. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/generator_type.html +0 -0
  195. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/generator_types.html +0 -0
  196. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/gsp_group.html +0 -0
  197. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/gsp_groups.html +0 -0
  198. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/hh_datum_edit.html +0 -0
  199. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/lafs.html +0 -0
  200. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/lcc.html +0 -0
  201. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/llfc.html +0 -0
  202. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/llfc_edit.html +0 -0
  203. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/llfcs.html +0 -0
  204. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/market_role.html +0 -0
  205. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/market_roles.html +0 -0
  206. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/meter_payment_type.html +0 -0
  207. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/meter_payment_types.html +0 -0
  208. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/meter_type.html +0 -0
  209. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/meter_types.html +0 -0
  210. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_batch.html +0 -0
  211. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_batch_add.html +0 -0
  212. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_batch_edit.html +0 -0
  213. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_batch_file.html +0 -0
  214. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_batch_file_edit.html +0 -0
  215. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_batch_upload_file.html +0 -0
  216. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_batches.html +0 -0
  217. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_bill.html +0 -0
  218. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_bill_add.html +0 -0
  219. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_bill_edit.html +0 -0
  220. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_bill_import.html +0 -0
  221. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_bill_imports.html +0 -0
  222. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_contract.html +0 -0
  223. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_contract_add.html +0 -0
  224. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_contract_edit.html +0 -0
  225. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_contracts.html +0 -0
  226. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_rate_script.html +0 -0
  227. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_rate_script_add.html +0 -0
  228. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mop_rate_script_edit.html +0 -0
  229. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc.html +0 -0
  230. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_llfc.html +0 -0
  231. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_llfc_ssc.html +0 -0
  232. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_llfc_ssc_pc.html +0 -0
  233. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_llfc_ssc_pcs.html +0 -0
  234. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_llfc_sscs.html +0 -0
  235. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_llfcs.html +0 -0
  236. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_participant.html +0 -0
  237. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_participants.html +0 -0
  238. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_ssc.html +0 -0
  239. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtc_sscs.html +0 -0
  240. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/mtcs.html +0 -0
  241. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/ods_monthly_duration.html +0 -0
  242. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/participant.html +0 -0
  243. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/participants.html +0 -0
  244. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/parties.html +0 -0
  245. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/party.html +0 -0
  246. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/pc.html +0 -0
  247. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/pcs.html +0 -0
  248. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/read_add.html +0 -0
  249. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/read_edit.html +0 -0
  250. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/read_type.html +0 -0
  251. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/read_types.html +0 -0
  252. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/scenario.html +0 -0
  253. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/scenario_add.html +0 -0
  254. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/scenario_docs.html +0 -0
  255. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/scenario_edit.html +0 -0
  256. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/scenarios.html +0 -0
  257. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_add_e_supply.html +0 -0
  258. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_add_e_supply_form.html +0 -0
  259. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_hh_data.html +0 -0
  260. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_site_snags.html +0 -0
  261. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_snag.html +0 -0
  262. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_snag_edit.html +0 -0
  263. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_snags.html +0 -0
  264. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/site_snags_edit.html +0 -0
  265. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/source.html +0 -0
  266. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/sources.html +0 -0
  267. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/ssc.html +0 -0
  268. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/sscs.html +0 -0
  269. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batch.html +0 -0
  270. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batch_add.html +0 -0
  271. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batch_edit.html +0 -0
  272. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batch_file.html +0 -0
  273. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batch_file_add.html +0 -0
  274. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batch_file_edit.html +0 -0
  275. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batch_upload_file.html +0 -0
  276. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_batches.html +0 -0
  277. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_bill.html +0 -0
  278. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_bill_add.html +0 -0
  279. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_bill_edit.html +0 -0
  280. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_bill_import.html +0 -0
  281. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_bill_imports.html +0 -0
  282. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_contract.html +0 -0
  283. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_contract_add.html +0 -0
  284. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_contract_edit.html +0 -0
  285. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_contracts.html +0 -0
  286. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_rate_script.html +0 -0
  287. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_rate_script_add.html +0 -0
  288. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supplier_rate_script_edit.html +0 -0
  289. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply.html +0 -0
  290. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_edit.html +0 -0
  291. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_eras.html +0 -0
  292. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_hh_data.html +0 -0
  293. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_months.html +0 -0
  294. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_note_add.html +0 -0
  295. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_note_edit.html +0 -0
  296. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_notes.html +0 -0
  297. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_post.html +0 -0
  298. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/supply_virtual_bill.html +0 -0
  299. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/tpr.html +0 -0
  300. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/e/tprs.html +0 -0
  301. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/edi_viewer.html +0 -0
  302. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/batch.html +0 -0
  303. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/batch_add.html +0 -0
  304. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/batch_edit.html +0 -0
  305. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/batches.html +0 -0
  306. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/bill.html +0 -0
  307. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/bill_add.html +0 -0
  308. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/bill_edit.html +0 -0
  309. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/bill_import.html +0 -0
  310. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/bill_imports.html +0 -0
  311. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/dn.html +0 -0
  312. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/dns.html +0 -0
  313. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/era_edit.html +0 -0
  314. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/exit_zone.html +0 -0
  315. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_auto_importer.html +0 -0
  316. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_contract.html +0 -0
  317. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_contract_add.html +0 -0
  318. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_contract_edit.html +0 -0
  319. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_contracts.html +0 -0
  320. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_rate_script.html +0 -0
  321. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_rate_script_add.html +0 -0
  322. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/industry_rate_script_edit.html +0 -0
  323. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/ldz.html +0 -0
  324. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/read_add.html +0 -0
  325. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/read_edit.html +0 -0
  326. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/read_type.html +0 -0
  327. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/read_types.html +0 -0
  328. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/reading_frequencies.html +0 -0
  329. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/reading_frequency.html +0 -0
  330. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/reports.html +0 -0
  331. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplier_contract.html +0 -0
  332. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplier_contract_add.html +0 -0
  333. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplier_contract_edit.html +0 -0
  334. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplier_contracts.html +0 -0
  335. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplier_rate_script.html +0 -0
  336. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplier_rate_script_add.html +0 -0
  337. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplier_rate_script_edit.html +0 -0
  338. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supplies.html +0 -0
  339. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supply.html +0 -0
  340. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supply_edit.html +0 -0
  341. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supply_note_add.html +0 -0
  342. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supply_note_edit.html +0 -0
  343. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/supply_notes.html +0 -0
  344. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/unit.html +0 -0
  345. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/g/units.html +0 -0
  346. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/general_import.html +0 -0
  347. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/general_imports.html +0 -0
  348. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/home.html +0 -0
  349. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/input_date.html +0 -0
  350. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/local_report.html +0 -0
  351. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/local_reports.html +0 -0
  352. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/macros.html +0 -0
  353. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/national_grid.html +0 -0
  354. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/non_core_auto_importer.html +0 -0
  355. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/non_core_contract.html +0 -0
  356. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/non_core_contract_edit.html +0 -0
  357. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/non_core_contracts.html +0 -0
  358. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/non_core_rate_script.html +0 -0
  359. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/non_core_rate_script_add.html +0 -0
  360. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/non_core_rate_script_edit.html +0 -0
  361. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/object_summary.html +0 -0
  362. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/rate_server.html +0 -0
  363. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run.html +0 -0
  364. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_asset_comparison.html +0 -0
  365. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_bill_check.html +0 -0
  366. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_ecoes_comparison.html +0 -0
  367. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_g_bill_check.html +0 -0
  368. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_monthly_duration_org.html +0 -0
  369. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_row.html +0 -0
  370. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_row_bill_check.html +0 -0
  371. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_run_supply_contacts.html +0 -0
  372. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/report_runs.html +0 -0
  373. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/scenario.html +0 -0
  374. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/scenario_add.html +0 -0
  375. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/scenario_docs.html +0 -0
  376. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/scenario_edit.html +0 -0
  377. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/scenarios.html +0 -0
  378. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/site.html +0 -0
  379. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/site_add.html +0 -0
  380. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/site_edit.html +0 -0
  381. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/site_gen_graph.html +0 -0
  382. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/site_months.html +0 -0
  383. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/site_used_graph.html +0 -0
  384. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/sites.html +0 -0
  385. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/supplies.html +0 -0
  386. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/system.html +0 -0
  387. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/tester.html +0 -0
  388. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/user.html +0 -0
  389. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/user_roles.html +0 -0
  390. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/templates/users.html +0 -0
  391. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/testing.py +0 -0
  392. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/chellow/utils.py +0 -0
  393. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/gpl.txt +0 -0
  394. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/requirements.txt +0 -0
  395. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/setup.cfg +0 -0
  396. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/systemd/chellow.service +0 -0
  397. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/systemd/chellow_upgrader.service +0 -0
  398. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/systemd/chellow_upgrader.timer +0 -0
  399. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/conftest.py +0 -0
  400. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_activity_mop_stark_xlsx.py +0 -0
  401. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_annual_mop_stark_xlsx.py +0 -0
  402. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_csv.py +0 -0
  403. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_edf_export_xlsx.py +0 -0
  404. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_engie_edi.py +0 -0
  405. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_engie_xls.py +0 -0
  406. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +0 -0
  407. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_haven_csv.py +0 -0
  408. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi.py +0 -0
  409. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi_tprs.py +0 -0
  410. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_mm.py +0 -0
  411. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills.nonsettlement.dc.stark.xlsx +0 -0
  412. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills_old.nonsettlement.dc.stark.xlsx +0 -0
  413. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/test_bill_parser_nonsettlement_dc_stark_xlsx.py +0 -0
  414. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/bills.settlement.dc.stark.xlsx +0 -0
  415. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/test_bill_parser_settlement_dc_stark_xlsx.py +0 -0
  416. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_sse_edi.py +0 -0
  417. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/bill_parsers/test_bill_parser_sww_xls.py +0 -0
  418. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/system_price/prices.xls +0 -0
  419. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/system_price/test_system_price.py +0 -0
  420. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_aahedc.py +0 -0
  421. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_bill_importer.py +0 -0
  422. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_bsuos.py +0 -0
  423. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_ccl.py +0 -0
  424. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_cfd.py +0 -0
  425. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_computer.py +0 -0
  426. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_dno_rate_parser.py +0 -0
  427. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_duos.py +0 -0
  428. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_e_views.py +0 -0
  429. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_hh_importer.py +0 -0
  430. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_hh_parser_df2.py +0 -0
  431. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_hh_parser_vital_xlsx.py +0 -0
  432. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_laf_importer.py +0 -0
  433. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_mdd_importer.py +0 -0
  434. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_rcrc_importer.py +0 -0
  435. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_ro.py +0 -0
  436. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_scenario.py +0 -0
  437. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_tlms.py +0 -0
  438. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_tnuos.py +0 -0
  439. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/e/test_triad.py +0 -0
  440. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/gas/bill_parsers/test_g_bill_parser_engie_edi.py +0 -0
  441. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/gas/bill_parsers/test_g_bill_parser_total_edi.py +0 -0
  442. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/gas/test_dn_rate_parser.py +0 -0
  443. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/gas/test_engine.py +0 -0
  444. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/gas/test_g_cv.py +0 -0
  445. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/gas/test_gas_views.py +0 -0
  446. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/gas/test_transportation.py +0 -0
  447. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_g_monthly_duration.py +0 -0
  448. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_g_supplies_snapshot.py +0 -0
  449. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_g_supply_virtual_bill.py +0 -0
  450. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_g_virtual_bills.py +0 -0
  451. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_g_virtual_bills_hh.py +0 -0
  452. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_109.py +0 -0
  453. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_111.py +0 -0
  454. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_169.py +0 -0
  455. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_181.py +0 -0
  456. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_183.py +0 -0
  457. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_187.py +0 -0
  458. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_219.py +0 -0
  459. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_231.py +0 -0
  460. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_233.py +0 -0
  461. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_241.py +0 -0
  462. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_247.py +0 -0
  463. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_29.py +0 -0
  464. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_291.py +0 -0
  465. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_33.py +0 -0
  466. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_387.py +0 -0
  467. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_41.py +0 -0
  468. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_429.py +0 -0
  469. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_59.py +0 -0
  470. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_81.py +0 -0
  471. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_87.py +0 -0
  472. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_asset_comparison.py +0 -0
  473. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_batches.py +0 -0
  474. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_bills.py +0 -0
  475. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_csv_llfcs.py +0 -0
  476. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_csv_site_hh_data.py +0 -0
  477. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_csv_site_snags.py +0 -0
  478. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_dno_vl_parser.py +0 -0
  479. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_ecoes_comparison.py +0 -0
  480. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_sscs.py +0 -0
  481. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/reports/test_report_supply_contacts.py +0 -0
  482. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_chellow.py +0 -0
  483. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_dloads.py +0 -0
  484. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_edi_viewer.py +0 -0
  485. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_general_import.py +0 -0
  486. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_models.py +0 -0
  487. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_rate_server.py +0 -0
  488. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_testing.py +0 -0
  489. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_utils.py +0 -0
  490. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/test_views.py +0 -0
  491. {chellow-1739889885.0.0 → chellow-1740736363.0.0}/test/utils.py +0 -0
@@ -1,14 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chellow
3
- Version: 1739889885.0.0
3
+ Version: 1740736363.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)
7
7
  Classifier: Operating System :: OS Independent
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Requires-Python: >=3.9
10
- Requires-Dist: flask-restx==1.2.0
11
- Requires-Dist: flask==2.3.3
10
+ Requires-Dist: flask-restx==1.3.0
11
+ Requires-Dist: flask==3.1.0
12
+ Requires-Dist: jsonschema==4.17.3
12
13
  Requires-Dist: odio==0.0.23
13
14
  Requires-Dist: openpyxl==3.1.2
14
15
  Requires-Dist: paramiko==3.4.1
@@ -0,0 +1 @@
1
+ __version__ = "1740736363.0.0"
@@ -119,11 +119,15 @@ def contract_func(caches, contract, func_name):
119
119
  return ns.get(func_name, None)
120
120
 
121
121
 
122
- def non_core_rate(sess, caches, contract_id_or_name, date):
123
- return hh_rate(sess, caches, contract_id_or_name, date, market_role_code="Z")
122
+ def non_core_rate(sess, caches, contract_id_or_name, date, exact=False):
123
+ return hh_rate(
124
+ sess, caches, contract_id_or_name, date, market_role_code="Z", exact=exact
125
+ )
124
126
 
125
127
 
126
- def hh_rate(sess, caches, contract_id_or_name, date, market_role_code=None):
128
+ def hh_rate(
129
+ sess, caches, contract_id_or_name, date, market_role_code=None, exact=False
130
+ ):
127
131
  try:
128
132
  ccache = caches["computer"]
129
133
  except KeyError:
@@ -181,18 +185,20 @@ def hh_rate(sess, caches, contract_id_or_name, date, market_role_code=None):
181
185
  )
182
186
 
183
187
  if rs is None:
184
- rs = (
188
+ last_rs = (
185
189
  sess.query(RateScript)
186
190
  .filter(RateScript.contract == contract)
187
191
  .order_by(RateScript.start_date.desc())
188
192
  .first()
189
193
  )
190
- if date < rs.start_date:
194
+ if date < last_rs.start_date:
191
195
  cstart = year_before
192
- cfinish = min(year_after, rs.start_date - HH)
196
+ cfinish = min(year_after, last_rs.start_date - HH)
193
197
  else:
194
- cstart = max(rs.finish_date + HH, year_before)
198
+ cstart = max(last_rs.finish_date + HH, year_before)
195
199
  cfinish = year_after
200
+ if not exact:
201
+ rs = last_rs
196
202
  else:
197
203
  cstart = max(rs.start_date, year_before)
198
204
  if rs.finish_date is None:
@@ -200,23 +206,26 @@ def hh_rate(sess, caches, contract_id_or_name, date, market_role_code=None):
200
206
  else:
201
207
  cfinish = min(rs.finish_date, year_after)
202
208
 
203
- market_role_code = rs.contract.market_role.code
204
- if market_role_code == "M":
205
- seg = "/e/mop_rate_scripts/"
206
- elif market_role_code == "C":
207
- seg = "/e/dc_rate_scripts/"
208
- elif market_role_code == "X":
209
- seg = "/e/supplier_rate_scripts/"
210
- elif market_role_code == "Z":
211
- seg = "/non_core_rate_scripts/"
212
- elif market_role_code == "R":
213
- seg = "/e/dno_rate_scripts/"
209
+ if rs is None:
210
+ vals = None
214
211
  else:
215
- raise Exception(
216
- f"The market role code {market_role_code} isn't recognized."
217
- )
212
+ market_role_code = rs.contract.market_role.code
213
+ if market_role_code == "M":
214
+ seg = "/e/mop_rate_scripts/"
215
+ elif market_role_code == "C":
216
+ seg = "/e/dc_rate_scripts/"
217
+ elif market_role_code == "X":
218
+ seg = "/e/supplier_rate_scripts/"
219
+ elif market_role_code == "Z":
220
+ seg = "/non_core_rate_scripts/"
221
+ elif market_role_code == "R":
222
+ seg = "/e/dno_rate_scripts/"
223
+ else:
224
+ raise Exception(
225
+ f"The market role code {market_role_code} isn't recognized."
226
+ )
218
227
 
219
- vals = PropDict(f"the rate script {seg}{rs.id} ", loads(rs.script), [])
228
+ vals = PropDict(f"the rate script {seg}{rs.id} ", loads(rs.script), [])
220
229
  for dt in hh_range(caches, cstart, cfinish):
221
230
  if dt not in cont_cache:
222
231
  cont_cache[dt] = vals
@@ -572,8 +581,10 @@ class DataSource:
572
581
  self.rate_cache = self.caches["computer"]["rates"]
573
582
  return val
574
583
 
575
- def non_core_rate(self, contract_name_or_id, date):
576
- return non_core_rate(self.sess, self.caches, contract_name_or_id, date)
584
+ def non_core_rate(self, contract_name_or_id, date, exact=False):
585
+ return non_core_rate(
586
+ self.sess, self.caches, contract_name_or_id, date, exact=exact
587
+ )
577
588
 
578
589
  def _add_problem(self, problem):
579
590
  self.supplier_bill["problem"] += problem
@@ -36,7 +36,11 @@ def hh(data_source, run="DF"):
36
36
  h["tlm"] = tlm = cache[h["start-date"]][gsp_group_code][run]
37
37
  except KeyError:
38
38
  h_start = h["start-date"]
39
- rates = data_source.non_core_rate("tlms", h_start)["tlms"]
39
+ vals = data_source.non_core_rate("tlms", h_start, exact=True)
40
+ if vals is None:
41
+ vals = data_source.non_core_rate("tlms", h["hist-start"])
42
+
43
+ rates = vals["tlms"]
40
44
 
41
45
  key = key_format(h_start)
42
46
  try:
@@ -6,6 +6,7 @@ from collections import OrderedDict, defaultdict
6
6
  from datetime import datetime as Datetime
7
7
  from decimal import Decimal
8
8
  from itertools import combinations
9
+ from numbers import Number
9
10
 
10
11
  from flask import g, redirect, request
11
12
 
@@ -364,22 +365,61 @@ def _process_g_bill_ids(
364
365
  vals["g_supply_id"] = g_supply.id
365
366
  vals["site_id"] = site_id
366
367
  for element in sorted(elements):
367
- rate_name = f"difference_{element}_rate"
368
- covered_rates = vals.get(f"covered_{element}_rate", [0])
369
- virtual_rates = vals.get(f"virtual_{element}_rate", [0])
370
- if len(covered_rates) == 1 and len(virtual_rates) == 1:
371
- vals[rate_name] = (
372
- float(covered_rates.pop()) * 100 - float(virtual_rates.pop()) * 100
373
- )
368
+ for key in tuple(vals.keys()):
369
+ if not key.endswith("_gbp"):
370
+ covered_prefix = f"covered_{element}_"
371
+ virtual_prefix = f"virtual_{element}_"
372
+ if key.startswith(covered_prefix):
373
+ part_name = key[len(covered_prefix) :]
374
+ elif key.startswith(virtual_prefix):
375
+ part_name = key[len(virtual_prefix) :]
376
+ else:
377
+ continue
378
+ virtual_part = vals.get(f"virtual_{element}_{part_name}", {0})
379
+ covered_part = vals.get(f"covered_{element}_{part_name}", {0})
380
+ if isinstance(virtual_part, set) and len(virtual_part) == 1:
381
+ virtual_part = float(next(iter(virtual_part)))
382
+ if isinstance(covered_part, set) and len(covered_part) == 1:
383
+ covered_part = float(next(iter(covered_part)))
384
+
385
+ if isinstance(virtual_part, Number) and isinstance(
386
+ covered_part, Number
387
+ ):
388
+ diff = float(covered_part) - float(virtual_part)
389
+ else:
390
+ diff = 0
391
+
392
+ vals[f"difference_{element}_{part_name}"] = diff
393
+
394
+ for suffix in (
395
+ "kwh",
396
+ "units_consumed",
397
+ ):
398
+ try:
399
+ covered = float(vals[f"covered_{suffix}"])
400
+ virtual = float(vals[f"virtual_{suffix}"])
401
+ vals[f"difference_{suffix}"] = covered - virtual
402
+ except KeyError:
403
+ vals[f"difference_{suffix}"] = 0
404
+
405
+ for prefix in (
406
+ "correction_factor",
407
+ "unit_code",
408
+ "calorific_value",
409
+ ):
410
+ covered = vals.get(f"covered_{prefix}", [0])
411
+ virtual = vals.get(f"virtual_{prefix}", [0])
412
+ if len(covered) == 1 and len(virtual) == 1:
413
+ if covered == virtual:
414
+ diff = 0
415
+ else:
416
+ try:
417
+ diff = float(next(iter(covered))) - float(next(iter(virtual)))
418
+ except ValueError:
419
+ diff = False
374
420
  else:
375
- vals[rate_name] = 0
376
-
377
- try:
378
- covered_kwh = float(vals["covered_kwh"])
379
- virtual_kwh = float(vals["virtual_kwh"])
380
- vals["difference_kwh"] = covered_kwh - virtual_kwh
381
- except KeyError:
382
- vals["difference_kwh"] = None
421
+ diff = False
422
+ vals[f"difference_{prefix}"] = diff
383
423
 
384
424
  ReportRun.w_insert_row(report_run_id, "", titles, vals, {"is_checked": False})
385
425
 
@@ -0,0 +1,261 @@
1
+ {% extends "base.html" %}
2
+
3
+ {% block inside_head %}
4
+ <style>
5
+ section.elements {
6
+ display: flex;
7
+ flex-wrap: wrap;
8
+ gap: 4em;
9
+ align-items: flex-start;
10
+ }
11
+ </style>
12
+ {% endblock %}
13
+
14
+ {% block title %}
15
+ &raquo; Report Runs &raquo; {{row.report_run.id}} &raquo; Row {{row.id}}
16
+ {% endblock %}
17
+
18
+ {% block nav %}
19
+ <a href="/report_runs">Report Runs</a> &raquo;
20
+ <a href="/report_runs/{{row.report_run.id}}">{{row.report_run.id}}</a>
21
+ &raquo; Row {{row.id}}
22
+ {% endblock %}
23
+
24
+
25
+ {% block content %}
26
+ {% set values = row.data['values'] %}
27
+ {% set properties = row.data.get('properties', {}) %}
28
+ <table>
29
+ <caption>Bill Check</caption>
30
+ <thead>
31
+ <tr>
32
+ <th>Batch</th>
33
+ <th>Site</th>
34
+ <th>MPRN</th>
35
+ <th>Covered Bills</th>
36
+ <th>Covered Start</th>
37
+ <th>Covered Finish</th>
38
+ <th>Problem</th>
39
+ </tr>
40
+ </thead>
41
+ <tbody>
42
+ <tr>
43
+ <td><a href="/g/batches/{{values.g_batch_id}}">{{values.batch}}</a></td>
44
+ <td>
45
+ <a href="/sites/{{values.site_id}}">{{values.site_code}} {{values.site_name}}</a>
46
+ </td>
47
+ <td>
48
+ <a href="/g/supplies/{{values.g_supply_id}}">{{values.mprn}}</a>
49
+ </td>
50
+ <td>
51
+ {% if values['covered_bill_ids'] is not none %}
52
+ {% for bill_id in values['covered_bill_ids'] %}
53
+ <a href="/g/bills/{{bill_id}}">{{bill_id}}</a>
54
+ {% if bill_id == values.g_bill_id %}
55
+ {% endif %}
56
+ {% endfor %}
57
+ {% endif %}
58
+ </td>
59
+ <td><span title="{{values.covered_start}}">{{values.covered_start[:10]}}</span></td>
60
+ <td><span title="{{values.covered_finish}}">{{values.covered_finish[:10]}}</span></td>
61
+ {% for title in columns %}
62
+ <td>
63
+ {% if title in values and values[title] is not none %}
64
+ {{"%.2f"|format(values[title])}}
65
+ {% endif %}
66
+ </td>
67
+ {% endfor %}
68
+ <td>
69
+ {{ values.covered_problem }} {{ values.virtual_problem }}
70
+ </td>
71
+ </tr>
72
+ </tbody>
73
+ </table>
74
+
75
+ <section class="elements">
76
+ <table>
77
+ <caption>GBP</caption>
78
+ <thead>
79
+ <tr>
80
+ <th>Part</th>
81
+ <th>Covered</th>
82
+ <th>Virtual</th>
83
+ <th>Difference</th>
84
+ </tr>
85
+ </thead>
86
+ <tbody>
87
+ {% if 'difference_gross_gbp' in values %}
88
+ <tr>
89
+ <td>gross</td>
90
+ <td>{{"{:0,.2f}".format(values.covered_gross_gbp)}}</td>
91
+ <td>{{"{:0,.2f}".format(values.virtual_gross_gbp)}}</td>
92
+ <td>{{"{:0,.2f}".format(values.difference_gross_gbp)}}</td>
93
+ </tr>
94
+ {% endif %}
95
+ <tr>
96
+ <td>net</td>
97
+ <td>{{"{:0,.2f}".format(values.covered_net_gbp)}}</td>
98
+ <td>{{"{:0,.2f}".format(values.virtual_net_gbp)}}</td>
99
+ <td>{{"{:0,.2f}".format(values.difference_net_gbp)}}</td>
100
+ </tr>
101
+ {% if 'difference_vat_gbp' in values %}
102
+ <tr>
103
+ <td>vat</td>
104
+ <td>{{"{:0,.2f}".format(values.covered_vat_gbp)}}</td>
105
+ <td>{{"{:0,.2f}".format(values.virtual_vat_gbp)}}</td>
106
+ <td>{{"{:0,.2f}".format(values.difference_vat_gbp)}}</td>
107
+ </tr>
108
+ {% endif %}
109
+ {% if 'difference_vat_rate' in values and values.difference_vat_rate != 0 %}
110
+ <tr>
111
+ <td>vat_rate</td>
112
+ <td>{{values.covered_vat_rate}}</td>
113
+ <td>{{values.virtual_vat_rate}}</td>
114
+ <td>{{"{:0,.2f}".format(values.difference_vat_rate)}}</td>
115
+ </tr>
116
+ {% endif %}
117
+ {% if 'difference_is_commercial' in values %}
118
+ <tr>
119
+ <td>is_commercial</td>
120
+ <td>{{values.covered_is_commercial}}</td>
121
+ <td>{{values.virtual_is_commercial}}</td>
122
+ <td>{{values.difference_is_commercial}}</td>
123
+ </tr>
124
+ {% endif %}
125
+
126
+ </table>
127
+
128
+ <table>
129
+ <caption>kWh</caption>
130
+ <thead>
131
+ <tr>
132
+ <th>Part</th>
133
+ <th>Covered</th>
134
+ <th>Virtual</th>
135
+ <th>Difference</th>
136
+ </tr>
137
+ </thead>
138
+ <tbody>
139
+ <tr>
140
+ <td>kwh</td>
141
+ <td>{{"{:0,.2f}".format(values.covered_kwh)}}</td>
142
+ <td>{{"{:0,.2f}".format(values.virtual_kwh)}}</td>
143
+ <td>{{"{:0,.2f}".format(values.difference_kwh)}}</td>
144
+ </tr>
145
+ <tr>
146
+ <td>units_consumed</td>
147
+ <td>
148
+ {% if 'covered_units_consumed' in values %}
149
+ {{"{:0,.2f}".format(values.covered_units_consumed)}}
150
+ {% endif %}
151
+ </td>
152
+ <td>{{"{:0,.2f}".format(values.virtual_units_consumed)}}</td>
153
+ <td>{{"{:0,.2f}".format(values.difference_units_consumed)}}</td>
154
+ </tr>
155
+ <tr>
156
+ <td>correction_factor</td>
157
+ <td>
158
+ {% if values.covered_correction_factor is number %}
159
+ {{"{:0,.2f}".format(values.covered_correction_factor)}}
160
+ {% else %}
161
+ {{values.covered_correction_factor|join(' | ')}}
162
+ {% endif %}
163
+ </td>
164
+ <td>
165
+ {% if values.virtual_correction_factor is number %}
166
+ {{"{:0,.2f}".format(values.virtual_correction_factor)}}
167
+ {% else %}
168
+ {{values.virtual_correction_factor|join(' | ')}}
169
+ {% endif %}
170
+ </td>
171
+ <td>
172
+ {% if values.difference_correction_factor is number %}
173
+ {{"{:0,.2f}".format(values.difference_correction_factor)}}</td>
174
+ {% else %}
175
+ {{values.difference_correction_factor|join(' | ')}}
176
+ {% endif %}
177
+ </td>
178
+ </tr>
179
+ <tr>
180
+ <td>unit_code</td>
181
+ <td>{{values.covered_unit_code|join(' | ')}}</td>
182
+ <td>{{values.virtual_unit_code|join(' | ')}}</td>
183
+ <td>{{values.difference_unit_code}}</td>
184
+ </tr>
185
+ <tr>
186
+ <td>calorific_value</td>
187
+ <td>{{values.covered_calorific_value|join(' | ')}}</td>
188
+ <td>{{values.virtual_calorific_value|join(' | ')}}</td>
189
+ <td>{{values.difference_calorific_value}}</td>
190
+ </tr>
191
+ </table>
192
+
193
+ {% for table in tables %}
194
+ <table>
195
+ <caption>{{table.name}}</caption>
196
+ <thead>
197
+ <tr>
198
+ <th>Part</th>
199
+ <th>Covered</th>
200
+ <th>Virtual</th>
201
+ <th>Difference</th>
202
+ </tr>
203
+ </thead>
204
+ <tbody>
205
+ <tr>
206
+ <td>gbp</td>
207
+ {% for pref in ('covered_', 'virtual_', 'difference_') %}
208
+ <td>
209
+ {% set k = pref + table.name + "_gbp" %}
210
+ {% if k in values %}
211
+ {% set val = values[k] %}
212
+ {% else %}
213
+ {% set val = '' %}
214
+ {% endif %}
215
+ {% if val is number %}
216
+ {{"{:0,.2f}".format(val)}}
217
+ {% else %}
218
+ {{val}}
219
+ {% endif %}
220
+ </td>
221
+ {% endfor %}
222
+ </tr>
223
+ {% for part in table['parts']|sort %}
224
+ <tr>
225
+ <td>{{part}}</td>
226
+ {% for pref in ('covered_', 'virtual_', 'difference_') %}
227
+ <td>
228
+ {% set k = pref + table.name + "_" + part %}
229
+ {% if k in values %}
230
+ {% set val = values[k] %}
231
+ {% else %}
232
+ {% set val = '' %}
233
+ {% endif %}
234
+ {% if val is number %}
235
+ {{"{:0,.2f}".format(val)}}
236
+ {% elif (val is string) or (val is boolean) %}
237
+ {{val}}
238
+ {% else %}
239
+ {% for v in val %}
240
+ {% if v is number %}
241
+ {{"{:0,.2f}".format(v)}}
242
+ {% else %}
243
+ {{v}}
244
+ {% endif %}
245
+ {% if not loop.last %}
246
+ |
247
+ {% endif %}
248
+ {% endfor %}
249
+ {% endif %}
250
+ </td>
251
+ {% endfor %}
252
+ </tr>
253
+ {% endfor %}
254
+ </tbody>
255
+ </table>
256
+ {% endfor %}
257
+ </section>
258
+
259
+ <h2>Raw</h2>
260
+ <pre>{{raw_data}}</pre>
261
+ {% endblock %}
@@ -1617,6 +1617,11 @@ def report_run_row_get(row_id):
1617
1617
  "report_run_row_bill_check.html", row=row, raw_data=raw_data, tables=tables
1618
1618
  )
1619
1619
  elif row.report_run.name == "g_bill_check":
1620
+ g_contract = GContract.get_by_id(g.sess, row.report_run.data["g_contract_id"])
1621
+ g_contract_props = g_contract.make_properties()
1622
+ props = g_contract_props.get("report_run", {})
1623
+ table_names_hide = props.get("table_names_hide", [])
1624
+
1620
1625
  values = row.data["values"]
1621
1626
  elements = {}
1622
1627
  for t in row.data["values"].keys():
@@ -1625,34 +1630,31 @@ def report_run_row_get(row_id):
1625
1630
  t.startswith("covered_")
1626
1631
  or t.startswith("virtual_")
1627
1632
  or t.startswith("difference_")
1628
- ) and t not in (
1629
- "covered_from",
1630
- "covered_to",
1631
- "covered_bills",
1632
- "covered_problem",
1633
- "virtual_problem",
1634
- ):
1633
+ ) and t.endswith("_gbp"):
1635
1634
  toks = t.split("_")
1636
1635
  name = "_".join(toks[1:-1])
1636
+ if name in ("vat", "gross", "net") or name in table_names_hide:
1637
+ continue
1637
1638
  try:
1638
1639
  table = elements[name]
1639
1640
  except KeyError:
1640
- table = elements[name] = {"order": 0}
1641
+ table = elements[name] = {"order": 0, "name": name, "parts": set()}
1642
+ tables.append(table)
1641
1643
 
1642
- if "titles" not in table:
1643
- table["titles"] = []
1644
- table["titles"].append(toks[0] + "_" + "_".join(toks[2:]))
1645
- if "values" not in table:
1646
- table["values"] = []
1647
- table["values"].append(values[t])
1648
- if t.startswith("difference_") and t.endswith("-gbp"):
1649
- table["order"] = abs(values[t])
1644
+ for t in row.data["values"].keys():
1650
1645
 
1651
- for k, v in elements.items():
1652
- if k == "net":
1653
- continue
1654
- v["name"] = k
1655
- tables.append(v)
1646
+ toks = t.split("_")
1647
+ if toks[0] in ("covered", "virtual", "difference"):
1648
+ tail = "_".join(toks[1:])
1649
+ for element in elements.keys():
1650
+ table = elements[element]
1651
+ elstr = f"{element}_"
1652
+ if tail.startswith(elstr):
1653
+ part = tail[len(elstr) :]
1654
+ if part != "gbp":
1655
+ table["parts"].add(part)
1656
+ if t.startswith("difference_") and t.endswith("_gbp"):
1657
+ table["order"] = abs(values[t])
1656
1658
 
1657
1659
  tables.sort(key=lambda t: t["order"], reverse=True)
1658
1660
  return render_template(
@@ -17,9 +17,10 @@ dependencies = [
17
17
  "odio==0.0.23",
18
18
  "pypdf==4.3.1",
19
19
  "pg8000==1.31.1",
20
- "Flask==2.3.3",
20
+ "Flask==3.1.0",
21
21
  "SQLAlchemy==2.0.30",
22
- "flask-restx==1.2.0",
22
+ "flask-restx==1.3.0",
23
+ "jsonschema==4.17.3", # Temporarily needed until RestX updated
23
24
  "openpyxl==3.1.2",
24
25
  "python-dateutil==2.8.2",
25
26
  "pytz==2022.6",
@@ -1 +0,0 @@
1
- __version__ = "1739889885.0.0"