Updated all (I think functions using try / catch to user the decorator.

This commit is contained in:
Tanshu committed 2012-12-17 15:08:12 +05:30
1 parent 211b8cee2a
commit f9bd95733b
14 files changed
+239 -324

No files matched your search

@@ -1,3 +1,6 @@
from pyramid.response import Response
import transaction
class ValidationError(Exception): class ValidationError(Exception):
def __init__(self, message, Errors=None): def __init__(self, message, Errors=None):
self.message = message self.message = message
@@ -8,3 +11,15 @@ class ValidationError(Exception):
self.Errors = Errors self.Errors = Errors
def __str__(self): def __str__(self):
return self.message return self.message
def TryCatchFunction(f):
def _decorator(self, *args, **kwargs):
try:
return f(self, *args, **kwargs)
except (ValidationError, ValueError, KeyError, AttributeError, TypeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(str(ex)))
response.status_int = 500
return response
return _decorator
+19 -29
View File
@@ -6,7 +6,7 @@ import transaction
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.master import CostCenter, Ledger, LedgerType, LedgerBase from brewman.models.master import CostCenter, Ledger, LedgerType, LedgerBase
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='account_list', renderer='brewman:templates/angular_base.mako', permission='Accounts') @view_config(route_name='account_list', renderer='brewman:templates/angular_base.mako', permission='Accounts')
@view_config(request_method='GET', route_name='account_id', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='account_id', renderer='brewman:templates/angular_base.mako',
@@ -18,39 +18,29 @@ def html(request):
@view_config(request_method='POST', route_name='api_account', renderer='json', permission='Accounts') @view_config(request_method='POST', route_name='api_account', renderer='json', permission='Accounts')
@TryCatchFunction
def save(request): def save(request):
try: item = Ledger(code=0, name=request.json_body['Name'], type=int(request.json_body['Type']),
item = Ledger(code=0, name=request.json_body['Name'], type=int(request.json_body['Type']), is_active=request.json_body['IsActive'], is_reconcilable=request.json_body['IsReconcilable'],
is_active=request.json_body['IsActive'], is_reconcilable=request.json_body['IsReconcilable'], costcenter_id=uuid.UUID(request.json_body['CostCenter']['CostCenterID'])).create()
costcenter_id=uuid.UUID(request.json_body['CostCenter']['CostCenterID'])).create() transaction.commit()
transaction.commit() return account_info(item.id)
return account_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_account_id', renderer='json', permission='Accounts') @view_config(request_method='POST', route_name='api_account_id', renderer='json', permission='Accounts')
@TryCatchFunction
def update(request): def update(request):
try: item = Ledger.by_id(uuid.UUID(request.matchdict['id']))
item = Ledger.by_id(uuid.UUID(request.matchdict['id'])) new_type = int(request.json_body['Type'])
new_type = int(request.json_body['Type']) if not item.type == new_type:
if not item.type == new_type: item.code = Ledger.get_code(new_type)
item.code = Ledger.get_code(new_type) item.type = new_type
item.type = new_type item.name = request.json_body['Name']
item.name = request.json_body['Name'] item.is_active = request.json_body['IsActive']
item.is_active = request.json_body['IsActive'] item.is_reconcilable = request.json_body['IsReconcilable']
item.is_reconcilable = request.json_body['IsReconcilable'] item.costcenter_id = uuid.UUID(request.json_body['CostCenter']['CostCenterID'])
item.costcenter_id = uuid.UUID(request.json_body['CostCenter']['CostCenterID']) transaction.commit()
transaction.commit() return account_info(item.id)
return account_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_account_id', renderer='json', permission='Accounts') @view_config(request_method='DELETE', route_name='api_account_id', renderer='json', permission='Accounts')
+33 -43
View File
@@ -7,7 +7,7 @@ from sqlalchemy import or_
import transaction import transaction
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.master import AttendanceType, Employee from brewman.models.master import AttendanceType, Employee
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Attendance from brewman.models.voucher import Attendance
from brewman.views.fingerprint import get_prints from brewman.views.fingerprint import get_prints
from brewman.views.services.session import session_period_start, session_period_finish, session_current_date from brewman.views.services.session import session_period_start, session_period_finish, session_current_date
@@ -66,26 +66,21 @@ def attendance_date_report(date):
@view_config(request_method='POST', route_name='api_attendance_date', renderer='json', permission='Attendance') @view_config(request_method='POST', route_name='api_attendance_date', renderer='json', permission='Attendance')
@TryCatchFunction
def save(request): def save(request):
try: user_id = uuid.UUID(authenticated_userid(request))
user_id = uuid.UUID(authenticated_userid(request)) date = request.matchdict.get('date', None)
date = request.matchdict.get('date', None) date_object = datetime.datetime.strptime(date, '%d-%b-%Y')
date_object = datetime.datetime.strptime(date, '%d-%b-%Y')
for item in request.json_body['Body']: for item in request.json_body['Body']:
employee_id = uuid.UUID(item['id']) employee_id = uuid.UUID(item['id'])
attendance_type = item['AttendanceTypeID'] attendance_type = item['AttendanceTypeID']
if attendance_type != 0: if attendance_type != 0:
attendance = Attendance(employee_id=employee_id, date=date_object, attendance_type=attendance_type, attendance = Attendance(employee_id=employee_id, date=date_object, attendance_type=attendance_type,
user_id=user_id) user_id=user_id)
attendance.create() attendance.create()
transaction.commit() transaction.commit()
return attendance_date_report(date) return attendance_date_report(date)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='GET', route_name='api_employee_attendance', renderer='json', permission='Attendance') @view_config(request_method='GET', route_name='api_employee_attendance', renderer='json', permission='Attendance')
@@ -131,32 +126,27 @@ def employee_attendance(employee, start_date, finish_date):
@view_config(request_method='POST', route_name='api_employee_attendance_id', renderer='json', permission='Attendance') @view_config(request_method='POST', route_name='api_employee_attendance_id', renderer='json', permission='Attendance')
@TryCatchFunction
def save_employee_attendance(request): def save_employee_attendance(request):
try: start_date = None
start_date = None finish_date = None
finish_date = None user_id = uuid.UUID(authenticated_userid(request))
user_id = uuid.UUID(authenticated_userid(request)) employee = Employee.by_id(uuid.UUID(request.matchdict['id']))
employee = Employee.by_id(uuid.UUID(request.matchdict['id'])) for item in request.json_body['Body']:
for item in request.json_body['Body']: if start_date is None:
if start_date is None: start_date = item['Date']
start_date = item['Date'] finish_date = item['Date']
finish_date = item['Date']
attendance_type = item['AttendanceTypeID'] attendance_type = item['AttendanceTypeID']
if attendance_type != 0: if attendance_type != 0:
date = datetime.datetime.strptime(item['Date'], '%d-%b-%Y') date = datetime.datetime.strptime(item['Date'], '%d-%b-%Y')
attendance = Attendance(employee_id=employee.id, date=date, attendance_type=attendance_type, attendance = Attendance(employee_id=employee.id, date=date, attendance_type=attendance_type,
user_id=user_id) user_id=user_id)
attendance.create() attendance.create()
transaction.commit() transaction.commit()
return {'StartDate': start_date, 'FinishDate': finish_date, return {'StartDate': start_date, 'FinishDate': finish_date,
'Employee': {'LedgerID': employee.id, 'Name': employee.name}, 'Employee': {'LedgerID': employee.id, 'Name': employee.name},
'Body': employee_attendance(employee, start_date, finish_date)} 'Body': employee_attendance(employee, start_date, finish_date)}
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def daterange(start, stop, step=datetime.timedelta(days=1), inclusive=False): def daterange(start, stop, step=datetime.timedelta(days=1), inclusive=False):
+14 -19
View File
@@ -9,7 +9,7 @@ import transaction
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.auth import User from brewman.models.auth import User
from brewman.models.master import AttendanceType, Employee, Ledger from brewman.models.master import AttendanceType, Employee, Ledger
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Attendance, Voucher, VoucherType, Journal from brewman.models.voucher import Attendance, Voucher, VoucherType, Journal
from brewman.views.attendance import daterange from brewman.views.attendance import daterange
from brewman.views.services.session import session_period_start, session_period_finish, get_last_day, get_first_day from brewman.views.services.session import session_period_start, session_period_finish, get_last_day, get_first_day
@@ -55,26 +55,21 @@ def attendance_record(start_date, finish_date):
@view_config(request_method='POST', route_name='api_credit_salary', renderer='json', permission='Attendance') @view_config(request_method='POST', route_name='api_credit_salary', renderer='json', permission='Attendance')
@TryCatchFunction
def credit_salary(request): def credit_salary(request):
try: user = User.by_id(uuid.UUID(authenticated_userid(request)))
user = User.by_id(uuid.UUID(authenticated_userid(request))) month = datetime.datetime.strptime(request.json_body['Month'], '%d-%b-%Y')
month = datetime.datetime.strptime(request.json_body['Month'], '%d-%b-%Y')
start_date = get_first_day(month) start_date = get_first_day(month)
finish_date = get_last_day(month) finish_date = get_last_day(month)
voucher = Voucher(date=finish_date, narration='Auto Generated Salary Entry', user_id=user.id, voucher = Voucher(date=finish_date, narration='Auto Generated Salary Entry', user_id=user.id,
type=VoucherType.by_name('Journal'), posted=True, poster_id=user.id) type=VoucherType.by_name('Journal'), posted=True, poster_id=user.id)
DBSession.add(voucher) DBSession.add(voucher)
for item in salary_journals(start_date, finish_date): for item in salary_journals(start_date, finish_date):
voucher.journals.append(item) voucher.journals.append(item)
DBSession.add(item) DBSession.add(item)
transaction.commit() transaction.commit()
return {'message': 'Salary Entry created'} return {'message': 'Salary Entry created'}
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def salary_journals(start_date, finish_date): def salary_journals(start_date, finish_date):
+6 -11
View File
@@ -5,7 +5,7 @@ from pyramid.view import view_config
import transaction import transaction
from brewman.models.auth import Client from brewman.models.auth import Client
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(request_method='GET', route_name='client_list', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='client_list', renderer='brewman:templates/angular_base.mako',
@@ -15,17 +15,12 @@ def html(request):
@view_config(request_method='POST', route_name='api_client_id', renderer='json', permission='Clients') @view_config(request_method='POST', route_name='api_client_id', renderer='json', permission='Clients')
@TryCatchFunction
def update(request): def update(request):
try: item = Client.by_id(uuid.UUID(request.matchdict.get['id']))
item = Client.by_id(uuid.UUID(request.matchdict.get['id'])) item.enabled = request.json_body['Enabled']
item.enabled = request.json_body['Enabled'] transaction.commit()
transaction.commit() return {}
return {}
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='GET', route_name='api_client', request_param='list', renderer='json', permission='Clients') @view_config(request_method='GET', route_name='api_client', request_param='list', renderer='json', permission='Clients')
+14 -24
View File
@@ -5,7 +5,7 @@ from pyramid.view import view_config
import transaction import transaction
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.auth import Group, Role from brewman.models.auth import Group, Role
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='group_list', renderer='brewman:templates/angular_base.mako', permission='Users') @view_config(route_name='group_list', renderer='brewman:templates/angular_base.mako', permission='Users')
@view_config(request_method='GET', route_name='group_id', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='group_id', renderer='brewman:templates/angular_base.mako',
@@ -17,34 +17,24 @@ def html(request):
@view_config(request_method='POST', route_name='api_group', renderer='json', permission='Users') @view_config(request_method='POST', route_name='api_group', renderer='json', permission='Users')
@TryCatchFunction
def save(request): def save(request):
try: group = Group(request.json_body['Name'])
group = Group(request.json_body['Name']) DBSession.add(group)
DBSession.add(group) add_permissions(group, request.json_body['Permissions'])
add_permissions(group, request.json_body['Permissions']) transaction.commit()
transaction.commit() return group_info(group.id)
return group_info(group.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_group_id', renderer='json', permission='Users') @view_config(request_method='POST', route_name='api_group_id', renderer='json', permission='Users')
@TryCatchFunction
def update(request): def update(request):
try: id = request.matchdict.get('id', None)
id = request.matchdict.get('id', None) group = Group.by_id(uuid.UUID(id))
group = Group.by_id(uuid.UUID(id)) group.name = request.json_body['Name']
group.name = request.json_body['Name'] add_permissions(group, request.json_body['Permissions'])
add_permissions(group, request.json_body['Permissions']) transaction.commit()
transaction.commit() return group_info(group.id)
return group_info(group.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def add_permissions(group, permissions): def add_permissions(group, permissions):
+21 -31
View File
@@ -7,7 +7,7 @@ import transaction
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.auth import User, Group from brewman.models.auth import User, Group
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='user_list', renderer='brewman:templates/angular_base.mako', permission='Users') @view_config(route_name='user_list', renderer='brewman:templates/angular_base.mako', permission='Users')
@view_config(request_method='GET', route_name='user_id', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='user_id', renderer='brewman:templates/angular_base.mako',
@@ -19,41 +19,31 @@ def html(request):
@view_config(request_method='POST', route_name='api_user', renderer='json', permission='Users') @view_config(request_method='POST', route_name='api_user', renderer='json', permission='Users')
@TryCatchFunction
def save(request): def save(request):
try: user = User(request.json_body['Name'], request.json_body['Password'], request.json_body['LockedOut'])
user = User(request.json_body['Name'], request.json_body['Password'], request.json_body['LockedOut']) DBSession.add(user)
DBSession.add(user) add_groups(user, request.json_body['Groups'])
add_groups(user, request.json_body['Groups']) transaction.commit()
transaction.commit() return user_info(user.id)
return user_info(user.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_user_id', renderer='json', permission='Users') @view_config(request_method='POST', route_name='api_user_id', renderer='json', permission='Users')
@TryCatchFunction
def update(request): def update(request):
try: id = request.matchdict['id']
id = request.matchdict['id'] p = re.compile('^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$')
p = re.compile('^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$') if p.match(id):
if p.match(id): user = User.by_id(uuid.UUID(id))
user = User.by_id(uuid.UUID(id)) else:
else: user = User.by_name(id)
user = User.by_name(id) user.name = request.json_body['Name']
user.name = request.json_body['Name'] user.locked_out = request.json_body['LockedOut']
user.locked_out = request.json_body['LockedOut'] if request.json_body['Password'] != '' and request.json_body['Password'] != user.password:
if request.json_body['Password'] != '' and request.json_body['Password'] != user.password: user.password = request.json_body['Password']
user.password = request.json_body['Password'] add_groups(user, request.json_body['Groups'])
add_groups(user, request.json_body['Groups']) transaction.commit()
transaction.commit() return user_info(user.id)
return user_info(user.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def add_groups(user, groups): def add_groups(user, groups):
+11 -21
View File
@@ -6,7 +6,7 @@ import transaction
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.master import CostCenter from brewman.models.master import CostCenter
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='cost_center_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated') @view_config(route_name='cost_center_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated')
@@ -19,31 +19,21 @@ def html(request):
@view_config(request_method='POST', route_name='api_cost_center', renderer='json', permission='Cost Centers') @view_config(request_method='POST', route_name='api_cost_center', renderer='json', permission='Cost Centers')
@TryCatchFunction
def save(request): def save(request):
try: item = CostCenter(request.json_body['Name'])
item = CostCenter(request.json_body['Name']) DBSession.add(item)
DBSession.add(item) transaction.commit()
transaction.commit() return cost_center_info(item.id)
return cost_center_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_cost_center_id', renderer='json', permission='Cost Centers') @view_config(request_method='POST', route_name='api_cost_center_id', renderer='json', permission='Cost Centers')
@TryCatchFunction
def update(request): def update(request):
try: item = CostCenter.by_id(uuid.UUID(request.matchdict.get['id']))
item = CostCenter.by_id(uuid.UUID(request.matchdict.get['id'])) item.name = request.json_body['Name']
item.name = request.json_body['Name'] transaction.commit()
transaction.commit() return cost_center_info(item.id)
return cost_center_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_cost_center_id', renderer='json', permission='Cost Centers') @view_config(request_method='DELETE', route_name='api_cost_center_id', renderer='json', permission='Cost Centers')
+26 -36
View File
@@ -6,7 +6,7 @@ from pyramid.view import view_config
import transaction import transaction
from brewman.models.master import CostCenter, Employee, LedgerBase from brewman.models.master import CostCenter, Employee, LedgerBase
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='employee_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated') @view_config(route_name='employee_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated')
@view_config(request_method='GET', route_name='employee_id', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='employee_id', renderer='brewman:templates/angular_base.mako',
@@ -20,47 +20,37 @@ def html(request):
@view_config(request_method='POST', route_name='api_employee', renderer='json', permission='Employees') @view_config(request_method='POST', route_name='api_employee', renderer='json', permission='Employees')
@TryCatchFunction
def save(request): def save(request):
try: is_active = request.json_body['IsActive']
is_active = request.json_body['IsActive'] joining_date = datetime.datetime.strptime(request.json_body['JoiningDate'], '%d-%b-%Y')
joining_date = datetime.datetime.strptime(request.json_body['JoiningDate'], '%d-%b-%Y') leaving_date = None if is_active else datetime.datetime.strptime(request.json_body['LeavingDate'],
leaving_date = None if is_active else datetime.datetime.strptime(request.json_body['LeavingDate'], '%d-%b-%Y')
'%d-%b-%Y')
item = Employee(0, request.json_body['Name'], is_active, item = Employee(0, request.json_body['Name'], is_active,
uuid.UUID(request.json_body['CostCenter']['CostCenterID']), uuid.UUID(request.json_body['CostCenter']['CostCenterID']),
request.json_body['Designation'], int(request.json_body['Salary']), request.json_body['Designation'], int(request.json_body['Salary']),
int(request.json_body['ServicePoints']), int(request.json_body['ServicePoints']),
joining_date, leaving_date).create() joining_date, leaving_date).create()
transaction.commit() transaction.commit()
return employee_info(item.id) return employee_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_employee_id', renderer='json', permission='Employees') @view_config(request_method='POST', route_name='api_employee_id', renderer='json', permission='Employees')
@TryCatchFunction
def update(request): def update(request):
try: item = Employee.by_id(uuid.UUID(request.matchdict['id']))
item = Employee.by_id(uuid.UUID(request.matchdict['id'])) item.name = request.json_body['Name']
item.name = request.json_body['Name'] item.is_active = request.json_body['IsActive']
item.is_active = request.json_body['IsActive'] item.costcenter_id = uuid.UUID(request.json_body['CostCenter']['CostCenterID'])
item.costcenter_id = uuid.UUID(request.json_body['CostCenter']['CostCenterID']) item.designation = request.json_body['Designation']
item.designation = request.json_body['Designation'] item.salary = int(request.json_body['Salary'])
item.salary = int(request.json_body['Salary']) item.service_points = int(request.json_body['ServicePoints'])
item.service_points = int(request.json_body['ServicePoints']) item.joining_date = datetime.datetime.strptime(request.json_body['JoiningDate'], '%d-%b-%Y')
item.joining_date = datetime.datetime.strptime(request.json_body['JoiningDate'], '%d-%b-%Y') item.leaving_date = None if item.is_active else datetime.datetime.strptime(request.json_body['LeavingDate'],
item.leaving_date = None if item.is_active else datetime.datetime.strptime(request.json_body['LeavingDate'], '%d-%b-%Y')
'%d-%b-%Y') transaction.commit()
transaction.commit() return employee_info(item.id)
return employee_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_employee_id', renderer='json', permission='Employees') @view_config(request_method='DELETE', route_name='api_employee_id', renderer='json', permission='Employees')
+25 -34
View File
@@ -6,7 +6,7 @@ from pyramid.view import view_config
import transaction import transaction
from brewman.models.master import Product, CostCenter, LedgerType, Ledger from brewman.models.master import Product, CostCenter, LedgerType, Ledger
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='product_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated') @view_config(route_name='product_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated')
@view_config(request_method='GET', route_name='product_id', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='product_id', renderer='brewman:templates/angular_base.mako',
@@ -18,43 +18,33 @@ def html(request):
@view_config(request_method='POST', route_name='api_product', renderer='json', permission='Products') @view_config(request_method='POST', route_name='api_product', renderer='json', permission='Products')
@TryCatchFunction
def save(request): def save(request):
try: item = Product(0, request.json_body['Name'], request.json_body['Units'],
item = Product(0, request.json_body['Name'], request.json_body['Units'], Decimal(request.json_body['Fraction']), request.json_body['FractionUnits'],
Decimal(request.json_body['Fraction']), request.json_body['FractionUnits'], Decimal(request.json_body['Yeild']), request.json_body['ShowForPurchase'],
Decimal(request.json_body['Yeild']), request.json_body['ShowForPurchase'], uuid.UUID(request.json_body['ProductGroup']['ProductGroupID']), Ledger.all_purchases(),
uuid.UUID(request.json_body['ProductGroup']['ProductGroupID']), Ledger.all_purchases(), Decimal(request.json_body['Price']), request.json_body['Discontinued']).create()
Decimal(request.json_body['Price']), request.json_body['Discontinued']).create() transaction.commit()
transaction.commit() return product_info(item.id)
return product_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_product_id', renderer='json', permission='Products') @view_config(request_method='POST', route_name='api_product_id', renderer='json', permission='Products')
@TryCatchFunction
def update(request): def update(request):
try: item = Product.by_id(uuid.UUID(request.matchdict.get['id']))
item = Product.by_id(uuid.UUID(request.matchdict.get['id'])) item.name = request.json_body['Name']
item.name = request.json_body['Name'] item.units = request.json_body['Units']
item.units = request.json_body['Units'] item.fraction = Decimal(request.json_body['Fraction'])
item.fraction = Decimal(request.json_body['Fraction']) item.fraction_units = request.json_body['FractionUnits']
item.fraction_units = request.json_body['FractionUnits'] item.yeild = Decimal(request.json_body['Yeild'])
item.yeild = Decimal(request.json_body['Yeild']) item.show_for_purchase = request.json_body['ShowForPurchase']
item.show_for_purchase = request.json_body['ShowForPurchase'] item.product_group_id = uuid.UUID(request.json_body['ProductGroup']['ProductGroupID'])
item.product_group_id = uuid.UUID(request.json_body['ProductGroup']['ProductGroupID']) item.ledger_id = Ledger.all_purchases()
item.ledger_id = Ledger.all_purchases() item.price = Decimal(request.json_body['Price'])
item.price = Decimal(request.json_body['Price']) item.discontinued = request.json_body['Discontinued']
item.discontinued = request.json_body['Discontinued'] transaction.commit()
transaction.commit() return product_info(item.id)
return product_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_product_id', renderer='json', permission='Products') @view_config(request_method='DELETE', route_name='api_product_id', renderer='json', permission='Products')
@@ -93,7 +83,8 @@ def show_list(request):
return products return products
@view_config(request_method='GET', route_name='api_product', renderer='json', request_param='term', permission='Authenticated') @view_config(request_method='GET', route_name='api_product', renderer='json', request_param='term',
permission='Authenticated')
def show_term(request): def show_term(request):
filter = request.GET.get('term', None) filter = request.GET.get('term', None)
filter = filter if filter is not None and filter is not '' else None filter = filter if filter is not None and filter is not '' else None
+18 -24
View File
@@ -6,10 +6,11 @@ import transaction
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.master import ProductGroup from brewman.models.master import ProductGroup
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
@view_config(route_name='product_group_list', renderer='brewman:templates/angular_base.mako', permission='Authenticated') @view_config(route_name='product_group_list', renderer='brewman:templates/angular_base.mako',
permission='Authenticated')
@view_config(request_method='GET', route_name='product_group_id', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='product_group_id', renderer='brewman:templates/angular_base.mako',
permission='Product Groups') permission='Product Groups')
@view_config(request_method='GET', route_name='product_group', renderer='brewman:templates/angular_base.mako', @view_config(request_method='GET', route_name='product_group', renderer='brewman:templates/angular_base.mako',
@@ -19,31 +20,21 @@ def html(request):
@view_config(request_method='POST', route_name='api_product_group', renderer='json', permission='Product Groups') @view_config(request_method='POST', route_name='api_product_group', renderer='json', permission='Product Groups')
@TryCatchFunction
def save(request): def save(request):
try: item = ProductGroup(request.json_body['Name'])
item = ProductGroup(request.json_body['Name']) DBSession.add(item)
DBSession.add(item) transaction.commit()
transaction.commit() return product_group_info(item.id)
return product_group_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='POST', route_name='api_product_group_id', renderer='json', permission='Product Groups') @view_config(request_method='POST', route_name='api_product_group_id', renderer='json', permission='Product Groups')
@TryCatchFunction
def update(request): def update(request):
try: item = ProductGroup.by_id(uuid.UUID(request.matchdict.get['id']))
item = ProductGroup.by_id(uuid.UUID(request.matchdict.get['id'])) item.name = request.json_body['Name']
item.name = request.json_body['Name'] transaction.commit()
transaction.commit() return product_group_info(item.id)
return product_group_info(item.id)
except ValidationError as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
@view_config(request_method='DELETE', route_name='api_product_group_id', renderer='json', permission='Product Groups') @view_config(request_method='DELETE', route_name='api_product_group_id', renderer='json', permission='Product Groups')
@@ -58,6 +49,7 @@ def delete(request):
response.status_int = 500 response.status_int = 500
return response return response
@view_config(request_method='GET', route_name='api_product_group_id', renderer='json', permission='Product Groups') @view_config(request_method='GET', route_name='api_product_group_id', renderer='json', permission='Product Groups')
def show_id(request): def show_id(request):
return product_group_info(uuid.UUID(request.matchdict.get('id', None))) return product_group_info(uuid.UUID(request.matchdict.get('id', None)))
@@ -68,12 +60,14 @@ def show_blank(request):
return product_group_info(None) return product_group_info(None)
@view_config(request_method='GET', route_name='api_product_group', request_param='list', renderer='json', permission='Authenticated') @view_config(request_method='GET', route_name='api_product_group', request_param='list', renderer='json',
permission='Authenticated')
def show_list(request): def show_list(request):
list = ProductGroup.list() list = ProductGroup.list()
product_groups = [] product_groups = []
for item in list: for item in list:
product_groups.append({'ProductGroupID': item.id, 'Name': item.name, 'Url': request.route_url('product_group_id', id=item.id)}) product_groups.append(
{'ProductGroupID': item.id, 'Name': item.name, 'Url': request.route_url('product_group_id', id=item.id)})
return product_groups return product_groups
@@ -7,7 +7,7 @@ from brewman import groupfinder
from brewman.models import DBSession from brewman.models import DBSession
from brewman.models.auth import User from brewman.models.auth import User
from brewman.models.master import LedgerBase, CostCenter from brewman.models.master import LedgerBase, CostCenter
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Voucher, VoucherType from brewman.models.voucher import Voucher, VoucherType
from brewman.views.services.voucher.issue import issue_create_voucher, issue_update_voucher from brewman.views.services.voucher.issue import issue_create_voucher, issue_update_voucher
from brewman.views.services.voucher.journal import journal_update_voucher, journal_create_voucher from brewman.views.services.voucher.journal import journal_update_voucher, journal_create_voucher
@@ -48,19 +48,14 @@ def journal_get(request):
@view_config(request_method='POST', route_name='api_voucher_id', request_param='post', renderer='json', permission='Post Vouchers') @view_config(request_method='POST', route_name='api_voucher_id', request_param='post', renderer='json', permission='Post Vouchers')
@TryCatchFunction
def voucher_post(request): def voucher_post(request):
user = User.by_id(uuid.UUID(authenticated_userid(request))) user = User.by_id(uuid.UUID(authenticated_userid(request)))
try: voucher = Voucher.by_id(uuid.UUID(request.matchdict['id']))
voucher = Voucher.by_id(uuid.UUID(request.matchdict['id'])) voucher.posted = True
voucher.posted = True voucher.poster_id = user.id
voucher.poster_id = user.id transaction.commit()
transaction.commit() return voucher_info(Voucher.by_id(voucher.id))
return voucher_info(Voucher.by_id(voucher.id))
except (ValidationError, ValueError, KeyError, AttributeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(ex.message))
response.status_int = 500
return response
def check_delete_permissions(request, voucher): def check_delete_permissions(request, voucher):
@@ -4,7 +4,7 @@ from pyramid.security import authenticated_userid
from pyramid.view import view_defaults, view_config from pyramid.view import view_defaults, view_config
import transaction import transaction
from brewman.models.auth import User from brewman.models.auth import User
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Voucher from brewman.models.voucher import Voucher
from brewman.views.services.session import session_current_date_set from brewman.views.services.session import session_current_date_set
from brewman.views.services.voucher import voucher_info, journal_create_voucher, purchase_create_voucher, issue_create_voucher from brewman.views.services.voucher import voucher_info, journal_create_voucher, purchase_create_voucher, issue_create_voucher
@@ -54,23 +54,18 @@ class save_voucher(object):
def salary_deduction(self): def salary_deduction(self):
return self.save() return self.save()
@TryCatchFunction
def save(self): def save(self):
try: if self.json['Type'] in ['Journal', 'Payment', 'Receipt']:
if self.json['Type'] in ['Journal', 'Payment', 'Receipt']: voucher = journal_create_voucher(self.json, self.user)
voucher = journal_create_voucher(self.json, self.user) elif self.json['Type'] in ['Purchase']:
elif self.json['Type'] in ['Purchase']: voucher = purchase_create_voucher(self.json, self.user)
voucher = purchase_create_voucher(self.json, self.user) elif self.json['Type'] in ['Purchase Return']:
elif self.json['Type'] in ['Purchase Return']: voucher = purchase_return_create_voucher(self.json, self.user)
voucher = purchase_return_create_voucher(self.json, self.user) elif self.json['Type'] in ['Issue']:
elif self.json['Type'] in ['Issue']: voucher = issue_create_voucher(self.json, self.user)
voucher = issue_create_voucher(self.json, self.user) elif self.json['Type'] in ['Salary Deduction']:
elif self.json['Type'] in ['Salary Deduction']: voucher = salary_deduction_create_voucher(self.json, self.user)
voucher = salary_deduction_create_voucher(self.json, self.user) transaction.commit()
transaction.commit() session_current_date_set(self.request, self.json['Date'])
session_current_date_set(self.request, self.json['Date']) return voucher_info(Voucher.by_id(voucher.id))
return voucher_info(Voucher.by_id(voucher.id))
except (ValidationError, ValueError, KeyError, AttributeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(str(ex)))
response.status_int = 500
return response
@@ -5,7 +5,7 @@ from pyramid.view import view_defaults, view_config
import transaction import transaction
from brewman import groupfinder from brewman import groupfinder
from brewman.models.auth import User from brewman.models.auth import User
from brewman.models.validation_exception import ValidationError from brewman.models.validation_exception import ValidationError, TryCatchFunction
from brewman.models.voucher import Voucher from brewman.models.voucher import Voucher
from brewman.views.services.session import session_current_date_set from brewman.views.services.session import session_current_date_set
from brewman.views.services.voucher import voucher_info, issue_update_voucher, purchase_update_voucher, journal_update_voucher from brewman.views.services.voucher import voucher_info, issue_update_voucher, purchase_update_voucher, journal_update_voucher
@@ -69,25 +69,20 @@ class update_voucher(object):
def salary_deduction(self): def salary_deduction(self):
return self.update() return self.update()
@TryCatchFunction
def update(self): def update(self):
if self.error is not None: if self.error is not None:
return self.error return self.error
try: if self.json['Type'] in ['Journal', 'Payment', 'Receipt']:
if self.json['Type'] in ['Journal', 'Payment', 'Receipt']: voucher = journal_update_voucher(self.voucher, self.json, self.user)
voucher = journal_update_voucher(self.voucher, self.json, self.user) elif self.json['Type'] in ['Purchase']:
elif self.json['Type'] in ['Purchase']: voucher = purchase_update_voucher(self.voucher, self.json, self.user)
voucher = purchase_update_voucher(self.voucher, self.json, self.user) elif self.json['Type'] in ['Purchase Return']:
elif self.json['Type'] in ['Purchase Return']: voucher = purchase_return_update_voucher(self.voucher, self.json, self.user)
voucher = purchase_return_update_voucher(self.voucher, self.json, self.user) elif self.json['Type'] in ['Issue']:
elif self.json['Type'] in ['Issue']: voucher = issue_update_voucher(self.voucher, self.json, self.user)
voucher = issue_update_voucher(self.voucher, self.json, self.user) elif self.json['Type'] in ['Salary Deduction']:
elif self.json['Type'] in ['Salary Deduction']: voucher = salary_deduction_update_voucher(self.voucher, self.json, self.user)
voucher = salary_deduction_update_voucher(self.voucher, self.json, self.user) transaction.commit()
transaction.commit() session_current_date_set(self.request, self.json['Date'])
session_current_date_set(self.request,self.json['Date']) return voucher_info(Voucher.by_id(voucher.id))
return voucher_info(Voucher.by_id(voucher.id))
except (ValidationError, ValueError, KeyError, AttributeError) as ex:
transaction.abort()
response = Response("Failed validation: {0}".format(str(ex)))
response.status_int = 500
return response