def get_budget_raw(value, request=None, year=None): year = year if year else get_selected_year() kind = BookingKind.get(value) budget = (Budget.query().filter(Budget.booking_kind == kind).filter( Budget.accounting_year == year).one_or_none()) if budget: return [budget] return []
def get_budget_sum(value, request=None, year=None): year = year if year else get_selected_year() kind = BookingKind.get(value) if kind.shorttitle == 'ENAB': kind = BookingKind.query().filter_by(shorttitle='ENAN').one() query = (Booking.query().filter(Booking.kind == kind).filter( Booking.accounting_year == year)) return 0 - sum(b.value for b in query) return sum(b.value for b in get_budget_raw(value, request, year))
def get_incoming_raw(value, request=None, year=None): from sqlalchemy.sql.expression import false year = year if year else get_selected_year() kind = BookingKind.get(value) query = (Booking.query().join(Member).filter(Booking.kind == kind).filter( Booking.accounting_year == year).filter( Booking.ignore_in_reporting == false()).filter( Booking.is_splitted == false()).filter( Booking.banking_account_id == 1).filter( Booking.booking_text != 'SAMMEL-LS-EINZUG').filter( ~Booking.purpose.like('%ANZAHL 00000%'))) sammler = (SEPASammlerEntry.query().join(SEPASammler).join(Member).filter( SEPASammler.kind == kind).filter( SEPASammlerEntry.ignore_in_reporting == false()).filter( SEPASammler.accounting_year == year)) result = query.all() + sammler.all() if kind.shorttitle == 'ENAB': result += (get_incoming_raw( BookingKind.query().filter_by(shorttitle='ENA1').one().id, request, year) + get_incoming_raw( BookingKind.query().filter_by(shorttitle='ENA2').one().id, request, year)) return result