wbcommission 1.44.5__tar.gz → 1.45.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 wbcommission might be problematic. Click here for more details.

Files changed (76) hide show
  1. {wbcommission-1.44.5 → wbcommission-1.45.0}/PKG-INFO +1 -1
  2. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/admin/accounts.py +2 -1
  3. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/admin/commission.py +1 -0
  4. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/analytics/marginality.py +2 -1
  5. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/factories/commission.py +2 -1
  6. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/factories/rebate.py +1 -0
  7. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/filters/rebate.py +3 -2
  8. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/generators/rebate_generator.py +2 -1
  9. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/reports/audit_report.py +2 -1
  10. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/reports/customer_report.py +2 -1
  11. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/serializers/commissions.py +2 -1
  12. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/serializers/rebate.py +2 -1
  13. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/analytics/test_marginality.py +3 -2
  14. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/models/mixins.py +2 -1
  15. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/models/test_account_service.py +2 -1
  16. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/models/test_commission.py +2 -1
  17. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/models/test_rebate.py +1 -0
  18. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/test_permissions.py +2 -1
  19. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/viewsets/test_rebate.py +5 -4
  20. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/urls.py +2 -1
  21. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/commissions.py +2 -1
  22. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/mixins.py +1 -0
  23. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/rebate.py +16 -16
  24. {wbcommission-1.44.5 → wbcommission-1.45.0}/.gitignore +0 -0
  25. {wbcommission-1.44.5 → wbcommission-1.45.0}/pyproject.toml +0 -0
  26. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/__init__.py +0 -0
  27. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/admin/__init__.py +0 -0
  28. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/admin/rebate.py +0 -0
  29. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/analytics/__init__.py +0 -0
  30. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/apps.py +0 -0
  31. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/dynamic_preferences_registry.py +0 -0
  32. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/factories/__init__.py +0 -0
  33. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/filters/__init__.py +0 -0
  34. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/filters/signals.py +0 -0
  35. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/generators/__init__.py +0 -0
  36. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0001_initial.py +0 -0
  37. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0002_commissionrule_remove_accountcustomer_account_and_more.py +0 -0
  38. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0003_alter_commission_account.py +0 -0
  39. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0004_rebate_audit_log.py +0 -0
  40. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0005_alter_rebate_audit_log.py +0 -0
  41. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0006_commissionrule_consider_zero_percent_for_exclusion.py +0 -0
  42. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0007_remove_commission_unique_crm_recipient_account_and_more.py +0 -0
  43. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/0008_alter_commission_options_alter_commission_order.py +0 -0
  44. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/migrations/__init__.py +0 -0
  45. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/models/__init__.py +0 -0
  46. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/models/account_service.py +0 -0
  47. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/models/commission.py +0 -0
  48. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/models/rebate.py +0 -0
  49. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/models/signals.py +0 -0
  50. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/permissions.py +0 -0
  51. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/reports/__init__.py +0 -0
  52. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/reports/utils.py +0 -0
  53. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/serializers/__init__.py +0 -0
  54. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/serializers/signals.py +0 -0
  55. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/__init__.py +0 -0
  56. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/analytics/__init__.py +0 -0
  57. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/conftest.py +0 -0
  58. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/models/__init__.py +0 -0
  59. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/signals.py +0 -0
  60. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/tests/viewsets/__init__.py +0 -0
  61. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/__init__.py +0 -0
  62. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/buttons/__init__.py +0 -0
  63. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/buttons/rebate.py +0 -0
  64. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/buttons/signals.py +0 -0
  65. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/display/__init__.py +0 -0
  66. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/display/commissions.py +0 -0
  67. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/display/rebate.py +0 -0
  68. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/endpoints/__init__.py +0 -0
  69. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/endpoints/commissions.py +0 -0
  70. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/endpoints/rebate.py +0 -0
  71. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/menu/__init__.py +0 -0
  72. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/menu/commissions.py +0 -0
  73. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/menu/rebate.py +0 -0
  74. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/titles/__init__.py +0 -0
  75. {wbcommission-1.44.5 → wbcommission-1.45.0}/wbcommission/viewsets/titles/commissions.py +0 -0
  76. {wbcommission-1.44.5 → wbcommission-1.45.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.44.5
3
+ Version: 1.45.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.*
@@ -1,8 +1,9 @@
1
1
  from django.contrib import admin
2
- from wbcommission.models.rebate import manage_rebate_as_task
3
2
  from wbcrm.admin.accounts import AccountModelAdmin as BaseAccountModelAdmin
4
3
  from wbcrm.models.accounts import Account
5
4
 
5
+ from wbcommission.models.rebate import manage_rebate_as_task
6
+
6
7
  from .commission import CommissionTabularInline
7
8
 
8
9
  admin.site.unregister(Account)
@@ -1,4 +1,5 @@
1
1
  from django.contrib import admin
2
+
2
3
  from wbcommission.models import (
3
4
  Commission,
4
5
  CommissionExclusionRule,
@@ -5,11 +5,12 @@ import numpy as np
5
5
  import pandas as pd
6
6
  from django.db.models import Case, OuterRef, Subquery, Value, When
7
7
  from django.db.models.functions import Coalesce
8
- from wbcommission.models import CommissionType, Rebate
9
8
  from wbcore.contrib.currency.models import CurrencyFXRates
10
9
  from wbfdm.models import InstrumentPrice
11
10
  from wbportfolio.models import Fees
12
11
 
12
+ from wbcommission.models import CommissionType, Rebate
13
+
13
14
 
14
15
  class MarginalityCalculator:
15
16
  FEE_MAP = {
@@ -2,13 +2,14 @@ from datetime import date
2
2
 
3
3
  import factory
4
4
  from psycopg.types.range import DateRange
5
+ from wbportfolio.models.roles import PortfolioRole
6
+
5
7
  from wbcommission.models.commission import (
6
8
  Commission,
7
9
  CommissionExclusionRule,
8
10
  CommissionRole,
9
11
  CommissionType,
10
12
  )
11
- from wbportfolio.models.roles import PortfolioRole
12
13
 
13
14
 
14
15
  class CommissionTypeFactory(factory.django.DjangoModelFactory):
@@ -1,4 +1,5 @@
1
1
  import factory
2
+
2
3
  from wbcommission.models import Rebate
3
4
 
4
5
 
@@ -1,5 +1,3 @@
1
- from wbcommission.models import Rebate
2
- from wbcommission.models.rebate import RebateGroupbyChoice
3
1
  from wbcore import filters as wb_filters
4
2
  from wbcore.contrib.directory.models import Company
5
3
  from wbcore.filters.defaults import current_quarter_date_range
@@ -9,6 +7,9 @@ from wbfdm.preferences import get_default_classification_group
9
7
  from wbportfolio.filters.transactions.claim import CommissionBaseFilterSet
10
8
  from wbportfolio.models import Product
11
9
 
10
+ from wbcommission.models import Rebate
11
+ from wbcommission.models.rebate import RebateGroupbyChoice
12
+
12
13
 
13
14
  class RebateDateFilter(CommissionBaseFilterSet):
14
15
  date = wb_filters.DateRangeFilter(
@@ -7,10 +7,11 @@ from typing import Iterable
7
7
  from django.db.models import QuerySet, Sum
8
8
  from wbaccounting.generators.base import AbstractBookingEntryGenerator
9
9
  from wbaccounting.models import BookingEntry
10
- from wbcommission.models import Rebate
11
10
  from wbcore.contrib.directory.models import Entry
12
11
  from wbportfolio.models import Product
13
12
 
13
+ from wbcommission.models import Rebate
14
+
14
15
 
15
16
  class RebateGenerator(AbstractBookingEntryGenerator):
16
17
  TITLE = "Rebate Generation"
@@ -3,12 +3,13 @@ from io import BytesIO
3
3
 
4
4
  import pandas as pd
5
5
  from celery import shared_task
6
- from wbcommission.models import Commission, CommissionType, Rebate
7
6
  from wbcore.contrib.authentication.models import User
8
7
  from wbcore.contrib.directory.models import Entry
9
8
  from wbcrm.models.accounts import Account
10
9
  from wbportfolio.models.products import Product
11
10
 
11
+ from wbcommission.models import Commission, CommissionType, Rebate
12
+
12
13
  from .utils import create_report_and_send
13
14
 
14
15
 
@@ -5,7 +5,6 @@ from io import BytesIO
5
5
  import xlsxwriter
6
6
  from celery import shared_task
7
7
  from django.db.models import Case, F, Sum, When
8
- from wbcommission.models import CommissionType, Rebate
9
8
  from wbcore.contrib.authentication.models import User
10
9
  from wbcore.contrib.currency.models import CurrencyFXRates
11
10
  from wbcore.contrib.directory.models import Entry
@@ -19,6 +18,8 @@ from wbfdm.models import InstrumentPrice
19
18
  from wbportfolio.models.transactions.claim import Claim
20
19
  from xlsxwriter.utility import xl_rowcol_to_cell
21
20
 
21
+ from wbcommission.models import CommissionType, Rebate
22
+
22
23
  from .utils import create_report_and_send
23
24
 
24
25
  AccountCustomer = None
@@ -1,6 +1,7 @@
1
- from wbcommission.models import CommissionType
2
1
  from wbcore import serializers as wb_serializers
3
2
 
3
+ from wbcommission.models import CommissionType
4
+
4
5
 
5
6
  class CommissionTypeRepresentationSerializer(wb_serializers.RepresentationSerializer):
6
7
  _detail = wb_serializers.HyperlinkField(reverse_name="wbcommission:commissiontype-detail")
@@ -1,6 +1,7 @@
1
- from wbcommission.models import Rebate
2
1
  from wbcore import serializers as wb_serializers
3
2
 
3
+ from wbcommission.models import Rebate
4
+
4
5
 
5
6
  class RebateModelSerializer(wb_serializers.ModelSerializer):
6
7
  id = wb_serializers.PrimaryKeyField()
@@ -3,11 +3,12 @@ from faker import Faker
3
3
  from pandas.tseries.offsets import BDay
4
4
  from rest_framework.reverse import reverse
5
5
  from rest_framework.test import APIClient, APIRequestFactory
6
+ from wbportfolio.factories import FeesFactory, InstrumentPriceFactory, ProductFactory
7
+ from wbportfolio.models import Product
8
+
6
9
  from wbcommission.analytics.marginality import MarginalityCalculator
7
10
  from wbcommission.factories import CommissionTypeFactory, RebateFactory
8
11
  from wbcommission.viewsets.rebate import RebateProductMarginalityViewSet
9
- from wbportfolio.factories import FeesFactory, InstrumentPriceFactory, ProductFactory
10
- from wbportfolio.models import Product
11
12
 
12
13
  fake = Faker()
13
14
 
@@ -1,7 +1,8 @@
1
1
  import pytest
2
+ from wbcrm.factories import AccountFactory
3
+
2
4
  from wbcommission.factories import CommissionTypeFactory
3
5
  from wbcommission.models.account_service import AccountRebateManager
4
- from wbcrm.factories import AccountFactory
5
6
 
6
7
 
7
8
  class AccountManagerFixture:
@@ -4,9 +4,10 @@ from decimal import Decimal
4
4
  import pytest
5
5
  from faker import Faker
6
6
  from pandas.tseries.offsets import BDay
7
- from wbcommission.models.account_service import AccountRebateManager
8
7
  from wbportfolio.models import Claim
9
8
 
9
+ from wbcommission.models.account_service import AccountRebateManager
10
+
10
11
  from .mixins import AccountManagerFixture
11
12
 
12
13
  fake = Faker()
@@ -7,10 +7,11 @@ from django.contrib.auth.models import Permission
7
7
  from faker import Faker
8
8
  from pandas.tseries.offsets import BDay
9
9
  from psycopg.types.range import DateRange, NumericRange
10
- from wbcommission.models import Commission, CommissionRule, CommissionType
11
10
  from wbportfolio.models import Claim, Trade
12
11
  from wbportfolio.models.roles import PortfolioRole
13
12
 
13
+ from wbcommission.models import Commission, CommissionRule, CommissionType
14
+
14
15
  fake = Faker()
15
16
 
16
17
 
@@ -4,6 +4,7 @@ import pytest
4
4
  from django.contrib.auth import get_user_model
5
5
  from django.contrib.auth.models import Permission
6
6
  from faker import Faker
7
+
7
8
  from wbcommission.models import CommissionType, Rebate
8
9
 
9
10
  from .mixins import AccountManagerFixture
@@ -3,11 +3,12 @@ from django.contrib.auth.models import Permission
3
3
  from faker import Faker
4
4
  from rest_framework.reverse import reverse
5
5
  from rest_framework.test import APIClient
6
- from wbcommission.permissions import IsCommissionAdmin
7
6
  from wbcore.contrib.authentication.factories import UserFactory
8
7
  from wbcore.contrib.authentication.models import User
9
8
  from wbcore.tests.test_permissions.test_backend import create_internal_user
10
9
 
10
+ from wbcommission.permissions import IsCommissionAdmin
11
+
11
12
  fake = Faker()
12
13
 
13
14
 
@@ -2,6 +2,11 @@ import pytest
2
2
  from django.db.models import Sum
3
3
  from faker import Faker
4
4
  from rest_framework.test import APIRequestFactory
5
+ from wbcore.contrib.authentication.factories.users import UserFactory
6
+ from wbcore.contrib.directory.models import Entry
7
+ from wbcore.utils.strings import format_number
8
+ from wbcrm.factories.accounts import AccountFactory, AccountRoleFactory
9
+
5
10
  from wbcommission.factories import (
6
11
  AccountTypeRoleCommissionFactory,
7
12
  CommissionFactory,
@@ -9,10 +14,6 @@ from wbcommission.factories import (
9
14
  )
10
15
  from wbcommission.models.rebate import Rebate
11
16
  from wbcommission.viewsets.rebate import RebateModelViewSet, RebatePandasView
12
- from wbcore.contrib.authentication.factories.users import UserFactory
13
- from wbcore.contrib.directory.models import Entry
14
- from wbcore.utils.strings import format_number
15
- from wbcrm.factories.accounts import AccountFactory, AccountRoleFactory
16
17
 
17
18
  fake = Faker()
18
19
 
@@ -1,8 +1,9 @@
1
1
  from django.apps import apps
2
2
  from django.urls import include, path
3
- from wbcommission import viewsets
4
3
  from wbcore.routers import WBCoreRouter
5
4
 
5
+ from wbcommission import viewsets
6
+
6
7
  router = WBCoreRouter()
7
8
 
8
9
  router.register(
@@ -1,6 +1,7 @@
1
- from wbcommission.models import CommissionType
2
1
  from wbcore import viewsets
3
2
 
3
+ from wbcommission.models import CommissionType
4
+
4
5
  from ..serializers import (
5
6
  CommissionTypeModelSerializer,
6
7
  CommissionTypeRepresentationSerializer,
@@ -2,6 +2,7 @@ from datetime import date, datetime
2
2
 
3
3
  from django.http import HttpRequest
4
4
  from django.utils.functional import cached_property
5
+
5
6
  from wbcommission.models import Commission, Rebate
6
7
 
7
8
 
@@ -12,6 +12,21 @@ from django.utils.functional import cached_property
12
12
  from rest_framework import status
13
13
  from rest_framework.decorators import action
14
14
  from rest_framework.response import Response
15
+ from wbcore import serializers as wb_serializers
16
+ from wbcore import viewsets
17
+ from wbcore.contrib.currency.models import CurrencyFXRates
18
+ from wbcore.contrib.directory.models import Entry
19
+ from wbcore.contrib.io.viewsets import ExportPandasAPIViewSet
20
+ from wbcore.pandas import fields as pf
21
+ from wbcore.permissions.permissions import IsInternalUser
22
+ from wbcore.serializers import decorator
23
+ from wbcore.utils.date import get_date_interval_from_request
24
+ from wbcore.utils.strings import format_number
25
+ from wbcrm.models.accounts import Account
26
+ from wbfdm.models import Classification, ClassificationGroup, InstrumentPrice
27
+ from wbfdm.preferences import get_default_classification_group
28
+ from wbportfolio.models import Product
29
+
15
30
  from wbcommission.filters import (
16
31
  CustomerRebateGroupByFilter,
17
32
  RebateDateFilter,
@@ -36,20 +51,6 @@ from wbcommission.viewsets.titles.rebate import (
36
51
  RebatePandasViewTitleConfig,
37
52
  RebateProductMarginalityTitleConfig,
38
53
  )
39
- from wbcore import serializers as wb_serializers
40
- from wbcore import viewsets
41
- from wbcore.contrib.currency.models import CurrencyFXRates
42
- from wbcore.contrib.directory.models import Entry
43
- from wbcore.contrib.io.viewsets import ExportPandasAPIViewSet
44
- from wbcore.pandas import fields as pf
45
- from wbcore.permissions.permissions import IsInternalUser
46
- from wbcore.serializers import decorator
47
- from wbcore.utils.date import get_date_interval_from_request
48
- from wbcore.utils.strings import format_number
49
- from wbcrm.models.accounts import Account
50
- from wbfdm.models import Classification, ClassificationGroup, InstrumentPrice
51
- from wbfdm.preferences import get_default_classification_group
52
- from wbportfolio.models import Product
53
54
 
54
55
  from ..analytics.marginality import MarginalityCalculator
55
56
  from ..permissions import IsCommissionAdmin
@@ -233,8 +234,7 @@ class RebatePandasView(RebatePermissionMixin, ExportPandasAPIViewSet):
233
234
  return {}
234
235
  return {
235
236
  **{
236
- "rebate_"
237
- + commission_type.key: {
237
+ "rebate_" + commission_type.key: {
238
238
  "Σ": format_number(df["rebate_" + commission_type.key].sum()),
239
239
  }
240
240
  for commission_type in CommissionType.objects.all()
File without changes