Skip to content

Commit 4f65272

Browse files
committed
Created RequisitionController to handle all CRUD operations on Requisition instances
1 parent 3907839 commit 4f65272

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

controllers/requisition.py

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
from scm.models import DBSession, Requisition
2+
3+
from sqlchemy.types import Boolean
4+
5+
class RequisitionController(ApiController):
6+
"""
7+
Class manages requistion operations
8+
"""
9+
id = 0
10+
requested_date = None
11+
expected_date = None
12+
department_id = 0
13+
requested_by = 0
14+
requested_date = None
15+
recommended_by = 0
16+
recommended_date = None
17+
approved_by = 0
18+
approved_date = None
19+
items = []
20+
created_by = 0
21+
created_date = None
22+
modified_by = 0
23+
modified_date = None
24+
25+
def _set_attributes():
26+
self.id = j_requistion.pop("requisition.id")
27+
self.request_date = j_requisition.pop("requisition.request_date")
28+
self.expected_date = j_requisition.pop("requisition.expected_date")
29+
self.department_id = j_requisition.pop("requisition.department_id")
30+
self.requested_by = j_requisition.pop("requisition.requested_by")
31+
self.requested_date = j_requisition.pop("requisition.requested_date")
32+
self.recommended_by = j_requistion.pop("requistion.recommended_by")
33+
self.recommended_date = j_requistion.pop("requistion.recommended_date")
34+
self.approved_by = j_requisition.pop("requisition.approved_by")
35+
self.approved_date = j_reqisition.pop("requisition.approved_date")
36+
self.items = j_requisition.pop("requisition.items")
37+
self.created_by = requisition.pop("requisition.created_by")
38+
self.created_date = requisition.pop("requisition.created_date")
39+
self.modified_by = requisition.pop("requisition.modified_by")
40+
self.modified_date = requisition.pop("requisition.modified_date")
41+
42+
def _set_requisition(requisition):
43+
requisition.request_date = self.request_date
44+
requisition.expected_date = self.expected_date
45+
requisition.department_id = self.department_id
46+
requisition.requested_by = self.requested_by
47+
requisition.requested_date = self.requested_date
48+
requisition.recommended_by = self.recommended_by
49+
requisition.recommended_date = self.recommended_date
50+
requisition.approved_by = self.approved_by
51+
requisition.approved_date = self.approved_date
52+
requisition.items = self.items
53+
requisition.created_by = self.created_by
54+
requisition.created_date = self.created_date
55+
requisition.modified_by = self.modified_by
56+
requisition.modified_date = self.modified_date
57+
return requisition
58+
59+
def save(self, j_requisition):
60+
_set_attributes()
61+
if self.id == -1:
62+
_create()
63+
else:
64+
_update()
65+
66+
def _create():
67+
requisition = Requisition()
68+
requisition = _set_requisition(requisition)
69+
70+
with transaction.manager:
71+
DBSession.add(requisition)
72+
transaction.commit()
73+
74+
def _update():
75+
with transaction.manager:
76+
requisition = DBSession.get(requisition.id)
77+
requisition = _set_requisition(requisition)
78+
DBSession.merge(requisition)
79+
transaction.commit()
80+
81+
def get(self, **kwargs):
82+
try:
83+
id = kwargs.pop("requisition.id")
84+
transaction.manager:
85+
return DBSession.query(Requisition).get(id).first()
86+
except KeyError as err:
87+
return DBSession.query(Requisition).filter(voided = False)
88+
89+
def delete(self, requisition_id):
90+
requisition = get(requisition_id)
91+
requisition.void = True
92+
93+
with transaction.manager:
94+
DBSession.merge(requisition)
95+
transaction.commit()

0 commit comments

Comments
 (0)