chellow 1753693159.0.0__tar.gz → 1754563507.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 (502) hide show
  1. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/PKG-INFO +1 -1
  2. chellow-1754563507.0.0/VERSION +1 -0
  3. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/drax_edi.py +8 -1
  4. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/engie_edi.py +2 -2
  5. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/haven_edi_tprs.py +7 -0
  6. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/ro.py +1 -0
  7. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/tlms.py +1 -7
  8. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_111.py +28 -0
  9. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_247.py +5 -5
  10. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_59.py +6 -6
  11. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_g_monthly_duration.py +4 -4
  12. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_sscs.py +5 -5
  13. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_bill_check.html +1 -1
  14. chellow-1754563507.0.0/chellow/templates/report_run_row_bill_check.html +299 -0
  15. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/views.py +24 -26
  16. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_drax_edi.py +1 -0
  17. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi_tprs.py +2 -1
  18. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_computer.py +196 -0
  19. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_e_views.py +5 -5
  20. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_g_monthly_duration.py +5 -5
  21. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_247.py +33 -33
  22. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_59.py +25 -25
  23. chellow-1753693159.0.0/VERSION +0 -1
  24. chellow-1753693159.0.0/chellow/templates/report_run_row_bill_check.html +0 -191
  25. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/.ebextensions/chellow.config +0 -0
  26. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/.github/workflows/chellow.yml +0 -0
  27. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/.gitignore +0 -0
  28. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/README.md +0 -0
  29. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/application.py +0 -0
  30. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/bin/chellow_service_monitor.sh +0 -0
  31. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/bin/chellow_start.sh +0 -0
  32. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/__init__.py +0 -0
  33. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/api.py +0 -0
  34. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/bank_holidays.py +0 -0
  35. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/commands.py +0 -0
  36. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/dloads.py +0 -0
  37. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/__init__.py +0 -0
  38. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/aahedc.py +0 -0
  39. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_importer.py +0 -0
  40. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/__init__.py +0 -0
  41. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +0 -0
  42. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +0 -0
  43. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/bgb_edi.py +0 -0
  44. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/csv.py +0 -0
  45. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/drax_element_edi.py +0 -0
  46. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/edf_export_xlsx.py +0 -0
  47. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/engie_export_xlsx.py +0 -0
  48. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/engie_xls.py +0 -0
  49. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/engie_xlsx.py +0 -0
  50. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/gdf_csv.py +0 -0
  51. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/haven_csv.py +0 -0
  52. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/haven_edi.py +0 -0
  53. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/mm.py +0 -0
  54. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +0 -0
  55. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +0 -0
  56. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/sse_edi.py +0 -0
  57. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bill_parsers/sww_xls.py +0 -0
  58. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bmarketidx.py +0 -0
  59. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/bsuos.py +0 -0
  60. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/ccl.py +0 -0
  61. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/cfd.py +0 -0
  62. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/computer.py +0 -0
  63. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/dno_rate_parser.py +0 -0
  64. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/duos.py +0 -0
  65. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/elexon.py +0 -0
  66. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/energy_management.py +0 -0
  67. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_importer.py +0 -0
  68. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_parser_bg_csv.py +0 -0
  69. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_parser_df2.py +0 -0
  70. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_parser_edf_csv.py +0 -0
  71. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_parser_schneider_csv.py +0 -0
  72. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_parser_schneider_xlsx.py +0 -0
  73. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_parser_simple_csv.py +0 -0
  74. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/hh_parser_vital_xlsx.py +0 -0
  75. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/lafs.py +0 -0
  76. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/lcc.py +0 -0
  77. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/mdd_importer.py +0 -0
  78. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/rcrc.py +0 -0
  79. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/scenario.py +0 -0
  80. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/system_price.py +0 -0
  81. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/tnuos.py +0 -0
  82. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/triad.py +0 -0
  83. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/e/views.py +0 -0
  84. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/edi_lib.py +0 -0
  85. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/fake_batch_updater.py +0 -0
  86. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/bill_import.py +0 -0
  87. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/bill_parser_bgs_xlsx.py +0 -0
  88. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/bill_parser_csv.py +0 -0
  89. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/bill_parser_engie_edi.py +0 -0
  90. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/bill_parser_total_edi.py +0 -0
  91. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/ccl.py +0 -0
  92. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/cv.py +0 -0
  93. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/dn_rate_parser.py +0 -0
  94. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/engine.py +0 -0
  95. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/transportation.py +0 -0
  96. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/gas/views.py +0 -0
  97. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/general_import.py +0 -0
  98. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/models.py +0 -0
  99. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/national_grid.py +0 -0
  100. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/proxy.py +0 -0
  101. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/rate_server.py +0 -0
  102. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/__init__.py +0 -0
  103. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_109.py +0 -0
  104. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_169.py +0 -0
  105. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_181.py +0 -0
  106. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_183.py +0 -0
  107. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_187.py +0 -0
  108. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_219.py +0 -0
  109. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_231.py +0 -0
  110. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_233.py +0 -0
  111. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_241.py +0 -0
  112. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_29.py +0 -0
  113. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_291.py +0 -0
  114. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_33.py +0 -0
  115. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_387.py +0 -0
  116. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_41.py +0 -0
  117. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_429.py +0 -0
  118. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_81.py +0 -0
  119. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_87.py +0 -0
  120. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_asset_comparison.py +0 -0
  121. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_batches.py +0 -0
  122. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_bills.py +0 -0
  123. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_csv_llfcs.py +0 -0
  124. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_csv_site_hh_data.py +0 -0
  125. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_csv_site_snags.py +0 -0
  126. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_ecoes_comparison.py +0 -0
  127. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_g_supplies_snapshot.py +0 -0
  128. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_g_supply_virtual_bill.py +0 -0
  129. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_g_virtual_bills.py +0 -0
  130. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_g_virtual_bills_hh.py +0 -0
  131. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_missing_bills.py +0 -0
  132. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/reports/report_supply_contacts.py +0 -0
  133. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/rrun.py +0 -0
  134. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/static/css/chellow.css +0 -0
  135. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/static/images/favicon.svg +0 -0
  136. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/static/images/favicon_test.svg +0 -0
  137. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/static/images/logo.png +0 -0
  138. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/static/js/htmx.min.js +0 -0
  139. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/403.html +0 -0
  140. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/base.html +0 -0
  141. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/bill_type.html +0 -0
  142. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/bill_types.html +0 -0
  143. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/chain.html +0 -0
  144. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/csv_sites_monthly_duration.html +0 -0
  145. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/downloads.html +0 -0
  146. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/asset_comparison.html +0 -0
  147. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/channel.html +0 -0
  148. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/channel_add.html +0 -0
  149. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/channel_edit.html +0 -0
  150. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/channel_snag.html +0 -0
  151. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/channel_snag_edit.html +0 -0
  152. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/channel_snags.html +0 -0
  153. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/comm.html +0 -0
  154. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/comms.html +0 -0
  155. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/cop.html +0 -0
  156. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/cops.html +0 -0
  157. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/csv_bills.html +0 -0
  158. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/csv_register_reads.html +0 -0
  159. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/csv_sites_hh_data.html +0 -0
  160. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/csv_sites_triad.html +0 -0
  161. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/csv_supplies_hh_data.html +0 -0
  162. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/csv_supplies_snapshot.html +0 -0
  163. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/csv_supplies_triad.html +0 -0
  164. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_auto_importer.html +0 -0
  165. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_batch.html +0 -0
  166. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_batch_add.html +0 -0
  167. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_batch_edit.html +0 -0
  168. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_batch_file.html +0 -0
  169. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_batch_file_edit.html +0 -0
  170. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_batch_upload_file.html +0 -0
  171. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_batches.html +0 -0
  172. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_bill.html +0 -0
  173. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_bill_add.html +0 -0
  174. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_bill_edit.html +0 -0
  175. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_bill_import.html +0 -0
  176. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_bill_imports.html +0 -0
  177. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contract.html +0 -0
  178. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contract_edit.html +0 -0
  179. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contract_hh_import.html +0 -0
  180. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contract_hh_imports.html +0 -0
  181. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contract_properties.html +0 -0
  182. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contract_properties_edit.html +0 -0
  183. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contracts.html +0 -0
  184. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_contracts_add.html +0 -0
  185. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_rate_script.html +0 -0
  186. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_rate_script_add.html +0 -0
  187. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dc_rate_script_edit.html +0 -0
  188. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dno.html +0 -0
  189. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dno_rate_script.html +0 -0
  190. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dno_rate_script_add.html +0 -0
  191. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dno_rate_script_edit.html +0 -0
  192. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dnos.html +0 -0
  193. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dtc_meter_type.html +0 -0
  194. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/dtc_meter_types.html +0 -0
  195. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/duration_report.html +0 -0
  196. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/elexon.html +0 -0
  197. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/em_hh_data.html +0 -0
  198. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/em_months.html +0 -0
  199. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/em_site.html +0 -0
  200. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/em_totals.html +0 -0
  201. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/energisation_status.html +0 -0
  202. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/energisation_statuses.html +0 -0
  203. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/era_edit.html +0 -0
  204. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/era_edit_form.html +0 -0
  205. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/era_supplier_bill_add.html +0 -0
  206. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/generator_type.html +0 -0
  207. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/generator_types.html +0 -0
  208. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/gsp_group.html +0 -0
  209. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/gsp_groups.html +0 -0
  210. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/hh_datum_edit.html +0 -0
  211. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/lafs.html +0 -0
  212. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/lcc.html +0 -0
  213. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/llfc.html +0 -0
  214. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/llfc_edit.html +0 -0
  215. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/llfcs.html +0 -0
  216. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/market_role.html +0 -0
  217. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/market_roles.html +0 -0
  218. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/meter_payment_type.html +0 -0
  219. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/meter_payment_types.html +0 -0
  220. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/meter_type.html +0 -0
  221. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/meter_types.html +0 -0
  222. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_batch.html +0 -0
  223. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_batch_add.html +0 -0
  224. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_batch_edit.html +0 -0
  225. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_batch_file.html +0 -0
  226. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_batch_file_edit.html +0 -0
  227. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_batch_upload_file.html +0 -0
  228. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_batches.html +0 -0
  229. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_bill.html +0 -0
  230. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_bill_add.html +0 -0
  231. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_bill_edit.html +0 -0
  232. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_bill_import.html +0 -0
  233. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_bill_imports.html +0 -0
  234. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_contract.html +0 -0
  235. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_contract_add.html +0 -0
  236. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_contract_edit.html +0 -0
  237. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_contracts.html +0 -0
  238. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_rate_script.html +0 -0
  239. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_rate_script_add.html +0 -0
  240. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mop_rate_script_edit.html +0 -0
  241. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc.html +0 -0
  242. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_llfc.html +0 -0
  243. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_llfc_ssc.html +0 -0
  244. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_llfc_ssc_pc.html +0 -0
  245. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_llfc_ssc_pcs.html +0 -0
  246. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_llfc_sscs.html +0 -0
  247. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_llfcs.html +0 -0
  248. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_participant.html +0 -0
  249. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_participants.html +0 -0
  250. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_ssc.html +0 -0
  251. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtc_sscs.html +0 -0
  252. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/mtcs.html +0 -0
  253. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/ods_monthly_duration.html +0 -0
  254. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/participant.html +0 -0
  255. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/participants.html +0 -0
  256. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/parties.html +0 -0
  257. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/party.html +0 -0
  258. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/pc.html +0 -0
  259. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/pcs.html +0 -0
  260. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/read_add.html +0 -0
  261. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/read_edit.html +0 -0
  262. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/read_type.html +0 -0
  263. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/read_types.html +0 -0
  264. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/scenario.html +0 -0
  265. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/scenario_add.html +0 -0
  266. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/scenario_docs.html +0 -0
  267. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/scenario_edit.html +0 -0
  268. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/scenarios.html +0 -0
  269. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_add_e_supply.html +0 -0
  270. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_add_e_supply_form.html +0 -0
  271. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_hh_data.html +0 -0
  272. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_site_snags.html +0 -0
  273. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_snag.html +0 -0
  274. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_snag_edit.html +0 -0
  275. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_snags.html +0 -0
  276. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/site_snags_edit.html +0 -0
  277. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/source.html +0 -0
  278. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/sources.html +0 -0
  279. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/ssc.html +0 -0
  280. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/sscs.html +0 -0
  281. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batch.html +0 -0
  282. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batch_add.html +0 -0
  283. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batch_edit.html +0 -0
  284. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batch_file.html +0 -0
  285. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batch_file_add.html +0 -0
  286. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batch_file_edit.html +0 -0
  287. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batch_upload_file.html +0 -0
  288. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_batches.html +0 -0
  289. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_bill.html +0 -0
  290. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_bill_add.html +0 -0
  291. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_bill_edit.html +0 -0
  292. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_bill_import.html +0 -0
  293. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_bill_imports.html +0 -0
  294. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_contract.html +0 -0
  295. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_contract_add.html +0 -0
  296. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_contract_edit.html +0 -0
  297. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_contracts.html +0 -0
  298. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_rate_script.html +0 -0
  299. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_rate_script_add.html +0 -0
  300. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supplier_rate_script_edit.html +0 -0
  301. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply.html +0 -0
  302. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_edit.html +0 -0
  303. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_eras.html +0 -0
  304. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_hh_data.html +0 -0
  305. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_months.html +0 -0
  306. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_note_add.html +0 -0
  307. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_note_edit.html +0 -0
  308. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_notes.html +0 -0
  309. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_post.html +0 -0
  310. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/supply_virtual_bill.html +0 -0
  311. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/tpr.html +0 -0
  312. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/e/tprs.html +0 -0
  313. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/edi_viewer.html +0 -0
  314. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/fake_batch_updater.html +0 -0
  315. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/batch.html +0 -0
  316. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/batch_add.html +0 -0
  317. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/batch_edit.html +0 -0
  318. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/batches.html +0 -0
  319. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/bill.html +0 -0
  320. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/bill_add.html +0 -0
  321. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/bill_edit.html +0 -0
  322. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/bill_import.html +0 -0
  323. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/bill_imports.html +0 -0
  324. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/dn.html +0 -0
  325. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/dns.html +0 -0
  326. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/era_edit.html +0 -0
  327. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/exit_zone.html +0 -0
  328. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_auto_importer.html +0 -0
  329. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_contract.html +0 -0
  330. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_contract_add.html +0 -0
  331. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_contract_edit.html +0 -0
  332. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_contracts.html +0 -0
  333. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_rate_script.html +0 -0
  334. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_rate_script_add.html +0 -0
  335. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/industry_rate_script_edit.html +0 -0
  336. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/ldz.html +0 -0
  337. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/read_add.html +0 -0
  338. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/read_edit.html +0 -0
  339. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/read_type.html +0 -0
  340. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/read_types.html +0 -0
  341. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/reading_frequencies.html +0 -0
  342. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/reading_frequency.html +0 -0
  343. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/reports.html +0 -0
  344. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplier_contract.html +0 -0
  345. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplier_contract_add.html +0 -0
  346. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplier_contract_edit.html +0 -0
  347. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplier_contracts.html +0 -0
  348. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplier_rate_script.html +0 -0
  349. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplier_rate_script_add.html +0 -0
  350. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplier_rate_script_edit.html +0 -0
  351. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supplies.html +0 -0
  352. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supply.html +0 -0
  353. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supply_edit.html +0 -0
  354. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supply_note_add.html +0 -0
  355. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supply_note_edit.html +0 -0
  356. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/supply_notes.html +0 -0
  357. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/unit.html +0 -0
  358. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/g/units.html +0 -0
  359. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/general_import.html +0 -0
  360. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/general_imports.html +0 -0
  361. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/home.html +0 -0
  362. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/input_date.html +0 -0
  363. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/local_report.html +0 -0
  364. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/local_reports.html +0 -0
  365. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/macros.html +0 -0
  366. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/national_grid.html +0 -0
  367. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/non_core_auto_importer.html +0 -0
  368. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/non_core_contract.html +0 -0
  369. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/non_core_contract_edit.html +0 -0
  370. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/non_core_contracts.html +0 -0
  371. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/non_core_rate_script.html +0 -0
  372. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/non_core_rate_script_add.html +0 -0
  373. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/non_core_rate_script_edit.html +0 -0
  374. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/object_summary.html +0 -0
  375. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/rate_server.html +0 -0
  376. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run.html +0 -0
  377. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_asset_comparison.html +0 -0
  378. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_ecoes_comparison.html +0 -0
  379. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_g_bill_check.html +0 -0
  380. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_missing_e_bills.html +0 -0
  381. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_monthly_duration_org.html +0 -0
  382. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_row.html +0 -0
  383. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_row_g_bill_check.html +0 -0
  384. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_run_supply_contacts.html +0 -0
  385. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/report_runs.html +0 -0
  386. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/scenario.html +0 -0
  387. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/scenario_add.html +0 -0
  388. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/scenario_docs.html +0 -0
  389. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/scenario_edit.html +0 -0
  390. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/scenarios.html +0 -0
  391. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/site.html +0 -0
  392. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/site_add.html +0 -0
  393. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/site_edit.html +0 -0
  394. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/site_gen_graph.html +0 -0
  395. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/site_months.html +0 -0
  396. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/site_used_graph.html +0 -0
  397. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/sites.html +0 -0
  398. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/supplies.html +0 -0
  399. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/system.html +0 -0
  400. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/tester.html +0 -0
  401. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/user.html +0 -0
  402. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/user_roles.html +0 -0
  403. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/templates/users.html +0 -0
  404. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/testing.py +0 -0
  405. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/chellow/utils.py +0 -0
  406. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/gpl.txt +0 -0
  407. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/pyproject.toml +0 -0
  408. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/requirements.txt +0 -0
  409. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/setup.cfg +0 -0
  410. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/systemd/chellow.service +0 -0
  411. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/systemd/chellow_upgrader.service +0 -0
  412. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/systemd/chellow_upgrader.timer +0 -0
  413. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/conftest.py +0 -0
  414. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_activity_mop_stark_xlsx.py +0 -0
  415. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_annual_mop_stark_xlsx.py +0 -0
  416. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_csv.py +0 -0
  417. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_edf_export_xlsx.py +0 -0
  418. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_engie_edi.py +0 -0
  419. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_engie_xls.py +0 -0
  420. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +0 -0
  421. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_haven_csv.py +0 -0
  422. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi.py +0 -0
  423. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_mm.py +0 -0
  424. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills.nonsettlement.dc.stark.xlsx +0 -0
  425. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills_old.nonsettlement.dc.stark.xlsx +0 -0
  426. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/test_bill_parser_nonsettlement_dc_stark_xlsx.py +0 -0
  427. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx.py +0 -0
  428. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_sse_edi.py +0 -0
  429. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_bill_parser_sww_xls.py +0 -0
  430. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/bill_parsers/test_parser_drax_elements_edit.py +0 -0
  431. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/system_price/prices.xls +0 -0
  432. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/system_price/test_system_price.py +0 -0
  433. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_aahedc.py +0 -0
  434. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_bill_importer.py +0 -0
  435. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_bsuos.py +0 -0
  436. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_ccl.py +0 -0
  437. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_cfd.py +0 -0
  438. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_dno_rate_parser.py +0 -0
  439. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_duos.py +0 -0
  440. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_hh_importer.py +0 -0
  441. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_hh_parser_df2.py +0 -0
  442. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_hh_parser_vital_xlsx.py +0 -0
  443. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_lafs.py +0 -0
  444. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_mdd_importer.py +0 -0
  445. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_rcrc_importer.py +0 -0
  446. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_ro.py +0 -0
  447. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_scenario.py +0 -0
  448. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_tlms.py +0 -0
  449. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_tnuos.py +0 -0
  450. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/e/test_triad.py +0 -0
  451. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/bill_parsers/test_bill_parser_bgs_xlsx.py +0 -0
  452. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/bill_parsers/test_g_bill_parser_engie_edi.py +0 -0
  453. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/bill_parsers/test_g_bill_parser_total_edi.py +0 -0
  454. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/test_dn_rate_parser.py +0 -0
  455. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/test_engine.py +0 -0
  456. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/test_g_cv.py +0 -0
  457. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/test_gas_views.py +0 -0
  458. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/gas/test_transportation.py +0 -0
  459. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_g_supplies_snapshot.py +0 -0
  460. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_g_supply_virtual_bill.py +0 -0
  461. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_g_virtual_bills.py +0 -0
  462. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_g_virtual_bills_hh.py +0 -0
  463. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_109.py +0 -0
  464. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_111.py +0 -0
  465. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_169.py +0 -0
  466. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_181.py +0 -0
  467. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_183.py +0 -0
  468. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_187.py +0 -0
  469. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_219.py +0 -0
  470. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_231.py +0 -0
  471. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_233.py +0 -0
  472. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_241.py +0 -0
  473. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_29.py +0 -0
  474. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_291.py +0 -0
  475. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_33.py +0 -0
  476. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_387.py +0 -0
  477. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_41.py +0 -0
  478. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_429.py +0 -0
  479. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_81.py +0 -0
  480. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_87.py +0 -0
  481. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_asset_comparison.py +0 -0
  482. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_batches.py +0 -0
  483. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_bills.py +0 -0
  484. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_csv_llfcs.py +0 -0
  485. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_csv_site_hh_data.py +0 -0
  486. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_csv_site_snags.py +0 -0
  487. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_dno_vl_parser.py +0 -0
  488. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_ecoes_comparison.py +0 -0
  489. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_missing_e_bills.py +0 -0
  490. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_sscs.py +0 -0
  491. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/reports/test_report_supply_contacts.py +0 -0
  492. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_chellow.py +0 -0
  493. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_dloads.py +0 -0
  494. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_edi_viewer.py +0 -0
  495. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_fake_batch_updater.py +0 -0
  496. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_general_import.py +0 -0
  497. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_models.py +0 -0
  498. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_rate_server.py +0 -0
  499. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_testing.py +0 -0
  500. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_utils.py +0 -0
  501. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/test_views.py +0 -0
  502. {chellow-1753693159.0.0 → chellow-1754563507.0.0}/test/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chellow
