wbcommission 1.54.8__tar.gz → 1.59.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.
Files changed (82) hide show
  1. {wbcommission-1.54.8 → wbcommission-1.59.0}/PKG-INFO +4 -1
  2. {wbcommission-1.54.8 → wbcommission-1.59.0}/pyproject.toml +6 -0
  3. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/filters/rebate.py +0 -2
  4. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/models/account_service.py +3 -1
  5. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/models/commission.py +3 -0
  6. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/permissions.py +2 -2
  7. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/reports/customer_report.py +1 -1
  8. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/models/test_commission.py +4 -4
  9. {wbcommission-1.54.8 → wbcommission-1.59.0}/.gitignore +0 -0
  10. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/__init__.py +0 -0
  11. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/admin/__init__.py +0 -0
  12. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/admin/accounts.py +0 -0
  13. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/admin/commission.py +0 -0
  14. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/admin/rebate.py +0 -0
  15. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/analytics/__init__.py +0 -0
  16. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/analytics/marginality.py +0 -0
  17. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/apps.py +0 -0
  18. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/dynamic_preferences_registry.py +0 -0
  19. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/factories/__init__.py +0 -0
  20. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/factories/commission.py +0 -0
  21. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/factories/rebate.py +0 -0
  22. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/filters/__init__.py +0 -0
  23. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/filters/signals.py +0 -0
  24. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/generators/__init__.py +0 -0
  25. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/generators/rebate_generator.py +0 -0
  26. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/locale/de/LC_MESSAGES/django.mo +0 -0
  27. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/locale/de/LC_MESSAGES/django.po +0 -0
  28. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/locale/en/LC_MESSAGES/django.mo +0 -0
  29. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/locale/en/LC_MESSAGES/django.po +0 -0
  30. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/locale/fr/LC_MESSAGES/django.mo +0 -0
  31. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/locale/fr/LC_MESSAGES/django.po +0 -0
  32. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0001_initial.py +0 -0
  33. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0002_commissionrule_remove_accountcustomer_account_and_more.py +0 -0
  34. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0003_alter_commission_account.py +0 -0
  35. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0004_rebate_audit_log.py +0 -0
  36. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0005_alter_rebate_audit_log.py +0 -0
  37. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0006_commissionrule_consider_zero_percent_for_exclusion.py +0 -0
  38. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0007_remove_commission_unique_crm_recipient_account_and_more.py +0 -0
  39. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/0008_alter_commission_options_alter_commission_order.py +0 -0
  40. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/migrations/__init__.py +0 -0
  41. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/models/__init__.py +0 -0
  42. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/models/rebate.py +0 -0
  43. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/models/signals.py +0 -0
  44. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/reports/__init__.py +0 -0
  45. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/reports/audit_report.py +0 -0
  46. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/reports/utils.py +0 -0
  47. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/serializers/__init__.py +0 -0
  48. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/serializers/commissions.py +0 -0
  49. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/serializers/rebate.py +0 -0
  50. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/serializers/signals.py +0 -0
  51. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/__init__.py +0 -0
  52. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/analytics/__init__.py +0 -0
  53. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/analytics/test_marginality.py +0 -0
  54. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/conftest.py +0 -0
  55. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/models/__init__.py +0 -0
  56. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/models/mixins.py +0 -0
  57. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/models/test_account_service.py +0 -0
  58. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/models/test_rebate.py +0 -0
  59. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/signals.py +0 -0
  60. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/test_permissions.py +0 -0
  61. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/viewsets/__init__.py +0 -0
  62. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/tests/viewsets/test_rebate.py +0 -0
  63. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/urls.py +0 -0
  64. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/__init__.py +0 -0
  65. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/buttons/__init__.py +0 -0
  66. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/buttons/rebate.py +0 -0
  67. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/buttons/signals.py +0 -0
  68. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/commissions.py +0 -0
  69. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/display/__init__.py +0 -0
  70. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/display/commissions.py +0 -0
  71. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/display/rebate.py +0 -0
  72. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/endpoints/__init__.py +0 -0
  73. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/endpoints/commissions.py +0 -0
  74. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/endpoints/rebate.py +0 -0
  75. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/menu/__init__.py +0 -0
  76. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/menu/commissions.py +0 -0
  77. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/menu/rebate.py +0 -0
  78. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/mixins.py +0 -0
  79. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/rebate.py +0 -0
  80. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/titles/__init__.py +0 -0
  81. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/titles/commissions.py +0 -0
  82. {wbcommission-1.54.8 → wbcommission-1.59.0}/wbcommission/viewsets/titles/rebate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbcommission
3
- Version: 1.54.8
3
+ Version: 1.59.0
4
4
  Summary: A workbench module for managing human resources.
