kassa work correct
This commit is contained in:
@ -39,7 +39,9 @@ class Atol:
|
||||
|
||||
def set_sell(self, reciept, is_refund):
|
||||
func = '/sell' if is_refund == 0 else '/sell_refund'
|
||||
print(reciept)
|
||||
s = self.get_request('post', self.group_id+func, reciept)
|
||||
print(s)
|
||||
return s
|
||||
|
||||
def get_reciepts(self, uuid):
|
||||
|
@ -1,7 +1,6 @@
|
||||
from ast import Dict
|
||||
from sqlalchemy.orm import Session
|
||||
import schemas
|
||||
import models
|
||||
import kassa.schemas as schemas
|
||||
import kassa.models as models
|
||||
|
||||
|
||||
def create_doc(db: Session, doc: schemas.Doc, external_id: str = None):
|
||||
|
@ -1,8 +1,8 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
import databases
|
||||
import cruds.doc as doc
|
||||
import schemas
|
||||
import models
|
||||
import kassa.databases as databases
|
||||
import kassa.cruds.doc as doc
|
||||
import kassa.schemas as schemas
|
||||
import kassa.models as models
|
||||
|
||||
models.Base.metadata.create_all(databases.engine)
|
||||
router = APIRouter()
|
||||
|
@ -1,7 +1,7 @@
|
||||
from sqlalchemy.sql.schema import ForeignKey
|
||||
from sqlalchemy import Column, Integer, String, Numeric, DateTime, Boolean
|
||||
from sqlalchemy import Column, Integer, String, Numeric, DateTime, Boolean, BigInteger
|
||||
from sqlalchemy.orm import relationship
|
||||
from databases import Base
|
||||
from kassa.databases import Base
|
||||
|
||||
|
||||
class Payment(Base):
|
||||
@ -56,15 +56,15 @@ class Payload(Base):
|
||||
__tablename__ = 'payloads'
|
||||
|
||||
external_id = Column('external_id', String(128), primary_key=True)
|
||||
fiscal_receipt_number = Column('fiscal_receipt_number', Integer)
|
||||
shift_number = Column('shift_number', Integer)
|
||||
fiscal_receipt_number = Column('fiscal_receipt_number', BigInteger)
|
||||
shift_number = Column('shift_number', BigInteger)
|
||||
receipt_datetime = Column('receipt_datetime', String(length=128))
|
||||
total = Column('total', Numeric(12, 2))
|
||||
fn_number = Column('fn_number', String(length=128))
|
||||
ecr_registration_number = Column(
|
||||
'ecr_registration_number', String(length=128))
|
||||
fiscal_document_number = Column('fiscal_document_number', Integer)
|
||||
fiscal_document_attribute = Column('fiscal_document_attribute', Integer)
|
||||
fiscal_document_number = Column('fiscal_document_number', BigInteger)
|
||||
fiscal_document_attribute = Column('fiscal_document_attribute', BigInteger)
|
||||
fns_site = Column('fns_site', String(length=128))
|
||||
|
||||
|
||||
|
51
kassa/new.py
51
kassa/new.py
@ -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
|
||||
|
@ -207,6 +207,13 @@ class Sell(BaseModel):
|
||||
class Config:
|
||||
arbitrary_types_allowed = True
|
||||
|
||||
class AtolSell(BaseModel):
|
||||
uuid: str
|
||||
timestamp: str
|
||||
status: Optional[str] = None
|
||||
error: Error = None
|
||||
class Config:
|
||||
orm_mode = True
|
||||
|
||||
class SellCreate(Sell):
|
||||
is_refund: bool
|
||||
|
Reference in New Issue
Block a user