3
- Version: 1753693159.0.0
3
+ Version: 1754563507.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__ = "1754563507.0.0"
@@ -449,11 +449,18 @@ def _process_MTR(elements, headers):
449
449
 
450
450
 
451
451
  def _process_VAT(elements, headers):
452
+ breakdown = headers["breakdown"]
452
453
  vat = Decimal("0.00") + to_decimal(elements["UVTT"]) / Decimal("100")
453
454
  vat_percentage = to_decimal(elements["VATP"]) / Decimal("1000")
455
+
456
+ if "vat_rate" in breakdown:
457
+ vat_rate = breakdown["vat-rate"]
458
+ else:
459
+ vat_rate = breakdown["vat-rate"] = set()
460
+ vat_rate.add(vat_percentage / Decimal("100"))
454
461
  vat_net = Decimal("0.00") + to_decimal(elements["UVLA"]) / Decimal("100")
455
462
 
456
- headers["breakdown"]["vat"][vat_percentage] = {"vat": vat, "net": vat_net}
463
+ breakdown["vat"][vat_percentage] = {"vat": vat, "net": vat_net}
457
464
 
458
465
 
459
466
  def _process_NOOP(elements, headers):
@@ -54,7 +54,7 @@ TCOD_MAP = {
54
54
  "839829": ("cfd-fit-gbp", "cfd-fit-rate", "cfd-fit-kwh"),
55
55
  "649282": ("cfd-fit-gbp", "cfd-fit-rate", "cfd-fit-kwh"),
56
56
  "068476": ("day-gbp", "day-rate", "day-kwh"),
57
- "133186": ("day-gbp", "day-rate", "day-kwh"),
57
+ "133186": ("nrg-gbp", "nrg-rate", "nrg-kwh"),
58
58
  "400434": ("day-gbp", "day-rate", "day-kwh"),
59
59
  "219182": (
60
60
  "duos-availability-gbp",
@@ -109,7 +109,7 @@ TCOD_MAP = {
109
109
  "220894": ("winter-night-gbp", "winter-night-rate", "winter-night-kwh"),
110
110
  "264929": ("winter-weekday-gbp", "winter-weekday-rate", "winter-weekday-kwh"),
111
111
  "638187": ("winter-weekend-gbp", "winter-weekend-rate", "winter-weekend-kwh"),
112
- "700285": ("duos-fixed-gbp", "duos-fixed-rate", "duos-fixed-days"),
112
+ "700285": ("standing-gbp", "standing-rate", "standing-days"),
113
113
  }
114
114
 
115
115
  TPR_LOOKUP = {
@@ -330,6 +330,13 @@ def _process_VAT(elements, headers):
330
330
  else:
331
331
  vat_breakdown = bd["vat"] = {}
332
332
 
333
+ if "vat-rate" in bd:
334
+ vat_rate = bd["vat-rate"]
335
+ else:
336
+ vat_rate = bd["vat-rate"] = set()
337
+
338
+ vat_rate.add(vat_percentage / Decimal("100"))
339
+
333
340
  try:
334
341
  vat_values = vat_breakdown[vat_percentage]
335
342
  except KeyError:
@@ -15,4 +15,5 @@ def hh(supply_source):
15
15
 
16
16
  ro_kwh = hh["msp-kwh"]
17
17
  hh["ro-msp-kwh"] = ro_kwh
18
+ hh["ro-kwh"] = ro_kwh
18
19
  hh["ro-gbp"] = ro_kwh * ro_rate
@@ -148,13 +148,7 @@ def elexon_import(sess, log, set_progress, s, scripting_key):
148
148
 
149
149
  set_progress(values[0])
150
150
 
151
- if values[3] == "":
152
- for zone in GSP_GROUP_LOOKUP.keys():
153
- values[3] = zone
154
- _process_line(
155
- cache, sess, contract, log, values, complete_date, caches
156
- )
157
- else:
151
+ if len(values) > 5:
158
152
  _process_line(cache, sess, contract, log, values, complete_date, caches)
159
153
 
160
154
  for rscript in cache["rate_scripts"]:
@@ -6,6 +6,7 @@ from collections import 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 dateutil.relativedelta import relativedelta
11
12
 
@@ -775,6 +776,33 @@ def _process_supply(
775
776
  values["batch_id"] = bill.batch.id
776
777
  values["supply_id"] = supply.id
777
778
  values["site_id"] = None if site_code is None else site.id
779
+ for key in tuple(values.keys()):
780
+ for element in sorted(long_map.keys(), key=len, reverse=True):
781
+ if not key.endswith("-gbp"):
782
+ covered_prefix = f"covered-{element}-"
783
+ virtual_prefix = f"virtual-{element}-"
784
+ if key.startswith(covered_prefix):
785
+ part_name = key[len(covered_prefix) :]
786
+ elif key.startswith(virtual_prefix):
787
+ part_name = key[len(virtual_prefix) :]
788
+ else:
789
+ continue
790
+ virtual_part = values.get(f"virtual-{element}-{part_name}", {0})
791
+ covered_part = values.get(f"covered-{element}-{part_name}", {0})
792
+ if isinstance(virtual_part, set) and len(virtual_part) == 1:
793
+ virtual_part = next(iter(virtual_part))
794
+ if isinstance(covered_part, set) and len(covered_part) == 1:
795
+ covered_part = next(iter(covered_part))
796
+
797
+ if isinstance(virtual_part, Number) and isinstance(
798
+ covered_part, Number
799
+ ):
800
+ diff = float(covered_part) - float(virtual_part)
801
+ else:
802
+ diff = None
803
+
804
+ values[f"difference-{element}-{part_name}"] = diff
805
+ break
778
806
  ReportRun.w_insert_row(
779
807
  report_run_id, "", report_run_titles, values, {"is_checked": False}
780
808
  )
@@ -8,7 +8,7 @@ from dateutil.relativedelta import relativedelta
8
8
 
9
9
  from flask import flash, g, make_response, redirect, render_template, request
10
10
 
11
- import odio
11
+ from odio import create_spreadsheet
12
12
 
13
13
  from sqlalchemy import or_, select, true
14
14
  from sqlalchemy.sql.expression import null
@@ -63,10 +63,10 @@ def write_spreadsheet(
63
63
  ):
64
64
  fl.seek(0)
65
65
  fl.truncate()
66
- with odio.create_spreadsheet(fl, "1.2", compressed=compressed) as f:
67
- f.append_table("Site Level", site_rows)
68
- f.append_table("Era Level", era_rows)
69
- f.append_table("Normal Reads", read_rows)
66
+ with create_spreadsheet(fl, compressed=compressed) as sheet:
67
+ sheet.append_table("Site Level", site_rows)
68
+ sheet.append_table("Era Level", era_rows)
69
+ sheet.append_table("Normal Reads", read_rows)
70
70
 
71
71
 
72
72
  def make_bill_row(titles, bill):
@@ -7,7 +7,7 @@ from dateutil.relativedelta import relativedelta
7
7
 
8
8
  from flask import flash, g, make_response, redirect, render_template, request
9
9
 
10
- import odio
10
+ from odio import create_spreadsheet
11
11
 
12
12
  from sqlalchemy import or_, select, true
13
13
  from sqlalchemy.sql.expression import null
@@ -58,11 +58,11 @@ CATEGORY_ORDER = {None: 0, "unmetered": 1, "nhh": 2, "amr": 3, "hh": 4}
58
58
  def write_spreadsheet(fl, compressed, site_rows, supply_rows, era_rows, read_rows):
59
59
  fl.seek(0)
60
60
  fl.truncate()
61
- with odio.create_spreadsheet(fl, "1.2", compressed=compressed) as f:
62
- f.append_table("Site Level", site_rows)
63
- f.append_table("Supply Level", supply_rows)
64
- f.append_table("Era Level", era_rows)
65
- f.append_table("Normal Reads", read_rows)
61
+ with create_spreadsheet(fl, compressed=compressed) as sheet:
62
+ sheet.append_table("Site Level", site_rows)
63
+ sheet.append_table("Supply Level", supply_rows)
64
+ sheet.append_table("Era Level", era_rows)
65
+ sheet.append_table("Normal Reads", read_rows)
66
66
 
67
67
 
68
68
  def make_bill_row(titles, bill):
@@ -3,7 +3,7 @@ import traceback
3
3
 
4
4
  from flask import g, redirect, request
5
5
 
6
- import odio
6
+ from odio import create_spreadsheet
7
7
 
8
8
  from sqlalchemy import or_, select, true
9
9
  from sqlalchemy.orm import joinedload
@@ -47,9 +47,9 @@ from chellow.utils import (
47
47
  def write_spreadsheet(fl, compressed, site_rows, era_rows):
48
48
  fl.seek(0)
49
49
  fl.truncate()
50
- with odio.create_spreadsheet(fl, "1.2", compressed=compressed) as f:
51
- f.append_table("Site Level", site_rows)
52
- f.append_table("Era Level", era_rows)
50
+ with create_spreadsheet(fl, compressed=compressed) as sheet:
51
+ sheet.append_table("Site Level", site_rows)
52
+ sheet.append_table("Era Level", era_rows)
53
53
 
54
54
 
55
55
  def _process_era(
@@ -5,7 +5,7 @@ import traceback
5
5
 
6
6
  from flask import g, redirect, request
7
7
 
8
- import odio
8
+ from odio import create_spreadsheet
9
9
 
10
10
  from sqlalchemy import select
11
11
  from sqlalchemy.orm import joinedload
@@ -26,10 +26,10 @@ def write_spreadsheet(
26
26
  ):
27
27
  fl.seek(0)
28
28
  fl.truncate()
29
- with odio.create_spreadsheet(fl, "1.2", compressed=compressed) as f:
30
- f.append_table("SSCs", ssc_rows)
31
- f.append_table("MRs", mr_rows)
32
- f.append_table("TPRs", tpr_rows)
29
+ with create_spreadsheet(fl, compressed=compressed) as sheet:
30
+ sheet.append_table("SSCs", ssc_rows)
31
+ sheet.append_table("MRs", mr_rows)
32
+ sheet.append_table("TPRs", tpr_rows)
33
33
 
34
34
 
35
35
  def content(
@@ -175,7 +175,7 @@
175
175
  </li>
176
176
  {% endfor %}
177
177
  </ul>
178
- {% else %}
178
+ {% elif values[title] is not none %}
179
179
  {{values[title]}}
180
180
  {% endif %}
181
181
  </td>
@@ -0,0 +1,299 @@
1
+ {% extends "base.html" %}
2
+
3
+ {% block title %}
4
+ &raquo; Report Runs &raquo; {{row.report_run.id}} &raquo; Row {{row.id}}
5
+ {% endblock %}
6
+
7
+ {% block nav %}
8
+ <a href="/report_runs">Report Runs</a> &raquo;
9
+ <a href="/report_runs/{{row.report_run.id}}">{{row.report_run.id}}</a>
10
+ &raquo; Row {{row.id}}
11
+ {% endblock %}
12
+
13
+ {% block content %}
14
+ {% set values = row.data['values'] %}
15
+ {% set properties = row.data.get('properties', {}) %}
16
+ <table>
17
+ <caption>Bill Check</caption>
18
+ <thead>
19
+ <tr>
20
+ <th rowspan="2">Batch</th>
21
+ <th colspan="8">Bill</th>
22
+ <th colspan="2">MPAN Core</th>
23
+ <th colspan="2">Site</th>
24
+ <th rowspan="2">Checking</th>
25
+ </tr>
26
+ <tr>
27
+ <th>Reference</th>
28
+ <th>Type</th>
29
+ <th>kWh</th>
30
+ <th>Net GBP</th>
31
+ <th>VAT GBP</th>
32
+ <th>Gross GBP</th>
33
+ <th>Start</th>
34
+ <th>Finish</th>
35
+ <th>Import</th>
36
+ <th>Export</th>
37
+ <th>Code</th>
38
+ <th>Name</th>
39
+ </tr>
40
+ </thead>
41
+ <tbody>
42
+ <tr>
43
+ <td>
44
+ {% if values.batch_id != None %}
45
+ <a href="/e/supplier_batches/{{values.batch_id}}">{{values['batch']}}</a>
46
+ {% endif %}
47
+ </td>
48
+ <td>
49
+ {% if values.bill_id != None %}
50
+ <a href="/e/supplier_bills/{{values.bill_id}}">{{
51
+ values['bill-reference']}}</a>
52
+ {% endif %}
53
+ </td>
54
+ <td>{{values['bill-type']}}</td>
55
+ <td>{{values['bill-kwh']}}</td>
56
+ <td>{{values['bill-net-gbp']}}</td>
57
+ <td>{{values['bill-vat-gbp']}}</td>
58
+ <td>{{values['bill-gross-gbp']}}</td>
59
+ <td>{{values['bill-start-date']}}</td>
60
+ <td>{{values['bill-finish-date']}}</td>
61
+ <td>
62
+ {% if values['imp-mpan-core'] != None %}
63
+ <a href="/e/supplies/{{values.supply_id}}">{{
64
+ values['imp-mpan-core']}}</a>
65
+ {% endif %}
66
+ </td>
67
+ <td>
68
+ {% if values['exp-mpan-core'] != None %}
69
+ <a href="/e/supplies/{{values.supply_id}}">{{
70
+ values['exp-mpan-core']}}</a>
71
+ {% endif %}
72
+ </td>
73
+ <td>
74
+ {% if values.site_id != None %}
75
+ <a href="/sites/{{values.site_id}}">{{
76
+ values['site-code']}}</a>
77
+ {% endif %}
78
+ </td>
79
+ <td>{{values['site-name']}}</td>
80
+ <td>
81
+ <form action="/report_run_rows/{{row.id}}" method="post">
82
+ <fieldset>
83
+ {{input_textarea(
84
+ 'note', properties.note, 5, 40,
85
+ placeholder='Notes on checking go here...')}}
86
+ <br>
87
+ <br>
88
+ <label>Checked?
89
+ {{input_checkbox('is_checked', properties.is_checked)}}
90
+ </label>
91
+ <input type="submit" name="update" value="Update">
92
+ </fieldset>
93
+ </form>
94
+ </td>
95
+ </tr>
96
+ </tbody>
97
+ </table>
98
+
99
+ <table>
100
+ <caption>Covered</caption>
101
+ <thead>
102
+ <tr>
103
+ <th>From</th>
104
+ <th>To</th>
105
+ <th>Bills</th>
106
+ <th>Metered kWh</th>
107
+ <th>Net GBP</th>
108
+ <th>Virtual Net GBP</th>
109
+ <th>Difference GBP</th>
110
+ <th>Problem</th>
111
+ <th>Virtual Problem</th>
112
+ </tr>
113
+ </thead>
114
+ <tbody>
115
+ <tr>
116
+ <td>{{values['covered-from']}}</td>
117
+ <td>{{values['covered-to']}}</td>
118
+ <td>
119
+ {% if values['covered-bills'] != None %}
120
+ <ul>
121
+ {% for bill_id in values['covered-bills'] %}
122
+ <li>
123
+ <a href="/e/supplier_bills/{{bill_id}}">{{bill_id}}</a>
124
+ {% if bill_id == values.bill_id %}
125
+ (This bill)
126
+ {% endif %}
127
+ </li>
128
+ {% endfor %}
129
+ </ul>
130
+ {% endif %}
131
+ </td>
132
+ <td>
133
+ {% if values['metered-kwh'] != None %}
134
+ {{"%.0f"|format(values['metered-kwh'])}}
135
+ {% endif %}
136
+ </td>
137
+ <td>{{values['covered-net-gbp']}}</td>
138
+ <td>
139
+ {% if values['virtual-net-gbp'] != None %}
140
+ {{"%.2f"|format(values['virtual-net-gbp'])}}
141
+ {% endif %}
142
+ </td>
143
+ <td>
144
+ {% if values['difference-net-gbp'] != None %}
145
+ {{"%.2f"|format(values['difference-net-gbp'])}}
146
+ {% endif %}
147
+ </td>
148
+ <td>{{values['covered-problem']}}</td>
149
+ <td>{{values['virtual-problem']}}</td>
150
+ </tr>
151
+ </tbody>
152
+ </table>
153
+
154
+ <section class="elements">
155
+ <table>
156
+ <caption>GBP</caption>
157
+ <thead>
158
+ <tr>
159
+ <th>Part</th>
160
+ <th>Covered</th>
161
+ <th>Virtual</th>
162
+ <th>Difference</th>
163
+ </tr>
164
+ </thead>
165
+ <tbody>
166
+ <tr>
167
+ <td>gross</td>
168
+ <td>
169
+ {% if 'covered-gross-gbp' in values and values['covered-gross-gbp'] is number %}
170
+ {{"{:0,.2f}".format(values['covered-gross-gbp'])}}
171
+ {% endif %}
172
+ </td>
173
+ <td>
174
+ {% if 'virtual-gross-gbp' in values and values['virtual-gross-gbp'] is number %}
175
+ {{"{:0,.2f}".format(values['virtual-gross-gbp'])}}
176
+ {% endif %}
177
+ </td>
178
+ <td>
179
+ {% if 'difference-gross-gbp' in values and values['difference-gross-gbp'] is number %}
180
+ {{"{:0,.2f}".format(values['difference-gross-gbp'])}}
181
+ {% endif %}
182
+ </td>
183
+ </tr>
184
+ <tr>
185
+ <td>net</td>
186
+ <td>
187
+ {% if 'covered-net-gbp' in values and values['covered-net-gbp'] is number %}
188
+ {{"{:0,.2f}".format(values['covered-net-gbp'])}}</td>
189
+ {% endif %}
190
+ <td>
191
+ {% if 'virtual-net-gbp' in values and values['virtual-net-gbp'] is number %}
192
+ {{"{:0,.2f}".format(values['virtual-net-gbp'])}}</td>
193
+ {% endif %}
194
+ <td>
195
+ {% if 'difference-net-gbp' in values and values['difference-net-gbp'] is number %}
196
+ {{"{:0,.2f}".format(values['difference-net-gbp'])}}</td>
197
+ {% endif %}
198
+ </tr>
199
+ <tr>
200
+ <td>vat</td>
201
+ <td>
202
+ {% if 'covered-vat-gbp' in values and values['covered-vat-gbp'] is number %}
203
+ {{"{:0,.2f}".format(values['covered-vat-gbp'])}}</td>
204
+ {% endif %}
205
+ <td>
206
+ {% if 'virtual-vat-gbp' in values and values['virtual-vat-gbp'] is number %}
207
+ {{"{:0,.2f}".format(values['virtual-vat-gbp'])}}</td>
208
+ {% endif %}
209
+ <td>
210
+ {% if 'difference-vat-gbp' in values and values['difference-vat-gbp'] is number %}
211
+ {{"{:0,.2f}".format(values['difference-vat-gbp'])}}</td>
212
+ {% endif %}
213
+ </tr>
214
+ <tr>
215
+ <td>vat-rate</td>
216
+ <td>
217
+ {{values['covered-vat-rate']}}</td>
218
+ <td>{{values['virtual-vat-rate']}}</td>
219
+ <td>
220
+ {% if values['difference-vat-rate'] is number %}
221
+ {{"{:0,.2f}".format(values['difference-vat-rate'])}}
222
+ {% endif %}
223
+ </td>
224
+ </tr>
225
+ </tbody>
226
+ </table>
227
+
228
+ {% for table in tables %}
229
+ <table>
230
+ <caption>{{table.name}}</caption>
231
+ <thead>
232
+ <tr>
233
+ <th>Part</th>
234
+ <th>Covered</th>
235
+ <th>Virtual</th>
236
+ <th>Difference</th>
237
+ </tr>
238
+ </thead>
239
+ <tbody>
240
+ <tr>
241
+ <td>gbp</td>
242
+ {% for pref in ('covered-', 'virtual-', 'difference-') %}
243
+ <td>
244
+ {% set k = pref + table.name + "-gbp" %}
245
+ {% if k in values %}
246
+ {% set val = values[k] %}
247
+ {% else %}
248
+ {% set val = '' %}
249
+ {% endif %}
250
+ {% if val is none %}
251
+ {% elif val is number %}
252
+ {{"{:0,.2f}".format(val)}}
253
+ {% else %}
254
+ {{val}}
255
+ {% endif %}
256
+ </td>
257
+ {% endfor %}
258
+ </tr>
259
+ {% for part in table['parts']|sort %}
260
+ <tr>
261
+ <td>{{part}}</td>
262
+ {% for pref in ('covered-', 'virtual-', 'difference-') %}
263
+ <td>
264
+ {% set k = pref + table.name + "-" + part %}
265
+ {% if k in values %}
266
+ {% set val = values[k] %}
267
+ {% else %}
268
+ {% set val = '' %}
269
+ {% endif %}
270
+ {% if val is none %}
271
+ {% elif val is number %}
272
+ {{"{:0,.2f}".format(val)}}
273
+ {% elif (val is string) or (val is boolean) %}
274
+ {{val}}
275
+ {% else %}
276
+ {% for v in val %}
277
+ {% if v is number %}
278
+ {{"{:0,.2f}".format(v)}}
279
+ {% else %}
280
+ {{v}}
281
+ {% endif %}
282
+ {% if not loop.last %}
283
+ |
284
+ {% endif %}
285
+ {% endfor %}
286
+ {% endif %}
287
+ </td>
288
+ {% endfor %}
289
+ </tr>
290
+ {% endfor %}
291
+ </tbody>
292
+ </table>
293
+ {% endfor %}
294
+
295
+ </section>
296
+
297
+ <h2>Raw</h2>
298
+ <pre>{{raw_data}}</pre>
299
+ {% endblock %}
@@ -1629,42 +1629,40 @@ def report_run_row_get(row_id):
1629
1629
  if row.report_run.name == "bill_check":
1630
1630
  values = row.data["values"]
1631
1631
  elements = {}
1632
- for t in row.data["values"].keys():
1633
- if t == "difference-tpr-gbp":
1634
- continue
1632
+ for t in values.keys():
1635
1633
 
1636
1634
  if (
1637
1635
  t.startswith("covered-")
1638
1636
  or t.startswith("virtual-")
1639
1637
  or t.startswith("difference-")
1640
- ) and t not in (
1641
- "covered-from",
1642
- "covered-to",
1643
- "covered-bills",
1644
- "covered-problem",
1645
- "virtual-problem",
1646
- ):
1638
+ ) and t.endswith("-gbp"):
1647
1639
  toks = t.split("-")
1648
1640
  name = "-".join(toks[1:-1])
1641
+ if name in ("vat", "gross", "net", "tpr"):
1642
+ continue
1649
1643
  try:
1650
1644
  table = elements[name]
1651
1645
  except KeyError:
1652
- table = elements[name] = {"order": 0}
1653
-
1654
- if "titles" not in table:
1655
- table["titles"] = []
1656
- table["titles"].append(toks[0] + "-" + "-".join(toks[2:]))
1657
- if "values" not in table:
1658
- table["values"] = []
1659
- table["values"].append(values[t])
1660
- if t.startswith("difference-") and t.endswith("-gbp"):
1646
+ table = elements[name] = {"order": 0, "name": name, "parts": set()}
1647
+ tables.append(table)
1648
+
1649
+ if t.startswith("difference-"):
1661
1650
  table["order"] = abs(values[t])
1662
1651
 
1663
- for k, v in elements.items():
1664
- if k == "net":
1665
- continue
1666
- v["name"] = k
1667
- tables.append(v)
1652
+ for t in values.keys():
1653
+
1654
+ toks = t.split("-")
1655
+ if toks[0] in ("covered", "virtual", "difference"):
1656
+ tail = "-".join(toks[1:])
1657
+ for element in sorted(elements.keys(), key=len, reverse=True):
1658
+
1659
+ table = elements[element]
1660
+ elstr = f"{element}-"
1661
+ if tail.startswith(elstr):
1662
+ part = tail[len(elstr) :]
1663
+ if part != "gbp":
1664
+ table["parts"].add(part)
1665
+ break
1668
1666
 
1669
1667
  tables.sort(key=lambda t: t["order"], reverse=True)
1670
1668
  return render_template(
@@ -1678,7 +1676,7 @@ def report_run_row_get(row_id):
1678
1676
 
1679
1677
  values = row.data["values"]
1680
1678
  elements = {}
1681
- for t in row.data["values"].keys():
1679
+ for t in values.keys():
1682
1680
 
1683
1681
  if (
1684
1682
  t.startswith("covered_")
@@ -1695,7 +1693,7 @@ def report_run_row_get(row_id):
1695
1693
  table = elements[name] = {"order": 0, "name": name, "parts": set()}
1696
1694
  tables.append(table)
1697
1695
 
1698
- for t in row.data["values"].keys():
1696
+ for t in values.keys():
1699
1697
 
1700
1698
  toks = t.split("_")
1701
1699
  if toks[0] in ("covered", "virtual", "difference"):
@@ -284,6 +284,7 @@ def test_process_VAT(mocker):
284
284
  _process_VAT(elements, headers)
285
285
  expected_headers = {
286
286
  "breakdown": {
287
+ "vat-rate": {Decimal("0.20")},
287
288
  "vat": {Decimal("20"): {"net": Decimal("6.00"), "vat": Decimal("1.50")}},
288
289
  }
289
290
  }
@@ -350,7 +350,8 @@ def test_process_VAT(mocker):
350
350
  "vat": Decimal("1.50"),
351
351
  "gross": Decimal("8.50"),
352
352
  "breakdown": {
353
- "vat": {Decimal("20"): {"vat": Decimal("1.50"), "net": Decimal("6.00")}}
353
+ "vat-rate": {Decimal("0.20")},
354
+ "vat": {Decimal("20"): {"vat": Decimal("1.50"), "net": Decimal("6.00")}},
354
355
  },
355
356
  }
356
357
  assert headers == expected_headers