P5-4450 save Pwinty order data
This commit is contained in:
@@ -5,3 +5,4 @@ from .category import Category
|
||||
from .contract_customer import ContractCustomer
|
||||
from .inquiry import Inquiry
|
||||
from .product import Material, Product
|
||||
from .order import Order, OrderField, OrderRow, OrderRowField, OrderRowDetail, OrderOrderField
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
# coding=UTF-8
|
||||
|
||||
from datetime import datetime
|
||||
from api.extensions import db
|
||||
from flask_sqlalchemy import BaseQuery
|
||||
|
||||
|
||||
class Order(db.Model):
|
||||
__tablename__ = "order-orders"
|
||||
id = db.Column("orderid", db.Integer, primary_key=True)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
fields = db.relationship("OrderOrderField", backref="order", lazy="dynamic")
|
||||
rows = db.relationship("OrderRow", backref="order", lazy="dynamic")
|
||||
|
||||
|
||||
class OrderFieldQuery(BaseQuery):
|
||||
def by_name(self, name):
|
||||
return self.filter(
|
||||
OrderField.name==name
|
||||
).first()
|
||||
|
||||
|
||||
class OrderField(db.Model):
|
||||
__tablename__ = "order-fields"
|
||||
|
||||
query_class = OrderFieldQuery
|
||||
|
||||
id = db.Column("fieldid", db.Integer, primary_key=True)
|
||||
name = db.Column(db.String)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
|
||||
|
||||
class OrderOrderField(db.Model):
|
||||
__tablename__ = "order-orders_fields"
|
||||
|
||||
orderid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-orders.orderid"), nullable=False
|
||||
)
|
||||
fieldid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-fields.fieldid"), nullable=False
|
||||
)
|
||||
value = db.Column(db.String, nullable=False)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
field = db.relationship("OrderField", uselist=False)
|
||||
|
||||
__table_args__ = (db.PrimaryKeyConstraint(orderid, fieldid),)
|
||||
|
||||
def to_json(self):
|
||||
return {
|
||||
"orderid": self.orderid,
|
||||
"fieldid": self.fieldid,
|
||||
"value": self.value,
|
||||
"inserted": self.inserted
|
||||
}
|
||||
|
||||
|
||||
class OrderRow(db.Model):
|
||||
__tablename__ = "order-rows"
|
||||
|
||||
id = db.Column("rowid", db.Integer, primary_key=True)
|
||||
orderid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-orders.orderid"), nullable=False
|
||||
)
|
||||
details = db.relationship("OrderRowDetail", backref="OrderRow", lazy="dynamic")
|
||||
|
||||
|
||||
class OrderRowFieldQuery(BaseQuery):
|
||||
def by_name(self, name):
|
||||
return self.filter(
|
||||
OrderRowField.name==name
|
||||
).first()
|
||||
|
||||
class OrderRowField(db.Model):
|
||||
__tablename__ = "order-row_fields"
|
||||
|
||||
query_class = OrderRowFieldQuery
|
||||
|
||||
id = db.Column("fieldid", db.Integer, primary_key=True, nullable=False)
|
||||
name = db.Column(db.String)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
|
||||
class OrderRowDetail(db.Model):
|
||||
__tablename__ = "order-rows_details"
|
||||
|
||||
rowid = db.Column(db.Integer, db.ForeignKey("order-rows.rowid"), nullable=False)
|
||||
fieldid = db.Column(
|
||||
db.Integer, db.ForeignKey("order-row_fields.fieldid"), nullable=False
|
||||
)
|
||||
value = db.Column(db.String)
|
||||
inserted = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
updated = db.Column(db.DateTime)
|
||||
|
||||
field = db.relationship("OrderRowField", uselist=False)
|
||||
|
||||
__table_args__ = (db.PrimaryKeyConstraint(rowid, fieldid),)
|
||||
|
||||
def to_json(self):
|
||||
return {
|
||||
"rowid": self.rowid,
|
||||
"fieldid": self.fieldid,
|
||||
"value": self.value,
|
||||
"inserted": self.inserted,
|
||||
}
|
||||
Reference in New Issue
Block a user