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
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
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