Advertisement
Guest User

Untitled

a guest
Apr 16th, 2018
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. class Employee(models.Model):
  2. """
  3. Model, which holds general information of an employee.
  4.  
  5. """
  6. user = models.OneToOneField(settings.AUTH_USER_MODEL,
  7. related_name='employees', null=True)
  8.  
  9. company = models.ForeignKey(
  10. 'hr.Company',
  11. verbose_name='Company',
  12. related_name='companies',
  13. null=True, blank=True,
  14. )
  15. hr_number = models.CharField(
  16. verbose_name='HR number',
  17. blank=True, null=True,
  18. max_length=20, unique=True
  19. )
  20. identification_number = models.CharField(
  21. verbose_name='ID Number',
  22. blank=True, null=True,
  23. max_length=20, unique=True
  24. )
  25. contract_type = models.ForeignKey(Contract)
  26. tax_id_number = models.CharField(
  27. max_length=20, null=True, verbose_name='Tax ID', blank=True, unique=True)
  28. skill = models.ForeignKey(Skill)
  29. # joining can be added in user profile
  30. joining_date = models.DateField(null=True, verbose_name="Joining Date")
  31. job_title = models.ForeignKey(
  32. Job, related_name='job_titles', null=True, blank=True, help_text='Default Permission for different modules in Portal depends upon employee's Designation.')
  33. department = models.ForeignKey(
  34. Department, related_name='department', null=True, blank=True, on_delete=models.SET_NULL)
  35. is_manager = models.BooleanField(default=False)
  36. # leave_count = models.IntegerField(default=0)
  37. active = models.BooleanField(default=True)
  38.  
  39. class AddEmployee(APIView):
  40. # permission_classes = (permissions.DjangoObjectPermissions,)
  41. # serializer_class = EmployeeSerializer
  42. """
  43. {
  44. "user":null,
  45. "new_user":{
  46. "first_name":"John",
  47. "last_name":"Wane",
  48. "username":"Wai",
  49. "email":"jwane@gmail.com",
  50. "password":"123"
  51. },
  52. "company":1,
  53. "department":1,
  54. "identification_number":"234567",
  55. "hr_number":"GH/099/2017",
  56. "tax_id_number":"AEEEEEE",
  57. "joining_date":"2018-04-02",
  58. "job_title":null,
  59. "new_job":{
  60. "name":"Doctor",
  61. "min_salary":50000,
  62. "max_salary":50000
  63.  
  64. }
  65. }
  66. """
  67.  
  68. def post(self, request, format=None):
  69. try:
  70. company = Company.objects.get(id=request.data['company'])
  71.  
  72. department = Department.objects.get(id=request.data['department'])
  73. try:
  74. c_user = User.objects.get(id=request.data['user'])
  75. except:
  76. new_user = request.data['new_user']
  77. c_user = User.objects.create(first_name=new_user['first_name'],
  78. last_name=new_user['last_name'],
  79. username=new_user['username'],
  80. email=new_user['email'],
  81. password=new_user['password'])
  82. try:
  83. job_title = Job.objects.get(id=request.data['job_title'])
  84. except:
  85. new_job = request.data['new_job']
  86. if new_job:
  87. job_title = Job.objects.create(
  88. name=new_job['name'],
  89. min_salary=new_job['min_salary'],
  90. max_salary=new_job['max_salary']
  91. )
  92.  
  93. employee = Employee.objects.create(
  94. user=c_user,
  95. company=company,
  96. department=department,
  97. job_title=job_title,
  98. hr_number=request.data['hr_number'],
  99. identification_number=request.data['identification_number'],
  100. tax_id_number=request.data['tax_id_number'],
  101. joining_date=request.data['joining_date']
  102.  
  103. )
  104. except Exception as e:
  105. print(e)
  106. return Response(status=status.HTTP_201_CREATED)
  107.  
  108. try:
  109. job_title = Job.objects.get(id=request.data['job_title'])
  110. except:
  111. new_job = request.data['new_job']
  112. if new_job:
  113. job_title = Job.objects.create(
  114. name=new_job['name'],
  115. min_salary=new_job['min_salary'],
  116. max_salary=new_job['max_salary']
  117. )
  118.  
  119. # can be write :
  120. job_defaults = {
  121. 'name': new_job['name'],
  122. 'min_salary': new_job['min_salary'],
  123. 'max_salary': new_job['max_salary']
  124. }
  125. Job.objects.get_or_create(name=new_job['name'],defaults=defaults)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement