Пример #1
0
def add_voorraad(prd_id, stukprijs, btw, aantal):
    try:
        q = Query("""INSERT INTO tblvoorraad (vrd_prd_id, vrd_datum, vrd_aantal, vrd_resterend, vrd_stukprijs, vrd_btw)
                     VALUES (%s, CURDATE(), %s, %s, %s, %s)""")
        q.run((prd_id, aantal, aantal, stukprijs, btw))
        return q.lastrowid()
    except DatabaseError:
        raise InternalServerError
Пример #2
0
def process_factuur(factuur):
    # Gen. nones for possible non-existent values
    leverancier = None
    if 'leverancier' in factuur:
        leverancier = factuur['leverancier']
    vereniging = None
    saldo_basis = None
    if 'vereniging' in factuur:
        vereniging = factuur['vereniging']
        saldo_basis = query_vereniging(vereniging)[0]['basis_budget']
    saldo_speciaal = None
    if 'saldo_speciaal' in factuur:
        saldo_speciaal = factuur['saldo_speciaal']
    verantwoordelijke = None
    if 'verantwoordelijke' in factuur:
        verantwoordelijke = factuur['verantwoordelijke']

    # Generate next number for factuur
    try:
        q = Query("""SELECT MAX(fac_volgnummer)
		             FROM tblfactuur, tblboekjaar
		             WHERE fac_ver_id <=> %s AND fac_leverancier <=> %s 
		             AND fac_bkjr_id=bkjr_id AND bkjr_is_huidig = -1""")
        q.run((vereniging, leverancier))
        rows = q.rows()
    except DatabaseError:
        raise InternalServerError
    if rows[0][0] is None:
        number = 1
    else:
        number = rows[0][0] + 1

    factuur['volgnummer'] = number

    # Create factuur entry
    try:
        q = Query("""INSERT INTO tblfactuur (fac_ver_id, 
		                                     fac_leverancier,
		                                     fac_type,
		                                     fac_volgnummer,
		                                     fac_factuurdatum,
		                                     fac_leverdatum,
		                                     fac_verantwoordelijke,
		                                     fac_saldo_speciaal,
		                                     fac_saldo_basis,
		                                     fac_bkjr_id) 
		             VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s,
		                    (SELECT bkjr_id FROM tblboekjaar
		                     WHERE bkjr_is_huidig = -1))""")
        q.run((vereniging, leverancier, factuur['type'], number,
               factuur['factuurdatum'], factuur['leverdatum'],
               verantwoordelijke, saldo_speciaal, saldo_basis))
        fac_id = q.lastrowid()
    except DatabaseError:
        raise InternalServerError

    log.debug('factuur created with id: %d', fac_id)

    # Pocess lines (first inkoop then verkoop)
    factuur_bedrag = 0
    regels_processed = []
    for regel in factuur['regels']:
        if regel['aantal'] < 0:
            factuur_bedrag += process_factuur_regel(regel, fac_id,
                                                    regels_processed)
    for regel in factuur['regels']:
        if regel['aantal'] >= 0:
            factuur_bedrag += process_factuur_regel(regel, fac_id,
                                                    regels_processed)

    factuur['regels'] = regels_processed

    # Finish up
    if saldo_speciaal is not None:
        budget_speciaal = budget_query(saldo_speciaal)[0]
        mutatie_speciaal = max(
            factuur_bedrag,
            budget_speciaal['minimum'] - budget_speciaal['current'])
        mutatie_basis = factuur_bedrag - mutatie_speciaal
        budget_update(saldo_speciaal, mutatie_speciaal)
        budget_update(saldo_basis, mutatie_basis)
        budget_speciaal = budget_query(saldo_speciaal)[0]
        budget_basis = budget_query(saldo_basis)[0]
        factuur['saldo_basis_na'] = budget_basis['current']
        factuur['saldo_speciaal_na'] = budget_speciaal['current']
        try:
            q = Query("""UPDATE tblfactuur SET saldo_speciaal_na = %s
			                                   saldo_basis_na = %s
			                               WHERE fac_id = %s""")
            q.run(
                (budget_speciaal['current'], budget_basis['current'], fac_id))
        except DatabaseError:
            raise InternalServerError
    elif saldo_basis is not None:
        budget_update(saldo_basis, factuur_bedrag)
        budget_basis = budget_query(saldo_basis)[0]
        factuur['saldo_basis_na'] = budget_basis['current']
        try:
            q = Query("""UPDATE tblfactuur SET fac_saldo_basis_na = %s
			                               WHERE fac_id = %s""")
            q.run((budget_basis['current'], fac_id))
        except DatabaseError:
            raise InternalServerError

    return fac_id
Пример #3
0
def process_factuur(factuur):
	# Gen. nones for possible non-existent values
	leverancier = None
	if 'leverancier' in factuur:
		leverancier = factuur['leverancier']
	vereniging = None
	saldo_basis = None
	if 'vereniging' in factuur:
		vereniging = factuur['vereniging']
		saldo_basis=query_vereniging(vereniging)[0]['basis_budget']
	saldo_speciaal = None
	if 'saldo_speciaal' in factuur:
		saldo_speciaal = factuur['saldo_speciaal']
	verantwoordelijke = None
	if 'verantwoordelijke' in factuur:
		verantwoordelijke = factuur['verantwoordelijke']
	
	# Generate next number for factuur
	try:
		q = Query("""SELECT MAX(fac_volgnummer)
		             FROM tblfactuur, tblboekjaar
		             WHERE fac_ver_id <=> %s AND fac_leverancier <=> %s 
		             AND fac_bkjr_id=bkjr_id AND bkjr_is_huidig = -1""")
		q.run((vereniging, leverancier))
		rows = q.rows()
	except DatabaseError:
		raise InternalServerError
	if rows[0][0] is None:
		number = 1
	else:
		number = rows[0][0] + 1
	
	factuur['volgnummer'] = number
	
	# Create factuur entry
	try:
		q = Query("""INSERT INTO tblfactuur (fac_ver_id, 
		                                     fac_leverancier,
		                                     fac_type,
		                                     fac_volgnummer,
		                                     fac_factuurdatum,
		                                     fac_leverdatum,
		                                     fac_verantwoordelijke,
		                                     fac_saldo_speciaal,
		                                     fac_saldo_basis,
		                                     fac_bkjr_id) 
		             VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s,
		                    (SELECT bkjr_id FROM tblboekjaar
		                     WHERE bkjr_is_huidig = -1))""")
		q.run((vereniging,
		       leverancier,
		       factuur['type'],
		       number,
		       factuur['factuurdatum'],
		       factuur['leverdatum'],
		       verantwoordelijke,
		       saldo_speciaal,
		       saldo_basis));
		fac_id = q.lastrowid()
	except DatabaseError:
		raise InternalServerError
	
	log.debug('factuur created with id: %d', fac_id)
	
	# Pocess lines (first inkoop then verkoop)
	factuur_bedrag = 0
	regels_processed = []
	for regel in factuur['regels']:
		if regel['aantal'] < 0:
			factuur_bedrag += process_factuur_regel(regel, fac_id, regels_processed)
	for regel in factuur['regels']:
		if regel['aantal'] >= 0:
			factuur_bedrag += process_factuur_regel(regel, fac_id, regels_processed)
	
	factuur['regels'] = regels_processed
	
	# Finish up
	if saldo_speciaal is not None:
		budget_speciaal = budget_query(saldo_speciaal)[0]
		mutatie_speciaal = max(factuur_bedrag, 
		               budget_speciaal['minimum'] - budget_speciaal['current'])
		mutatie_basis = factuur_bedrag - mutatie_speciaal
		budget_update(saldo_speciaal, mutatie_speciaal)
		budget_update(saldo_basis, mutatie_basis)
		budget_speciaal = budget_query(saldo_speciaal)[0]
		budget_basis = budget_query(saldo_basis)[0]
		factuur['saldo_basis_na'] = budget_basis['current']
		factuur['saldo_speciaal_na'] = budget_speciaal['current']
		try:
			q = Query("""UPDATE tblfactuur SET saldo_speciaal_na = %s
			                                   saldo_basis_na = %s
			                               WHERE fac_id = %s""")
			q.run((budget_speciaal['current'], budget_basis['current'], fac_id))
		except DatabaseError:
			raise InternalServerError
	elif saldo_basis is not None:
		budget_update(saldo_basis, factuur_bedrag)
		budget_basis = budget_query(saldo_basis)[0]
		factuur['saldo_basis_na'] = budget_basis['current']
		try:
			q = Query("""UPDATE tblfactuur SET fac_saldo_basis_na = %s
			                               WHERE fac_id = %s""")
			q.run((budget_basis['current'], fac_id))
		except DatabaseError:
			raise InternalServerError
	
	return fac_id