async added

This commit is contained in:
Gitea
2022-05-16 17:59:57 +09:00
parent 78be259157
commit 65009a190e
30 changed files with 115 additions and 103 deletions

View File

@ -18,6 +18,7 @@ import datetime
Base = declarative_base()
metadata = Base.metadata
ignore_list = []
class PaymentDetails(Base):
__tablename__ = "payment_details"
@ -72,7 +73,7 @@ def get_payment_details(db: Session, engine_class: DBEngine):
pd = engine_class.get_table('payment_details')
year, month, external_id, is_refund, is_taken = engine_class.get_columns(
'payment_details', ['year','month','external_id', 'is_refund', 'is_taken'])
query = db.query(pd).filter(is_taken == False).with_entities(
query = db.query(pd).filter(is_taken == False).filter(external_id.notin_(ignore_list)).with_entities(
external_id, is_refund, is_taken).distinct().order_by(year, month,external_id, desc(is_refund))
return query
@ -116,6 +117,7 @@ def get_payment_details_items(db: Session, engine_class: DBEngine, dict_engine:
vats = dict_engine.get_table('payment_object_vat_type')
agents = dict_engine.get_table('agents')
company = dict_engine.get_table('providers')
payment_type = dict_engine.get_table('payment_type')
query = db.query(
payment.c.external_id.label('external_id'),
services.c.sname.label('name'),
@ -126,11 +128,12 @@ def get_payment_details_items(db: Session, engine_class: DBEngine, dict_engine:
payment.c.phone.label('phone'),
company.c.inn,
payment.c.summa.label('sum'),
case(
(payment.c.payment_method.in_([5, 6, 7]), 3),
(payment.c.payment_method.in_([1, 2, 3]), 2),
(payment.c.payment_method == 4, 1)
).label("payment_group"),
#case(
# (payment.c.payment_method.in_([5, 6, 7]), 3),
# (payment.c.payment_method.in_([1, 2, 3]), 2),
# (payment.c.payment_method == 4, 1)
#).label("payment_group"),
payment_type.c["name"].label("payment_group"),
payment_method.c["name"].label('payment_method'),
payment_object.c["name"].label('payment_object'),
vats.c["name"].label("vat"),
@ -146,7 +149,8 @@ def get_payment_details_items(db: Session, engine_class: DBEngine, dict_engine:
.join(payment_object, payment.c.payment_object == payment_object.c["id"])\
.join(vats, payment.c.vat == vats.c["id"])\
.join(company, payment.c.id_company == company.c["id_provider"])\
.join(agents, payment.c.supplier_info == agents.c["id_agent"], isouter=True)
.join(agents, payment.c.supplier_info == agents.c["id_agent"], isouter=True)\
.join(payment_type, payment.c.payments == payment_type.c["id"])
return query