push
This commit is contained in:
50
app/models/catalog.py
Normal file
50
app/models/catalog.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from app.extensions import db
|
||||
from app.models.base import TimestampMixin
|
||||
|
||||
|
||||
class Customer(TimestampMixin, db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False, index=True)
|
||||
name = db.Column(db.String(255), nullable=False)
|
||||
tax_id = db.Column(db.String(32), index=True, default='')
|
||||
email = db.Column(db.String(255), default='')
|
||||
address = db.Column(db.String(255), default='')
|
||||
regon = db.Column(db.String(32), default='')
|
||||
is_active = db.Column(db.Boolean, default=True, nullable=False)
|
||||
|
||||
company = db.relationship('Company', backref=db.backref('customers', lazy='dynamic', cascade='all, delete-orphan'))
|
||||
|
||||
__table_args__ = (db.UniqueConstraint('company_id', 'name', name='uq_customer_company_name'),)
|
||||
|
||||
|
||||
class Product(TimestampMixin, db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False, index=True)
|
||||
name = db.Column(db.String(255), nullable=False)
|
||||
sku = db.Column(db.String(64), default='')
|
||||
unit = db.Column(db.String(16), default='szt.')
|
||||
net_price = db.Column(db.Numeric(12, 2), nullable=False, default=0)
|
||||
vat_rate = db.Column(db.Numeric(5, 2), nullable=False, default=23)
|
||||
split_payment_default = db.Column(db.Boolean, default=False, nullable=False)
|
||||
is_active = db.Column(db.Boolean, default=True, nullable=False)
|
||||
|
||||
company = db.relationship('Company', backref=db.backref('products', lazy='dynamic', cascade='all, delete-orphan'))
|
||||
|
||||
__table_args__ = (db.UniqueConstraint('company_id', 'name', name='uq_product_company_name'),)
|
||||
|
||||
|
||||
class InvoiceLine(TimestampMixin, db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
invoice_id = db.Column(db.Integer, db.ForeignKey('invoice.id'), nullable=False, index=True)
|
||||
product_id = db.Column(db.Integer, db.ForeignKey('product.id'), index=True)
|
||||
description = db.Column(db.String(255), nullable=False)
|
||||
quantity = db.Column(db.Numeric(12, 2), nullable=False, default=1)
|
||||
unit = db.Column(db.String(16), default='szt.')
|
||||
unit_net = db.Column(db.Numeric(12, 2), nullable=False, default=0)
|
||||
vat_rate = db.Column(db.Numeric(5, 2), nullable=False, default=23)
|
||||
net_amount = db.Column(db.Numeric(12, 2), nullable=False, default=0)
|
||||
vat_amount = db.Column(db.Numeric(12, 2), nullable=False, default=0)
|
||||
gross_amount = db.Column(db.Numeric(12, 2), nullable=False, default=0)
|
||||
|
||||
invoice = db.relationship('Invoice', backref=db.backref('lines', lazy='dynamic', cascade='all, delete-orphan'))
|
||||
product = db.relationship('Product')
|
||||
Reference in New Issue
Block a user