aa-ledger 1.0.3__py3-none-any.whl → 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +6 -6
  2. aa_ledger-2.0.0.dist-info/RECORD +267 -0
  3. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +1 -1
  4. ledger/__init__.py +2 -2
  5. ledger/admin.py +23 -18
  6. ledger/api/__init__.py +23 -7
  7. ledger/api/{ledger/admin.py → admin.py} +25 -31
  8. ledger/api/alliance.py +755 -0
  9. ledger/api/character.py +786 -0
  10. ledger/api/corporation.py +1141 -0
  11. ledger/api/{helpers.py → helpers/core.py} +33 -33
  12. ledger/api/helpers/icons.py +372 -0
  13. ledger/api/helpers/planetary_helper.py +354 -0
  14. ledger/api/planetary.py +354 -0
  15. ledger/api/schema.py +240 -15
  16. ledger/app_settings.py +18 -26
  17. ledger/auth_hooks.py +2 -2
  18. ledger/constants.py +50 -177
  19. ledger/decorators.py +2 -46
  20. ledger/forms.py +133 -39
  21. ledger/helpers/billboard.py +194 -144
  22. ledger/helpers/cache.py +105 -0
  23. ledger/helpers/discord.py +2 -4
  24. ledger/helpers/eveonline.py +160 -0
  25. ledger/helpers/ledger_data.py +23 -0
  26. ledger/helpers/ref_type.py +53 -78
  27. ledger/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  28. ledger/locale/cs_CZ/LC_MESSAGES/django.po +349 -193
  29. ledger/locale/de/LC_MESSAGES/django.mo +0 -0
  30. ledger/locale/de/LC_MESSAGES/django.po +528 -379
  31. ledger/locale/django.pot +717 -553
  32. ledger/locale/es/LC_MESSAGES/django.mo +0 -0
  33. ledger/locale/es/LC_MESSAGES/django.po +349 -194
  34. ledger/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  35. ledger/locale/fr_FR/LC_MESSAGES/django.po +349 -193
  36. ledger/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  37. ledger/locale/it_IT/LC_MESSAGES/django.po +349 -193
  38. ledger/locale/ja/LC_MESSAGES/django.mo +0 -0
  39. ledger/locale/ja/LC_MESSAGES/django.po +348 -193
  40. ledger/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  41. ledger/locale/ko_KR/LC_MESSAGES/django.po +349 -193
  42. ledger/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  43. ledger/locale/nl_NL/LC_MESSAGES/django.po +349 -193
  44. ledger/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  45. ledger/locale/pl_PL/LC_MESSAGES/django.po +350 -193
  46. ledger/locale/ru/LC_MESSAGES/django.mo +0 -0
  47. ledger/locale/ru/LC_MESSAGES/django.po +348 -193
  48. ledger/locale/sk/LC_MESSAGES/django.mo +0 -0
  49. ledger/locale/sk/LC_MESSAGES/django.po +348 -193
  50. ledger/locale/uk/LC_MESSAGES/django.mo +0 -0
  51. ledger/locale/uk/LC_MESSAGES/django.po +348 -193
  52. ledger/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  53. ledger/locale/zh_Hans/LC_MESSAGES/django.po +348 -193
  54. ledger/managers/character_audit_manager.py +28 -20
  55. ledger/managers/character_journal_manager.py +187 -358
  56. ledger/managers/character_mining_manager.py +64 -30
  57. ledger/managers/character_planetary_manager.py +185 -138
  58. ledger/managers/corporation_audit_manager.py +36 -27
  59. ledger/managers/corporation_journal_manager.py +94 -57
  60. ledger/managers/general_manager.py +12 -8
  61. ledger/migrations/0018_remove_characterplanet_ledger_char_planet__58a5b6_idx_and_more.py +44 -0
  62. ledger/migrations/0019_rename_characteraudit_characterowner_and_more.py +48 -0
  63. ledger/models/__init__.py +5 -11
  64. ledger/models/characteraudit.py +101 -109
  65. ledger/models/corporationaudit.py +94 -49
  66. ledger/models/general.py +105 -211
  67. ledger/models/helpers/update_manager.py +302 -0
  68. ledger/models/planetary.py +60 -205
  69. ledger/providers.py +101 -0
  70. ledger/static/ledger/css/{ledger.css → aa-ledger.css} +54 -28
  71. ledger/static/ledger/js/aa-ledger.js +124 -0
  72. ledger/static/ledger/js/charts.js +25 -1
  73. ledger/static/ledger/js/view-alliance-ledger.js +383 -0
  74. ledger/static/ledger/js/view-character-ledger.js +388 -0
  75. ledger/static/ledger/js/view-corporation-ledger.js +402 -0
  76. ledger/static/ledger/js/view-planetary.js +492 -0
  77. ledger/static/ledger/libs/amCharts/5.14.4/js/flow.js +2 -0
  78. ledger/static/ledger/libs/amCharts/5.14.4/js/index.js +2 -0
  79. ledger/static/ledger/libs/amCharts/5.14.4/js/percent.js +2 -0
  80. ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Animated.js +2 -0
  81. ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Dark.js +2 -0
  82. ledger/static/ledger/libs/amCharts/5.14.4/js/xy.js +2 -0
  83. ledger/static/ledger/libs/datatables/2.3.5/css/dataTables.bootstrap5.css +610 -0
  84. ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.bootstrap5.js +122 -0
  85. ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.js +14127 -0
  86. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.css +516 -0
  87. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.dataTables.css +529 -0
  88. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.js +73 -0
  89. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.js +3090 -0
  90. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.css +20 -0
  91. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.js +1203 -0
  92. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.js +59 -0
  93. ledger/tasks.py +157 -146
  94. ledger/templates/ledger/base.html +59 -21
  95. ledger/templates/ledger/bundles/aa-ledger-css.html +3 -0
  96. ledger/templates/ledger/bundles/aa-ledger-js.html +3 -0
  97. ledger/templates/ledger/bundles/view-alliance-ledger-js.html +14 -0
  98. ledger/templates/ledger/bundles/view-character-ledger-js.html +15 -0
  99. ledger/templates/ledger/bundles/view-character-planetary-css.html +3 -0
  100. ledger/templates/ledger/bundles/view-character-planetary-js.html +4 -0
  101. ledger/templates/ledger/bundles/view-corporation-ledger-js.html +15 -0
  102. ledger/templates/ledger/partials/modal/confirm.html +0 -1
  103. ledger/templates/ledger/partials/modal/request-accept-delete-alliance.html +38 -0
  104. ledger/templates/ledger/partials/modal/request-accept-delete-character.html +38 -0
  105. ledger/templates/ledger/partials/modal/request-accept-delete-corporation.html +38 -0
  106. ledger/templates/ledger/partials/modal/request-accept-switch-notification.html +38 -0
  107. ledger/templates/ledger/partials/modal/request-view-alliance-details.html +26 -0
  108. ledger/templates/ledger/partials/modal/request-view-character-details.html +26 -0
  109. ledger/templates/ledger/partials/modal/request-view-corporation-details.html +26 -0
  110. ledger/templates/ledger/partials/modal/request-view-extractor.html +32 -0
  111. ledger/templates/ledger/partials/modal/request-view-factory.html +31 -0
  112. ledger/templates/ledger/partials/{menu → navigation}/administration.html +8 -0
  113. ledger/templates/ledger/partials/{menu → navigation}/navigation.html +2 -2
  114. ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance_corporations.html +3 -3
  115. ledger/templates/ledger/partials/view-alliance-administration/dashboard.html +81 -0
  116. ledger/templates/ledger/partials/view-alliance-ledger/alliance-billboard.html +25 -0
  117. ledger/templates/ledger/partials/view-alliance-ledger/alliance-ledger-details.html +21 -0
  118. ledger/templates/ledger/partials/view-alliance-ledger/alliance-table.html +24 -0
  119. ledger/templates/ledger/partials/view-alliance-ledger/information/daily.html +18 -0
  120. ledger/templates/ledger/partials/view-alliance-ledger/information/hourly.html +18 -0
  121. ledger/templates/ledger/partials/view-alliance-ledger/information/summary.html +19 -0
  122. ledger/templates/ledger/partials/{administration → view-character-administration}/character.html +1 -9
  123. ledger/templates/ledger/partials/{administration → view-character-administration}/dashboard.html +0 -34
  124. ledger/templates/ledger/partials/view-character-ledger/character-billboard.html +25 -0
  125. ledger/templates/ledger/partials/view-character-ledger/character-ledger-details.html +21 -0
  126. ledger/templates/ledger/partials/view-character-ledger/character-table.html +25 -0
  127. ledger/templates/ledger/partials/view-character-ledger/information/daily.html +18 -0
  128. ledger/templates/ledger/partials/view-character-ledger/information/hourly.html +18 -0
  129. ledger/templates/ledger/partials/view-character-ledger/information/summary.html +19 -0
  130. ledger/templates/ledger/partials/view-character-planetary/extractor-table.html +24 -0
  131. ledger/templates/ledger/partials/view-character-planetary/factory-table.html +24 -0
  132. ledger/templates/ledger/partials/view-character-planetary/planetary-table.html +22 -0
  133. ledger/templates/ledger/partials/view-character-planetary/storage-table.html +23 -0
  134. ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation.html +5 -13
  135. ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation_characters.html +1 -1
  136. ledger/templates/ledger/partials/view-corporation-administration/dashboard.html +81 -0
  137. ledger/templates/ledger/partials/view-corporation-ledger/corporation-billboard.html +25 -0
  138. ledger/templates/ledger/partials/view-corporation-ledger/corporation-ledger-details.html +21 -0
  139. ledger/templates/ledger/partials/view-corporation-ledger/corporation-table.html +26 -0
  140. ledger/templates/ledger/partials/view-corporation-ledger/information/daily.html +18 -0
  141. ledger/templates/ledger/partials/view-corporation-ledger/information/hourly.html +18 -0
  142. ledger/templates/ledger/partials/view-corporation-ledger/information/summary.html +19 -0
  143. ledger/templates/ledger/view-administration.html +62 -0
  144. ledger/templates/ledger/view-alliance-administration.html +49 -0
  145. ledger/templates/ledger/view-alliance-ledger.html +72 -0
  146. ledger/templates/ledger/view-alliance-overview.html +131 -0
  147. ledger/templates/ledger/view-character-administration.html +42 -0
  148. ledger/templates/ledger/view-character-ledger.html +73 -0
  149. ledger/templates/ledger/view-character-overview.html +135 -0
  150. ledger/templates/ledger/view-character-planetary-overview.html +135 -0
  151. ledger/templates/ledger/view-character-planetary.html +73 -0
  152. ledger/templates/ledger/view-corporation-administration.html +42 -0
  153. ledger/templates/ledger/view-corporation-ledger.html +73 -0
  154. ledger/templates/ledger/view-corporation-overview.html +131 -0
  155. ledger/templatetags/ledger.py +3 -5
  156. ledger/tests/__init__.py +187 -0
  157. ledger/tests/test_admin.py +164 -68
  158. ledger/tests/test_auth_hook.py +31 -13
  159. ledger/tests/test_decarators.py +14 -79
  160. ledger/tests/test_discord_installed.py +0 -1
  161. ledger/tests/test_helpers/test_ledger_data.py +19 -0
  162. ledger/tests/test_managers/test_character_audit_manager.py +111 -69
  163. ledger/tests/test_managers/test_character_journal_manager.py +48 -208
  164. ledger/tests/test_managers/test_character_mining_manager.py +37 -16
  165. ledger/tests/test_managers/test_corporation_division_manager.py +66 -28
  166. ledger/tests/test_managers/test_corporation_journal_manager.py +39 -42
  167. ledger/tests/test_managers/test_general_manager.py +78 -18
  168. ledger/tests/test_managers/test_planetary_manager.py +73 -32
  169. ledger/tests/test_models/test_characteraudit.py +58 -74
  170. ledger/tests/test_models/test_characterminingledger.py +20 -26
  171. ledger/tests/test_models/test_characterwalletjournal.py +10 -33
  172. ledger/tests/test_models/test_corporationaudit.py +41 -35
  173. ledger/tests/test_models/test_corporationwalletjournal.py +35 -32
  174. ledger/tests/test_models/test_general.py +44 -11
  175. ledger/tests/test_models/test_planetary.py +14 -80
  176. ledger/tests/test_templatetags.py +2 -7
  177. ledger/tests/test_views/corporation/test_add_corp.py +16 -35
  178. ledger/tests/test_views/corporation/test_delete_corporation.py +66 -42
  179. ledger/tests/test_views/test_access.py +512 -545
  180. ledger/tests/test_views/test_add_ally.py +57 -46
  181. ledger/tests/test_views/test_add_char.py +21 -33
  182. ledger/tests/test_views/test_delete_character.py +24 -21
  183. ledger/tests/testdata/README_ESI_STUB.md +430 -0
  184. ledger/tests/testdata/esi_stub_openapi.py +511 -0
  185. ledger/tests/testdata/integrations/__init__.py +0 -0
  186. ledger/tests/testdata/{load_eveuniverse.py → integrations/eveuniverse.py} +0 -1
  187. ledger/tests/testdata/integrations/planetary.py +13 -0
  188. ledger/tests/testdata/json/factory.json +281 -0
  189. ledger/tests/testdata/json/inactive.json +281 -0
  190. ledger/tests/testdata/json/pins.json +175 -272
  191. ledger/tests/testdata/json/route.json +95 -528
  192. ledger/tests/testdata/test_esi_stub.py +468 -0
  193. ledger/tests/testdata/utils.py +601 -0
  194. ledger/thirdparty/charlink_hook.py +60 -30
  195. ledger/urls.py +0 -135
  196. ledger/views/alliance/add_ally.py +2 -4
  197. ledger/views/alliance/alliance_ledger.py +64 -147
  198. ledger/views/character/add_char.py +8 -10
  199. ledger/views/character/character_ledger.py +60 -126
  200. ledger/views/character/planetary.py +5 -98
  201. ledger/views/corporation/add_corp.py +10 -12
  202. ledger/views/corporation/corporation_ledger.py +65 -327
  203. ledger/views/index.py +92 -30
  204. aa_ledger-1.0.3.dist-info/RECORD +0 -236
  205. ledger/api/api_helper/planetary_helper.py +0 -107
  206. ledger/api/ledger/__init__.py +0 -7
  207. ledger/api/ledger/planetary.py +0 -231
  208. ledger/helpers/alliance.py +0 -317
  209. ledger/helpers/character.py +0 -251
  210. ledger/helpers/core.py +0 -665
  211. ledger/helpers/corporation.py +0 -427
  212. ledger/helpers/data_exporter.py +0 -452
  213. ledger/static/ledger/js/planetary-confirm.js +0 -66
  214. ledger/static/ledger/js/planetary.js +0 -143
  215. ledger/templates/ledger/admin.html +0 -43
  216. ledger/templates/ledger/allyledger/admin/alliance_administration.html +0 -46
  217. ledger/templates/ledger/allyledger/admin/alliance_overview.html +0 -108
  218. ledger/templates/ledger/allyledger/alliance_ledger.html +0 -86
  219. ledger/templates/ledger/bundles/character-ledger-bundles.html +0 -66
  220. ledger/templates/ledger/bundles/corporation-ledger-bundles.html +0 -75
  221. ledger/templates/ledger/bundles/ledger-bundles.html +0 -23
  222. ledger/templates/ledger/bundles/ledger-css.html +0 -3
  223. ledger/templates/ledger/bundles/planetary-bundles.html +0 -50
  224. ledger/templates/ledger/bundles/table-css.html +0 -3
  225. ledger/templates/ledger/charledger/admin/character_administration.html +0 -39
  226. ledger/templates/ledger/charledger/admin/character_overview.html +0 -106
  227. ledger/templates/ledger/charledger/character_ledger.html +0 -94
  228. ledger/templates/ledger/charledger/planetary/admin/planetary_overview.html +0 -123
  229. ledger/templates/ledger/charledger/planetary/planetary_ledger.html +0 -54
  230. ledger/templates/ledger/corpledger/admin/corporation_administration.html +0 -39
  231. ledger/templates/ledger/corpledger/admin/corporation_overview.html +0 -108
  232. ledger/templates/ledger/corpledger/corporation_ledger.html +0 -129
  233. ledger/templates/ledger/data-export.html +0 -78
  234. ledger/templates/ledger/error.html +0 -31
  235. ledger/templates/ledger/partials/form/error-message.html +0 -1
  236. ledger/templates/ledger/partials/information/daily.html +0 -56
  237. ledger/templates/ledger/partials/information/day.html +0 -48
  238. ledger/templates/ledger/partials/information/error.html +0 -8
  239. ledger/templates/ledger/partials/information/hourly.html +0 -53
  240. ledger/templates/ledger/partials/information/summary.html +0 -88
  241. ledger/templates/ledger/partials/information/view_character_content.html +0 -35
  242. ledger/templates/ledger/partials/modal/switchalarm_confirm.html +0 -39
  243. ledger/templates/ledger/partials/modal/view_extractor.html +0 -48
  244. ledger/templates/ledger/partials/modal/view_factory.html +0 -123
  245. ledger/templates/ledger/partials/table/char-ledger.html +0 -85
  246. ledger/templates/ledger/partials/table/corp-ledger.html +0 -66
  247. ledger/templates/ledger/partials/table/planetary.html +0 -18
  248. ledger/templates/ledger/partials/thirdparty/billboard.html +0 -22
  249. ledger/templates/ledger/partials/view/card.html +0 -160
  250. ledger/templates/ledger/permission.html +0 -2
  251. ledger/tests/test_helpers/test_billboard.py +0 -11
  252. ledger/tests/test_helpers/test_data_exporter.py +0 -207
  253. ledger/tests/test_tasks.py +0 -282
  254. ledger/tests/test_view_helpers/test_core.py +0 -47
  255. ledger/tests/test_views/corporation/test_corporation.py +0 -267
  256. ledger/tests/test_views/test_planetary.py +0 -137
  257. ledger/tests/testdata/esi_stub.py +0 -109
  258. ledger/tests/testdata/esi_stub_migration.py +0 -80
  259. ledger/tests/testdata/generate_characteraudit.py +0 -106
  260. ledger/tests/testdata/generate_corporationaudit.py +0 -74
  261. ledger/tests/testdata/generate_events.py +0 -31
  262. ledger/tests/testdata/generate_miningledger.py +0 -13
  263. ledger/tests/testdata/generate_planets.py +0 -48
  264. ledger/tests/testdata/generate_walletjournal.py +0 -42
  265. ledger/tests/testdata/json/czarno-pins.json +0 -240
  266. ledger/tests/testdata/json/czarno-routes.json +0 -165
  267. ledger/tests/testdata/json/pins2.json +0 -538
  268. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/licenses/LICENSE +0 -0
  269. /ledger/{tests/test_view_helpers → api/helpers}/__init__.py +0 -0
  270. /ledger/templates/ledger/bundles/{ally-administration-bundles.html → view-alliance-administration-js.html} +0 -0
  271. /ledger/templates/ledger/bundles/{char-administration-bundles.html → view-character-administration-js.html} +0 -0
  272. /ledger/templates/ledger/bundles/{corp-administration-bundles.html → view-corporation-administration-js.html} +0 -0
  273. /ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance.html +0 -0
  274. /ledger/tests/testdata/{esi.json → esi_test_data.json} +0 -0
  275. /ledger/tests/testdata/{allianceauth.json → integrations/allianceauth.json} +0 -0
  276. /ledger/tests/testdata/{load_allianceauth.py → integrations/allianceauth.py} +0 -0
  277. /ledger/tests/testdata/{eveentity.json → integrations/eveentity.json} +0 -0
  278. /ledger/tests/testdata/{load_eveentity.py → integrations/eveentity.py} +0 -0
  279. /ledger/tests/testdata/{eveuniverse.json → integrations/eveuniverse.json} +0 -0
  280. /ledger/tests/testdata/{planetary.json → integrations/planetary.json} +0 -0
