saldo
This commit is contained in:
parent
064a0bb73d
commit
c4b5e5552a
@ -1,4 +1,6 @@
|
||||
from dbpool import getConnection, getOne, getMany
|
||||
import datetime
|
||||
import decimal
|
||||
|
||||
def get_zahlungen_by_mieter(mieter_id):
|
||||
return getMany("""
|
||||
@ -15,7 +17,7 @@ SELECT id,
|
||||
def get_zahlung(id):
|
||||
return getOne("""
|
||||
SELECT id,
|
||||
mieter
|
||||
mieter,
|
||||
datum_ist,
|
||||
datum_soll
|
||||
betrag,
|
||||
@ -28,7 +30,7 @@ SELECT id,
|
||||
def get_forderungen_by_mieter(mieter_id):
|
||||
return getMany("""
|
||||
SELECT id,
|
||||
mieter
|
||||
mieter,
|
||||
datum,
|
||||
betrag,
|
||||
kommentar,
|
||||
@ -40,7 +42,7 @@ SELECT id,
|
||||
def get_forderung(id):
|
||||
return getOne("""
|
||||
SELECT id,
|
||||
mieter
|
||||
mieter,
|
||||
datum,
|
||||
betrag,
|
||||
kommentar,
|
||||
@ -50,6 +52,8 @@ SELECT id,
|
||||
""", [ id ], "Forderung")
|
||||
|
||||
def get_zahlungforderung_by_mieter_and_year(mieter_id, year):
|
||||
if year == 0:
|
||||
year = datetime.datetime.now().year
|
||||
start_date = "{}-01-01".format(year)
|
||||
end_date = "{}-12-31".format(year)
|
||||
return getMany("""
|
||||
@ -65,4 +69,38 @@ SELECT
|
||||
FROM zahlung_forderung
|
||||
WHERE mieter = ? AND
|
||||
datum_soll BETWEEN ? AND ?
|
||||
""", [mieter_id, start_date, end_date], "ZahlungForderung")
|
||||
""", [mieter_id, start_date, end_date], "ZahlungForderung")
|
||||
|
||||
def get_saldo_by_mieter_and_year(mieter_id, year):
|
||||
if year == 0:
|
||||
year = datetime.datetime.now().year
|
||||
start_date = "{}-01-01".format(year)
|
||||
end_date = "{}-12-31".format(year)
|
||||
sumZahlungen = getOne("""
|
||||
SELECT
|
||||
ROUND(sum(betrag), 2) as sum
|
||||
FROM zahlung
|
||||
WHERE mieter = ? AND
|
||||
datum_soll BETWEEN ? AND ?
|
||||
""", [mieter_id, start_date, end_date], "SumZahlung")
|
||||
sumForderungen = getOne("""
|
||||
SELECT
|
||||
ROUND(sum(betrag), 2) as sum
|
||||
FROM forderung
|
||||
WHERE mieter = ? AND
|
||||
datum BETWEEN ? AND ?
|
||||
""", [mieter_id, start_date, end_date], "SumZahlung")
|
||||
print("Zahlung: {}, Forderung: {}".format(sumZahlungen, sumForderungen))
|
||||
decimal.getcontext().prec = 2
|
||||
sumZ = sumZahlungen["sum"]
|
||||
if not sumZ:
|
||||
sumZ = 0
|
||||
sumF = sumForderungen["sum"]
|
||||
if not sumF:
|
||||
sumF = 0
|
||||
saldo = sumZ - sumF
|
||||
return {
|
||||
"forderungen": float(sumF),
|
||||
"saldo": float(saldo),
|
||||
"zahlungen": float(sumZ)
|
||||
}
|
33
swagger.yaml
33
swagger.yaml
@ -235,6 +235,29 @@ paths:
|
||||
description: No ZahlungForderung available
|
||||
500:
|
||||
description: Some server error
|
||||
/hv/mieter/{mieter_id}/saldo/{year}:
|
||||
get:
|
||||
tags: [ "Mieter", "Zahlung" ]
|
||||
operationId: ZahlungenForderungen.get_saldo_by_mieter_and_year
|
||||
summary: Returns sum of Zahlungen for a given Mieter and a given year
|
||||
parameters:
|
||||
- name: mieter_id
|
||||
in: path
|
||||
type: integer
|
||||
required: true
|
||||
- name: year
|
||||
in: path
|
||||
type: integer
|
||||
required: true
|
||||
responses:
|
||||
200:
|
||||
description: Successful response
|
||||
schema:
|
||||
$ref: '#/definitions/Saldo'
|
||||
404:
|
||||
description: Neither Forderungen nor Zahlungen available
|
||||
500:
|
||||
description: Some server error
|
||||
|
||||
|
||||
definitions:
|
||||
@ -346,3 +369,13 @@ definitions:
|
||||
type: string
|
||||
mieter:
|
||||
type: number
|
||||
Saldo:
|
||||
description: Saldo type
|
||||
type: object
|
||||
properties:
|
||||
forderungen:
|
||||
type: number
|
||||
zahlungen:
|
||||
type: number
|
||||
saldo:
|
||||
type: number
|
||||
|
Loading…
x
Reference in New Issue
Block a user