kassa work correct

This commit is contained in:
Gitea
2022-01-20 17:56:38 +09:00
parent 831bb26887
commit 11d3d2644f
7 changed files with 57 additions and 30 deletions

View File

@ -1,3 +1,4 @@
from lib2to3.pgen2 import token
from time import sleep
from typing import Dict, List, Tuple
from sqlalchemy.ext.declarative import declarative_base
@ -7,8 +8,10 @@ from sqlalchemy.orm import query, sessionmaker
from sqlalchemy.types import BigInteger, Integer, String, Numeric, Boolean, DateTime
from sqlalchemy.sql.sqltypes import DateTime
from sqlalchemy import desc, cast, case, func
import schemas
import models
import kassa.schemas as schemas
import kassa.models as models
from kassa.databases import SessionLocal
from kassa.atol import Atol
import datetime
Base = declarative_base()
@ -163,7 +166,8 @@ def get_payments(data: List):
def get_token(db: Session, db_dict: DBEngine):
token_dict = db_dict.get_table("vAtolToken")
return token_dict.get("token")
rows = db.query(token_dict).first()
return dict(rows).get("token")
"""
@ -265,24 +269,39 @@ def get_vat(vat: str):
def add_atol(db: Session, engine: DBEngine, atol: Dict):
aa = engine.get_table("Atol")
atol.pop("is_taken", None)
a = aa.insert().values(atol)
db.execute(a)
db.commit()
def clear_dict(d):
if d is None:
return None
elif isinstance(d, list):
return list(filter(lambda x: x is not None, map(clear_dict, d)))
elif not isinstance(d, dict):
return d
else:
r = dict(
filter(lambda x: x[1] is not None,
map(lambda x: (x[0], clear_dict(x[1])),
d.items())))
if not bool(r):
return None
return r
def add_doc(sell: schemas.Sell, is_refund):
from databases import SessionLocal
from atol import Atol
atol_model = Atol
def add_doc(sell: schemas.Sell, is_refund, token):
atol_model = Atol(token)
session = SessionLocal()
a = Atol.set_sell(atol_model, sell, is_refund)
check = models.Atol(**a)
a = atol_model.set_sell(clear_dict(sell.dict()), is_refund)
check = models.Atol(schemas.AtolSell(**a))
check.external_id = sell.external_id
session.add(check)
session.commit()
session.close()
def get_payment():
def get_main_payment():
server = 'Sanctuary'
user = 'sa'
password = '159357'
@ -305,15 +324,15 @@ def get_payment():
}
add_atol(session, db, atol)
update_payment_details(session, db, payment)
return sell, payment.get("is_refund")
return False, False
return sell, payment.get("is_refund"), get_token(session, db_dicts)
return False, False, False
if __name__ == "__main__":
def main():
while True:
payment, is_refund = get_payment()
payment, is_refund, token = get_main_payment()
if payment == False:
break
sleep(1)
add_doc(sell=payment, is_refund=is_refund)
add_doc(sell=payment, is_refund=is_refund, token = token)
break