5
5
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
6
6
  Requires-Dist: reportlab==3.*
@@ -8,4 +8,7 @@ Requires-Dist: wbcompliance
8
8
  Requires-Dist: wbcore
9
9
  Requires-Dist: wbcrm
10
10
  Requires-Dist: wbfdm
11
+ Requires-Dist: wbmailing
11
12
  Requires-Dist: wbnews
13
+ Requires-Dist: wbportfolio
14
+ Requires-Dist: wbreport
@@ -10,6 +10,9 @@ dependencies = [
10
10
  "wbnews",
11
11
  "wbfdm",
12
12
  "wbcompliance",
13
+ "wbportfolio",
14
+ "wbreport",
15
+ "wbmailing",
13
16
  "reportlab == 3.*",
14
17
  ]
15
18
 
@@ -19,6 +22,9 @@ wbcrm = { workspace = true }
19
22
  wbnews = { workspace = true }
20
23
  wbfdm = { workspace = true }
21
24
  wbcompliance = { workspace = true }
25
+ wbportfolio = { workspace = true }
26
+ wbmailing = { workspace = true }
27
+ wbreport = { workspace = true }
22
28
 
23
29
  [tool.uv]
24
30
  package = true
@@ -13,7 +13,6 @@ from wbcommission.models.rebate import RebateGroupbyChoice
13
13
 
14
14
  class RebateDateFilter(CommissionBaseFilterSet):
15
15
  date = wb_filters.DateRangeFilter(
16
- method=wb_filters.DateRangeFilter.base_date_range_filter_method,
17
16
  label="Date Range",
18
17
  required=True,
19
18
  clearable=False,
@@ -98,7 +97,6 @@ class CustomerRebateGroupByFilter(RebateGroupByFilter):
98
97
  class RebateMarginalityFilter(PandasFilterSetMixin, wb_filters.FilterSet):
99
98
  date = wb_filters.DateRangeFilter(
100
99
  label="Date Range",
101
- method=wb_filters.DateRangeFilter.base_date_range_filter_method,
102
100
  required=True,
103
101
  clearable=False,
104
102
  initial=current_quarter_date_range,
@@ -182,7 +182,9 @@ class AccountRebateManager:
182
182
  and date, a KeyError will be caught, and the function will return Decimal(0).
183
183
  """
184
184
  with suppress(InstrumentPrice.DoesNotExist, KeyError):
185
- product_shares = max(product.prices.get(date=compute_date, calculated=True).outstanding_shares, Decimal(0))
185
+ product_shares = max(
186
+ product.prices.get(date=compute_date, calculated=True).outstanding_shares or Decimal(0), Decimal(0)
187
+ )
186
188
  account_shares = max(
187
189
  Decimal(self.df_shares.loc[(terminal_account.id, product.id, compute_date)]), Decimal(0)
188
190
  )
@@ -551,6 +551,9 @@ class CommissionExclusionRule(models.Model):
551
551
  ),
552
552
  ]
553
553
 
554
+ def __str__(self) -> str:
555
+ return super().__str__()
556
+
554
557
 
555
558
  class CommissionRule(ComplexToStringMixin, WBModel):
556
559
  id: Optional[int]
@@ -1,6 +1,6 @@
1
- from rest_framework.permissions import BasePermission
1
+ from rest_framework.permissions import IsAuthenticated
2
2
 
3
3
 
4
- class IsCommissionAdmin(BasePermission):
4
+ class IsCommissionAdmin(IsAuthenticated):
5
5
  def has_permission(self, request, view):
6
6
  return request.user.has_perm("wbcommission.administrate_commission")
@@ -218,7 +218,7 @@ def create_report(user, customer, start_date, end_date):
218
218
  worksheet_trade_performance.write_string(bank_cell, claim.bank, base_format)
219
219
  worksheet_trade_performance.write_string(root_account_cell, claim.account.get_root().title, base_format)
220
220
  worksheet_trade_performance.write_string(account_cell, str(claim.account), base_format)
221
- worksheet_trade_performance.write_string(product_cell, claim.product.title, base_format)
221
+ worksheet_trade_performance.write_string(product_cell, claim.product.name, base_format)
222
222
 
223
223
  worksheet_trade_performance.write_number(
224
224
  price_trade_cell, claim.price_date or claim.product.share_price, decimal_format
@@ -478,10 +478,10 @@ class TestCommissionType:
478
478
  res = dict()
479
479
  for commission_type in CommissionType.objects.all():
480
480
  for (
481
- terminal_account,
482
- compute_date,
483
- commission,
484
- product,
481
+ _,
482
+ _,
483
+ _,
484
+ _,
485
485
  recipient,
486
486
  recipient_fees,
487
487
  _,
File without changes