Beispiel #1
0
def handle_factuur_create(params, json_data):
    log.debug('Start factuur_create')
    log.debug('Input data:%s', json_data)

    if not hasPermission(params, 'factuur_create', None):
        return {'error': 'insufficient permissions'}

    facturen = []

    #Start transaction

    try:
        facturen.append(parse_factuur(json_data))
    except MalformedDataException:
        return {'error': 'incorrectly structured data'}

    try:
        for factuur in facturen:
            start_transaction()
            verify_factuur(factuur)
            fac_id = process_factuur(factuur)
            policy.process_factuur(factuur, fac_id)
            commit()
    except NonExistingProductException, e:
        rollback()
        return {
            'error':
            'No such product {0}: {1}'.format(e.product_id, e.product_name),
            'product_id':
            e.product_id,
            'product_name':
            e.product_name
        }
Beispiel #2
0
def handle_factuur_create(params, json_data):
	log.debug('Start factuur_create')
	log.debug('Input data:%s', json_data)
	
	if not hasPermission(params,'factuur_create',None):
		return {'error': 'insufficient permissions'}
	
	facturen = []
	
	#Start transaction
	
	try:
		facturen.append(parse_factuur(json_data))
	except MalformedDataException:
		return {'error': 'incorrectly structured data'}
	
	try:
		for factuur in facturen:
			start_transaction()
			verify_factuur(factuur)
			fac_id = process_factuur(factuur)
			policy.process_factuur(factuur, fac_id)
			commit()
	except NonExistingProductException, e:
		rollback()
		return {'error': 'No such product {0}: {1}'.format(e.product_id, e.product_name), 'product_id': e.product_id, 'product_name': e.product_name}
Beispiel #3
0
def handle_factuur_edit(params, json_data):
    log.debug('Start factuur_edit')
    log.debug('Input data:%s', json_data)

    if not hasPermission(params,'factuur_create',None):
        return {'error': 'insufficient permissions'}

    factuur_id = params['factuur_id']
    try:
        regels = parse_factuur_regels(json_data['regels'])
        factuur = handle_factuur(params, {})
    except MalformedDataException:
        return {'error': 'Incorrect input formatting'}

    try:
        start_transaction()
        vrd_aantallen = {}
        for regel in regels:
            verify_factuur_regel(regel, vrd_aantallen)
        edit_factuur(factuur_id, factuur, regels)
        commit()
    except NonExistingProductException, e:
        rollback()
        return {'error': 'No such product {0}: {1}'.format(e.product_id, e.product_name), 'product_id': e.product_id, 'product_name': e.product_name}
Beispiel #4
0
        return {
            'error':
            'No such product {0}: {1}'.format(e.product_id, e.product_name),
            'product_id':
            e.product_id,
            'product_name':
            e.product_name
        }
    except NonExistingVerenigingException, e:

        return {
            'error': 'No such vereniging {0}'.format(e.vereniging),
            'vereniging_id': e.vereniging
        }
    except NonExistingBudgetException, e:
        rollback()
        return {
            'error': 'No such budget {0}'.format(e.budget),
            'budget_id': e.budget
        }
    except IncompatibleBudgetException, e:
        rollback()
        return {
            'error':
            'Budget {0} is not compatible with vereniging {1}'.format(
                e.budget, e.vereniging),
            'budget_id':
            e.budget,
            'vereniging_id':
            e.vereniging
        }
Beispiel #5
0
	
	try:
		for factuur in facturen:
			start_transaction()
			verify_factuur(factuur)
			fac_id = process_factuur(factuur)
			policy.process_factuur(factuur, fac_id)
			commit()
	except NonExistingProductException, e:
		rollback()
		return {'error': 'No such product {0}: {1}'.format(e.product_id, e.product_name), 'product_id': e.product_id, 'product_name': e.product_name}
	except NonExistingVerenigingException, e:
		
		return {'error': 'No such vereniging {0}'.format(e.vereniging), 'vereniging_id': e.vereniging}
	except NonExistingBudgetException, e:
		rollback()
		return {'error': 'No such budget {0}'.format(e.budget), 'budget_id': e.budget}
	except IncompatibleBudgetException, e:
		rollback()
		return {'error': 'Budget {0} is not compatible with vereniging {1}'.format(e.budget, e.vereniging),
		        'budget_id': e.budget, 'vereniging_id': e.vereniging}
	except NoVoorraadException, e:
		rollback()
		return {'error': 'Not enough supplies of {0}'.format(e.product_id), 'product_id': e.product_id}
	
	return {'succes': len(facturen)}

# ------------------------------------------------------------------------------
# Process factuur
#  Do all processing of the factuur, ie:
#   - changes in voorraad