@@ -0,0 +1,402 @@
1
+ /* global aaLedgerSettings, aaLedgerSettingsOverride, _bootstrapTooltip, _bootstrapPopOver, fetchGet, fetchPost, bootstrap, DataTable, moment, numberFormatter, load_or_create_Chart, _exportTableToCSV */
2
+
3
+ $(document).ready(() => {
4
+ /**
5
+ * Table :: IDs
6
+ */
7
+ const corporationTable = $('#corporation-ledger-table');
8
+ const corporationSummaryTable = $('#corporation-ledger-summary-table');
9
+ const corporationDailyTable = $('#corporation-ledger-daily-table');
10
+ const corporationHourlyTable = $('#corporation-ledger-hourly-table');
11
+
12
+ /**
13
+ * Modals :: IDs
14
+ */
15
+ const modalRequestViewCorporationLedgerDetails = $('#ledger-view-corporation-ledger-details');
16
+
17
+ /**
18
+ * Chart :: IDs
19
+ */
20
+ const chartChord = 'chord-chart';
21
+ const chartXY = 'xy-chart';
22
+
23
+ /**
24
+ * Button :: IDs
25
+ */
26
+ const buttonExportCSV = $('#ledger-export-csv');
27
+
28
+ /**
29
+ * Helper: format currency with classes
30
+ */
31
+ const _formatCurrencySpan = (value, positiveClass = 'text-success') => {
32
+ const cls = value > 0 ? positiveClass : (value < 0 ? 'text-danger' : '');
33
+ console.log(aaLedgerSettings.locale);
34
+ const formatted = numberFormatter({
35
+ value: value,
36
+ language: aaLedgerSettings.locale,
37
+ options: {
38
+ style: 'currency',
39
+ currency: 'ISK',
40
+ maximumFractionDigits: 0
41
+ }
42
+ });
43
+ return `<span class="${cls}">${formatted}</span>`;
44
+ };
45
+
46
+ fetchGet({
47
+ url: aaLedgerSettings.url.CorporationLedger,
48
+ })
49
+ .then((data) => {
50
+ if (data) {
51
+ /**
52
+ * DataTable for Corporation Ledger
53
+ * @type {*|jQuery}
54
+ */
55
+ const corporationDataTable = new DataTable(corporationTable, {
56
+ data: data.entities,
57
+ language: aaLedgerSettings.dataTables.language,
58
+ layout: aaLedgerSettings.dataTables.layout,
59
+ ordering: aaLedgerSettings.dataTables.ordering,
60
+ columnControl: aaLedgerSettings.dataTables.columnControl,
61
+ order: [[5, 'desc']],
62
+ columnDefs: [
63
+ {
64
+ orderable: false,
65
+ targets: 6,
66
+ columnControl: [
67
+ {target: 0, content: []},
68
+ {target: 1, content: []}
69
+ ]
70
+ },
71
+ {
72
+ targets: [1,2,3,4,5],
73
+ type: 'num'
74
+ },
75
+ {
76
+ className: 'border-start',
77
+ targets: 5
78
+ }
79
+ ],
80
+ columns: [
81
+ {
82
+ data: {
83
+ display: (data) => data.entity.icon + ' ' + data.entity.entity_name + ' ' + data.entity.popover,
84
+ sort: (data) => data.entity.entity_name,
85
+ filter: (data) => data.entity.entity_name
86
+ }
87
+ },
88
+ {
89
+ data: {
90
+ display: (data) => _formatCurrencySpan(data.ledger.bounty),
91
+ sort: (data) => data.ledger.bounty,
92
+ filter: (data) => data.ledger.bounty
93
+ }
94
+ },
95
+ {
96
+ data: {
97
+ display: (data) => _formatCurrencySpan(data.ledger.ess),
98
+ sort: (data) => data.ledger.ess,
99
+ filter: (data) => data.ledger.ess
100
+ }
101
+ },
102
+ {
103
+ data: {
104
+ display: (data) => _formatCurrencySpan(data.ledger.miscellaneous),
105
+ sort: (data) => data.ledger.miscellaneous,
106
+ filter: (data) => data.ledger.miscellaneous
107
+ }
108
+ },
109
+ {
110
+ data: {
111
+ display: (data) => _formatCurrencySpan(data.ledger.costs),
112
+ sort: (data) => data.ledger.costs,
113
+ filter: (data) => data.ledger.costs
114
+ }
115
+ },
116
+ {
117
+ data: {
118
+ display: (data) => _formatCurrencySpan(data.ledger.total),
119
+ sort: (data) => data.ledger.total,
120
+ filter: (data) => data.ledger.total
121
+ }
122
+ },
123
+ {
124
+ data: 'actions'
125
+ }
126
+ ],
127
+ initComplete: function() {
128
+ const dt = corporationTable.DataTable();
129
+
130
+ _bootstrapTooltip({selector: '#corporation-ledger-table'});
131
+ _bootstrapPopOver({selector: '#corporation-ledger-table'});
132
+ if (dt.rows().count() !== 0) {
133
+ buttonExportCSV.removeClass('d-none');
134
+ }
135
+ },
136
+ drawCallback: function () {
137
+ _bootstrapTooltip({selector: '#corporation-ledger-table'});
138
+ _bootstrapPopOver({selector: '#corporation-ledger-table'});
139
+ },
140
+ });
141
+
142
+ // Insert totals footer for corporation table
143
+ corporationTable.find('tfoot').html(data.information.footer_html);
144
+
145
+ /**
146
+ * Charts for Corporation Ledger
147
+ */
148
+ load_or_create_Chart(chartXY, data.billboard.xy_chart, 'bar');
149
+ load_or_create_Chart(chartChord, data.billboard.chord_chart, 'chart');
150
+ }
151
+ })
152
+ .catch((error) => {
153
+ console.error('Error fetching Corporation Ledger data:', error);
154
+ });
155
+
156
+ /**
157
+ * Export Corporation Ledger Table to CSV
158
+ */
159
+ buttonExportCSV.on('click', (event) => {
160
+ const dt = corporationTable.DataTable();
161
+ // Exclude Actions column (index 6)
162
+ _exportTableToCSV(dt, 6, 'corporation_ledger.csv');
163
+ });
164
+
165
+ /**
166
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
167
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
168
+ * @type {*|jQuery}
169
+ */
170
+ const summaryDataTable = new DataTable(corporationSummaryTable, {
171
+ data: null, // Loaded via API on modal open
172
+ language: aaLedgerSettings.dataTables.language,
173
+ layout: aaLedgerSettings.dataTables.layout,
174
+ ordering: aaLedgerSettings.dataTables.ordering,
175
+ columnControl: aaLedgerSettings.dataTables.columnControl,
176
+ order: [[0, 'asc']],
177
+
178
+ columnDefs: [
179
+ {
180
+ orderable: false,
181
+ targets: [2],
182
+ columnControl: [
183
+ {target: 0, content: []},
184
+ {target: 1, content: []}
185
+ ]
186
+ },
187
+ {
188
+ targets: [1],
189
+ type: 'num'
190
+ },
191
+ ],
192
+ columns: [
193
+ {
194
+ data: {
195
+ display: (data) => data.name,
196
+ sort: (data) => data.name,
197
+ filter: (data) => data.name
198
+ }
199
+ },
200
+ {
201
+ data: {
202
+ display: (data) => _formatCurrencySpan(data.amount),
203
+ sort: (data) => data.amount,
204
+ filter: (data) => data.amount
205
+ }
206
+ },
207
+ {
208
+ data:
209
+ {
210
+ display: (data) => data.ref_types,
211
+ }
212
+ },
213
+ ],
214
+ initComplete: function () {
215
+ _bootstrapTooltip({selector: '#corporation-ledger-summary-table'});
216
+ _bootstrapPopOver({selector: '#corporation-ledger-summary-table'});
217
+ },
218
+ drawCallback: function () {
219
+ _bootstrapTooltip({selector: '#corporation-ledger-summary-table'});
220
+ _bootstrapPopOver({selector: '#corporation-ledger-summary-table'});
221
+ },
222
+ });
223
+
224
+ /**
225
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
226
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
227
+ * @type {*|jQuery}
228
+ */
229
+ const dailyDataTable = new DataTable(corporationDailyTable, {
230
+ data: null, // Loaded via API on modal open
231
+ language: aaLedgerSettings.dataTables.language,
232
+ layout: aaLedgerSettings.dataTables.layout,
233
+ ordering: aaLedgerSettings.dataTables.ordering,
234
+ columnControl: aaLedgerSettings.dataTables.columnControl,
235
+ order: [[0, 'asc']],
236
+ columnDefs: [
237
+ {
238
+ orderable: false,
239
+ targets: [2],
240
+ columnControl: [
241
+ {target: 0, content: []},
242
+ {target: 1, content: []}
243
+ ]
244
+ },
245
+ {
246
+ targets: [1],
247
+ type: 'num'
248
+ }
249
+ ],
250
+ columns: [
251
+ {
252
+ data: {
253
+ display: (data) => data.name,
254
+ sort: (data) => data.name,
255
+ filter: (data) => data.name
256
+ }
257
+ },
258
+ {
259
+ data: {
260
+ display: (data) => _formatCurrencySpan(data.amount),
261
+ sort: (data) => data.amount,
262
+ filter: (data) => data.amount
263
+ }
264
+ },
265
+ {
266
+ data:
267
+ {
268
+ display: (data) => data.ref_types,
269
+ }
270
+ },
271
+ ],
272
+ initComplete: function () {
273
+ _bootstrapTooltip({selector: '#corporation-ledger-daily-table'});
274
+ _bootstrapPopOver({selector: '#corporation-ledger-daily-table'});
275
+ },
276
+ drawCallback: function () {
277
+ _bootstrapTooltip({selector: '#corporation-ledger-daily-table'});
278
+ _bootstrapPopOver({selector: '#corporation-ledger-daily-table'});
279
+ },
280
+ });
281
+
282
+ /**
283
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
284
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
285
+ * @type {*|jQuery}
286
+ */
287
+ const hourlyDataTable = new DataTable(corporationHourlyTable, {
288
+ data: null, // Loaded via API on modal open
289
+ language: aaLedgerSettings.dataTables.language,
290
+ layout: aaLedgerSettings.dataTables.layout,
291
+ ordering: aaLedgerSettings.dataTables.ordering,
292
+ columnControl: aaLedgerSettings.dataTables.columnControl,
293
+ order: [[0, 'asc']],
294
+ columnDefs: [
295
+ {
296
+ orderable: false,
297
+ targets: [2],
298
+ columnControl: [
299
+ {target: 0, content: []},
300
+ {target: 1, content: []}
301
+ ]
302
+ },
303
+ {
304
+ targets: [1],
305
+ type: 'num'
306
+ }
307
+ ],
308
+ columns: [
309
+ {
310
+ data: {
311
+ display: (data) => data.name,
312
+ sort: (data) => data.name,
313
+ filter: (data) => data.name
314
+ }
315
+ },
316
+ {
317
+ data: {
318
+ display: (data) => _formatCurrencySpan(data.amount),
319
+ sort: (data) => data.amount,
320
+ filter: (data) => data.amount
321
+ }
322
+ },
323
+ {
324
+ data:
325
+ {
326
+ display: (data) => data.ref_types,
327
+ }
328
+ },
329
+ ],
330
+ initComplete: function () {
331
+ _bootstrapTooltip({selector: '#corporation-ledger-hourly-table'});
332
+ _bootstrapPopOver({selector: '#corporation-ledger-hourly-table'});
333
+ },
334
+ drawCallback: function () {
335
+ _bootstrapTooltip({selector: '#corporation-ledger-hourly-table'});
336
+ _bootstrapPopOver({selector: '#corporation-ledger-hourly-table'});
337
+ },
338
+ });
339
+
340
+ /**
341
+ * Load Corporation Ledger Details Data into DataTables in the 'ledger-view-corporation-ledger-details' Modal
342
+ * @param {Object} tableData :: Data Object containing Summary, Daily, and Hourly Data Arrays
343
+ */
344
+
345
+ const _loadCorporationDetails = (tableData) => {
346
+ const dtSummary = corporationSummaryTable.DataTable();
347
+ dtSummary.clear().rows.add(tableData.summary).draw();
348
+ corporationSummaryTable.find('tfoot').html(tableData.total.summary);
349
+
350
+ const dtDaily = corporationDailyTable.DataTable();
351
+ dtDaily.clear().rows.add(tableData.daily).draw();
352
+ corporationDailyTable.find('tfoot').html(tableData.total.daily);
353
+
354
+ const dtHourly = corporationHourlyTable.DataTable();
355
+ dtHourly.clear().rows.add(tableData.hourly).draw();
356
+ corporationHourlyTable.find('tfoot').html(tableData.total.hourly);
357
+ };
358
+
359
+ /**
360
+ * Clear related DataTables on Close for the 'ledger-view-corporation-ledger-details' Modal
361
+ */
362
+ const _clearCorporationDetails = () => {
363
+ const dtSummary = corporationSummaryTable.DataTable();
364
+ dtSummary.clear().draw();
365
+ corporationSummaryTable.find('tfoot').html('');
366
+
367
+ const dtDaily = corporationDailyTable.DataTable();
368
+ dtDaily.clear().draw();
369
+ corporationDailyTable.find('tfoot').html('');
370
+
371
+ const dtHourly = corporationHourlyTable.DataTable();
372
+ dtHourly.clear().draw();
373
+ corporationHourlyTable.find('tfoot').html('');
374
+ };
375
+
376
+ /**
377
+ * Modal :: Corporation Ledger :: Table :: Info Button Click Handler
378
+ * @const {_loadCorporationDetails} :: Load Corporation Ledger Details Data into DataTables in the 'ledger-view-corporation-ledger-details' Modal
379
+ * @const {_clearCorporationDetails} :: Clear related DataTables on Close
380
+ * When opening, fetch data from the API Endpoint defined in the button's data-action attribute
381
+ * and load it into the Corporation Ledger Details DataTables related to the 'ledger-view-corporation-ledger-details' Modal
382
+ */
383
+ modalRequestViewCorporationLedgerDetails.on('show.bs.modal', (event) => {
384
+ const button = $(event.relatedTarget);
385
+ const url = button.data('action');
386
+
387
+ fetchGet({
388
+ url: url,
389
+ })
390
+ .then((data) => {
391
+ if (data) {
392
+ _loadCorporationDetails(data);
393
+ }
394
+ })
395
+ .catch((error) => {
396
+ console.error('Error fetching Payments Details Modal:', error);
397
+ });
398
+ })
399
+ .on('hide.bs.modal', () => {
400
+ _clearCorporationDetails();
401
+ });
402
+ });