Skip to content

Commit 3c92446

Browse files
committed
fixed error for tax requests
1 parent feb2d4a commit 3c92446

File tree

7 files changed

+74
-29
lines changed

7 files changed

+74
-29
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 3.2.6 on 2021-08-12 16:23
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('tax', '0001_initial'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='historicaltax',
15+
name='deadline',
16+
field=models.DateField(blank=True, null=True),
17+
),
18+
migrations.AlterField(
19+
model_name='tax',
20+
name='deadline',
21+
field=models.DateField(blank=True, null=True),
22+
),
23+
]

tax/models.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class Tax(models.Model):
4949
created_at = models.DateTimeField(auto_now_add=True)
5050
updated_at = models.DateTimeField(auto_now=True)
5151

52-
deadline = models.DateTimeField(blank=True, null=True)
52+
deadline = models.DateField(blank=True, null=True)
5353

5454
fines = models.PositiveIntegerField(
5555
default=0,
@@ -105,14 +105,14 @@ def tax_calculate(self):
105105

106106
def payment(self):
107107
self.payment_date = timezone.now()
108-
self.payment = True
108+
self.payment_status = True
109109
self.status = 'PAID'
110110
self.save()
111111

112112
def save(self, *args, **kwargs):
113113
self.tax_calculate()
114-
if self.deadline is not None and self.tax_amount >= 0 and self.payment_date is not None:
115-
dt = self.deadline - timezone.now()
114+
if self.deadline is not None and self.tax_amount >= 0 and self.payment_date is None:
115+
dt = self.deadline - timezone.now().date()
116116
if dt.days >= 0:
117117
self.fines = 0
118118
else:

tax/views.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime
1+
from datetime import date
22

33
from django.db.models import Q
44
from drf_yasg import openapi
@@ -9,9 +9,9 @@
99
from rest_framework.status import (
1010
HTTP_200_OK,
1111
HTTP_201_CREATED,
12+
HTTP_204_NO_CONTENT,
1213
HTTP_400_BAD_REQUEST,
13-
HTTP_401_UNAUTHORIZED,
14-
HTTP_204_NO_CONTENT
14+
HTTP_401_UNAUTHORIZED
1515
)
1616

1717
from tax.models import Tax
@@ -31,8 +31,8 @@
3131

3232
# yyyy/mm/dd
3333
def set_date(sdate):
34-
var = list(map(int, sdate.split('/')))
35-
return datetime(var[0], var[1], var[2])
34+
var = list(map(int, sdate.split('-')))
35+
return date(var[0], var[1], var[2])
3636

3737

3838
@swagger_auto_schema(method='post', request_body=TaxSerializers)
@@ -45,14 +45,21 @@ def request_tax(request, *args, **kwargs):
4545
tax_accountant = request.user
4646
data = request.data
4747
try:
48-
tax_payer = User.taxpayermanager.filter(
49-
Q(username=data.get('tax_payer')) | Q(email=data.get('tax_payer'))).first()
50-
tax = Tax.objects.create(
51-
income=int(data.get('income')),
52-
deadline=set_date(data.get('deadline')),
53-
tax_accountant=tax_accountant,
54-
tax_payer=tax_payer
55-
)
48+
if data.get('tax_payer'):
49+
tax_payer = User.taxpayermanager.filter(
50+
Q(username=data.get('tax_payer')) | Q(email=data.get('tax_payer'))).first()
51+
if tax_payer.state == '':
52+
message = {
53+
'detail': f'{tax_payer.username} state is not selected'
54+
}
55+
return Response(message, status=HTTP_400_BAD_REQUEST)
56+
tax = Tax()
57+
tax.income = int(data.get('income'))
58+
tax.tax_payer = tax_payer
59+
tax.tax_accountant = tax_accountant
60+
if data.get('deadline'):
61+
deadline = set_date(data.get('deadline'))
62+
tax.deadline = deadline
5663
tax.save()
5764
serializer = TaxSerializers(tax)
5865
return Response(serializer.data, status=HTTP_201_CREATED)

user/admin.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class UserAdmin(BaseUserAdmin):
6262
{
6363
'classes': ('wide',),
6464
'fields': (
65+
'username',
6566
'email',
6667
'user_type',
6768
'password1',

user/forms.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,16 @@ class UserChangeForm(forms.ModelForm):
5151
class Meta:
5252
model = get_user_model()
5353
fields = (
54-
'username',
5554
'email',
55+
'username',
5656
'password',
5757
'user_type',
5858
'is_active',
5959
'is_admin'
6060
)
6161

62-
def __init__(self, *args, **kwargs):
63-
super(UserChangeForm, self).__init__(*args, **kwargs)
64-
f = self.fields.get('user_permissions', None)
65-
if f is not None:
66-
f.queryset = f.queryset.select_related('content_type')
62+
def save(self, *args, **kwargs):
63+
email = self.cleaned_data.get('email')
64+
instance = super(UserChangeForm, self).save(*args, **kwargs)
65+
instance.email = email
66+
return instance

user/usermanager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def _create_user(self, email, username, password, **extra_fields):
1313
if not username:
1414
raise ValueError('The given username must be set')
1515

16-
user = self.model(email=email, username=username, ** extra_fields)
16+
user = self.model(email=email, username=username, **extra_fields)
1717
user.set_password(password)
1818
user.save(using=self._db)
1919
return user

user/views.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ def index(request):
3131
if not str(site_url) in 'http://':
3232
if settings.DEBUG:
3333
site_url = 'http://'+str(site_url)
34-
site_url = 'https://'+str(site_url)
34+
else:
35+
site_url = 'https://'+str(site_url)
36+
3537
print(site_url)
3638
return render(request, 'index.html', context={'site_url': site_url})
3739

@@ -108,15 +110,24 @@ def get_user_view(request, id, *args, **kwargs):
108110
user = UserModel.objects.get(pk=id)
109111
if user != request.user:
110112
if request.user.user_type == 'admin' and user.user_type == 'admin':
111-
return Response({'message': 'Not Allowed'}, status=HTTP_401_UNAUTHORIZED)
113+
return Response(
114+
{'message': 'Not Allowed'},
115+
status=HTTP_401_UNAUTHORIZED
116+
)
112117
if request.user.user_type == 'tax-accountant' and (
113118
user.user_type == 'admin' or user.user_type == 'tax-accountant'
114119
):
115-
return Response({'message': 'Not Allowed'}, status=HTTP_401_UNAUTHORIZED)
120+
return Response(
121+
{'message': 'Not Allowed'},
122+
status=HTTP_401_UNAUTHORIZED
123+
)
116124
if request.user.user_type == 'tax-payer' and (
117125
user.user_type == 'tax-payer' or user.user_type == 'admin' or user.user_type == 'tax-accountant'
118126
):
119-
return Response({'message': 'Not Allowed'}, status=HTTP_401_UNAUTHORIZED)
127+
return Response(
128+
{'message': 'Not Allowed'},
129+
status=HTTP_401_UNAUTHORIZED
130+
)
120131

121132
serializer = UserSerializer(user)
122133
return Response(serializer.data, status=HTTP_200_OK)
@@ -137,7 +148,10 @@ def get_user_edit(request, id, *args, **kwargs):
137148
if request.user.user_type == 'tax-accountant' and (
138149
user.user_type == 'admin' or user.user_type == 'tax-accountant'
139150
):
140-
return Response({'message': 'Not Allowed'}, status=HTTP_401_UNAUTHORIZED)
151+
return Response(
152+
{'message': 'Not Allowed'},
153+
status=HTTP_401_UNAUTHORIZED
154+
)
141155

142156
if request.user.user_type != 'admin':
143157
if data.get('user_type'):

0 commit comments

Comments
 (0)