django-barobill 0.1.1__py3-none-any.whl → 0.1.3__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.
- django_barobill/__init__.py +0 -2
- django_barobill/migrations/0002_partner_unique_partner_brn_userid.py +17 -0
- django_barobill/migrations/__pycache__/0001_initial.cpython-312.pyc +0 -0
- django_barobill/migrations/__pycache__/__init__.cpython-312.pyc +0 -0
- django_barobill/models.py +40 -6
- {django_barobill-0.1.1.dist-info → django_barobill-0.1.3.dist-info}/METADATA +1 -1
- {django_barobill-0.1.1.dist-info → django_barobill-0.1.3.dist-info}/RECORD +10 -7
- {django_barobill-0.1.1.dist-info → django_barobill-0.1.3.dist-info}/LICENSE +0 -0
- {django_barobill-0.1.1.dist-info → django_barobill-0.1.3.dist-info}/WHEEL +0 -0
- {django_barobill-0.1.1.dist-info → django_barobill-0.1.3.dist-info}/top_level.txt +0 -0
django_barobill/__init__.py
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Generated by Django 5.1.5 on 2025-07-21 04:42
|
2
|
+
|
3
|
+
from django.db import migrations, models
|
4
|
+
|
5
|
+
|
6
|
+
class Migration(migrations.Migration):
|
7
|
+
|
8
|
+
dependencies = [
|
9
|
+
('django_barobill', '0001_initial'),
|
10
|
+
]
|
11
|
+
|
12
|
+
operations = [
|
13
|
+
migrations.AddConstraint(
|
14
|
+
model_name='partner',
|
15
|
+
constraint=models.UniqueConstraint(fields=('brn', 'userid', 'dev'), name='unique_partner_brn_userid'),
|
16
|
+
),
|
17
|
+
]
|
Binary file
|
Binary file
|
django_barobill/models.py
CHANGED
@@ -3,7 +3,7 @@ from typing import Optional
|
|
3
3
|
|
4
4
|
from django.db import models
|
5
5
|
from django.utils import timezone
|
6
|
-
from zeep import Client
|
6
|
+
from zeep import Client, Transport
|
7
7
|
|
8
8
|
from django_barobill.choices import BankAccountCollectCycle, BankAccountBank, BankAccountAccountType, BankAccountTransactionDirection
|
9
9
|
from django_barobill.errors import BarobillAPIError, BarobillError
|
@@ -20,7 +20,8 @@ class BankHelper:
|
|
20
20
|
endpoint = "https://testws.baroservice.com/BANKACCOUNT.asmx?wsdl"
|
21
21
|
else:
|
22
22
|
endpoint = "https://ws.baroservice.com/BANKACCOUNT.asmx?wsdl"
|
23
|
-
|
23
|
+
transport = Transport(timeout=60)
|
24
|
+
return Client(endpoint, transport=transport)
|
24
25
|
|
25
26
|
def get_bank_account_management_url(self):
|
26
27
|
return self.client.service.GetBankAccountManagementURL(
|
@@ -53,8 +54,21 @@ class BankHelper:
|
|
53
54
|
web_pwd: Optional[str] = None,
|
54
55
|
identity_num: Optional[str] = None
|
55
56
|
):
|
56
|
-
|
57
|
-
|
57
|
+
"""
|
58
|
+
신규 계좌를 등록한다.
|
59
|
+
:param alias: 별칭
|
60
|
+
:param collect_cycle: 수거주기
|
61
|
+
:param bank: 은행
|
62
|
+
:param account_type: 법인/개인계좌 여부
|
63
|
+
:param account_no: 계좌번호
|
64
|
+
:param password: 계좌 비밀번호
|
65
|
+
:param usage: (선택)적요
|
66
|
+
:param web_id: (선택)간편조회 아이디
|
67
|
+
:param web_pwd: (선택)간편조회 비밀번호
|
68
|
+
:param identity_num: (선택)간편조회 사업자등록번호 혹은 생년월일
|
69
|
+
:return: 생성된 BankAccount 인스턴스
|
70
|
+
"""
|
71
|
+
result = self.client.service.RegistBankAccount(
|
58
72
|
CERTKEY=self.partner.api_key,
|
59
73
|
CorpNum=self.partner.brn,
|
60
74
|
CollectCycle=collect_cycle,
|
@@ -72,7 +86,7 @@ class BankHelper:
|
|
72
86
|
raise BarobillAPIError(result)
|
73
87
|
account, created = BankAccount.objects.update_or_create(
|
74
88
|
partner=self.partner, account_no=account_no, defaults=dict(
|
75
|
-
collect_cycle=collect_cycle, bank=bank, account_type=account_type, alias=alias, usage=usage,
|
89
|
+
collect_cycle=collect_cycle, bank=bank, account_type=account_type, alias=alias, usage=usage, is_stop=False
|
76
90
|
)
|
77
91
|
)
|
78
92
|
return account
|
@@ -88,11 +102,32 @@ class BankHelper:
|
|
88
102
|
).update(is_stop=True, stop_date=timezone.localdate())
|
89
103
|
|
90
104
|
|
105
|
+
class PartnerManager(models.Manager):
|
106
|
+
def register_partner(self, name, brn, api_key, userid, dev=False):
|
107
|
+
"""
|
108
|
+
신규 파트너를 등록한다.
|
109
|
+
:param name: 파트너사명
|
110
|
+
:param brn: 바로빌에 등록한 파트너 사업자등록번호
|
111
|
+
:param api_key: 바로빌에서 발급한 파트너 api_key
|
112
|
+
:param userid: 바로빌에서 발급한 파트너 Id
|
113
|
+
:param dev: 개발모드 여부
|
114
|
+
:return: Partner
|
115
|
+
"""
|
116
|
+
partner, created = self.get_or_create(
|
117
|
+
brn=brn, userid=userid, defaults=dict(name=name, api_key=api_key, dev=dev)
|
118
|
+
)
|
119
|
+
return partner
|
120
|
+
|
121
|
+
|
91
122
|
class Partner(models.Model):
|
92
123
|
class Meta:
|
93
124
|
verbose_name = '파트너'
|
94
125
|
verbose_name_plural = verbose_name
|
126
|
+
constraints = [
|
127
|
+
models.UniqueConstraint(fields=['brn', 'userid', 'dev'], name='unique_partner_brn_userid'),
|
128
|
+
]
|
95
129
|
|
130
|
+
objects = PartnerManager()
|
96
131
|
name = models.CharField(max_length=255, unique=True, verbose_name='파트너사명')
|
97
132
|
brn = models.CharField(max_length=10, unique=True, verbose_name='사업자등록번호')
|
98
133
|
api_key = models.CharField(max_length=36, verbose_name='인증키')
|
@@ -329,7 +364,6 @@ class BankAccount(models.Model):
|
|
329
364
|
raise BarobillAPIError(result.CurrentPage)
|
330
365
|
return result
|
331
366
|
|
332
|
-
|
333
367
|
def get_monthly_log(
|
334
368
|
self,
|
335
369
|
base_month: str,
|
@@ -1,17 +1,20 @@
|
|
1
|
-
django_barobill/__init__.py,sha256=
|
1
|
+
django_barobill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
django_barobill/admin.py,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63
|
3
3
|
django_barobill/apps.py,sha256=VUIGjvRJJKmOM0WaBbqoU5QULCvC0YGKhKIMFYGpXxI,161
|
4
4
|
django_barobill/choices.py,sha256=qkh5baFFCycTOKcTiU2DSu2iDJTiIQyhFgQ8uNSWyDo,1236
|
5
5
|
django_barobill/errors.py,sha256=lKEEEKzAdwAueQOLhoSLe-B9VLT-S7hqUCrkfpkRXp8,3555
|
6
|
-
django_barobill/models.py,sha256=
|
6
|
+
django_barobill/models.py,sha256=tn7U_RdIq3O0g3QPTisK8wcuWxC2trjBIhKRnXE9GP0,17601
|
7
7
|
django_barobill/parsers.py,sha256=boBB9ePTRJrOmoEql23VQk_TDcaWqbEwJhxtW9Gx2Yc,1027
|
8
8
|
django_barobill/tests.py,sha256=iG0hzKegA86ls4QxLY_p6sgZ0fkb_CD0HyzY-aO28ic,1661
|
9
9
|
django_barobill/utils.py,sha256=eKSI-QgM8WTHA1vUukbZnVKEhiMcX7wzxLPcJ_6VKVE,200
|
10
10
|
django_barobill/views.py,sha256=xc1IQHrsij7j33TUbo-_oewy3vs03pw_etpBWaMYJl0,63
|
11
11
|
django_barobill/migrations/0001_initial.py,sha256=Uh8Nx0mOJQjXnPhzXmT7mrQx5zTbE8bNQSJJXTqHNpU,5176
|
12
|
+
django_barobill/migrations/0002_partner_unique_partner_brn_userid.py,sha256=zZBfyODWR836qdCo4Bzt8j0EdVW2gwAlsrVTVOr7A10,424
|
12
13
|
django_barobill/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
|
-
django_barobill-
|
14
|
-
django_barobill-
|
15
|
-
django_barobill-0.1.
|
16
|
-
django_barobill-0.1.
|
17
|
-
django_barobill-0.1.
|
14
|
+
django_barobill/migrations/__pycache__/0001_initial.cpython-312.pyc,sha256=e9D59BlhPF0qvZ_QM6iSS53LkFe0LpaJ8t0RlzKqzzw,5537
|
15
|
+
django_barobill/migrations/__pycache__/__init__.cpython-312.pyc,sha256=vKIJDzcsTZu8PdXPuC052vkL9-T0Fi69yIxRo4BI57s,181
|
16
|
+
django_barobill-0.1.3.dist-info/LICENSE,sha256=o5IEBFE4Yr1q_q2_HvPqL2YXAfakEBi0X2WS9CDJlyY,1063
|
17
|
+
django_barobill-0.1.3.dist-info/METADATA,sha256=r2-NC15eBta8Bzz7Hiy0qskGc0DtnWm14rushWPaW2E,3389
|
18
|
+
django_barobill-0.1.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
19
|
+
django_barobill-0.1.3.dist-info/top_level.txt,sha256=RmcbZUqTKXVI1jksKTaeennFkcSemFHwgxSMPqE7YgU,16
|
20
|
+
django_barobill-0.1.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|