-
Notifications
You must be signed in to change notification settings - Fork 0
/
warehouseDB_ORM.py
144 lines (110 loc) · 4.64 KB
/
warehouseDB_ORM.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/usr/bin/env python
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.orm import relationship
from flask import Flask, render_template, request, redirect, url_for, session, json
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
import click
app = Flask(__name__)
app.config.from_pyfile('config.cfg')
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True)
login = db.Column(db.String(80), unique=True)
password = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
username = db.Column(db.String(80), unique=True)
applications_user = db.relationship('Application_receipt', backref='applic_user', lazy='dynamic')
def __init__(self, login, password, email, username):
self.login = login
self.password = password
self.email = email
self.username = username
def __repr__(self):
return '<User %r>' % self.username
class Complect(db.Model):
__tablename__ = 'complect'
id = db.Column(db.INTEGER, primary_key=True)
applications_receipt = db.relationship('Application_receipt', backref='applic', lazy='dynamic')
fason_id = db.Column(db.INTEGER, db.ForeignKey('fason.id'))
brands_id = db.Column(db.INTEGER,db.ForeignKey('brand.id'))
models_id = db.Column(db.INTEGER, db.ForeignKey('model.id'))
def __init__(self,fason_id,brands_id,models_id):
self.fason_id = fason_id
self.brands_id = brands_id
self.models_id = models_id
class Category(db.Model):
__tablename__ = 'category'
id = db.Column(db.INTEGER, primary_key=True)
name = db.Column(db.String(45), unique=True)
price = db.Column(db.INTEGER)
fasons = db.relationship('Fason', backref='fason', lazy='dynamic')
def __init__(self,name,price):
self.name = name
self.price = price
class Fason(db.Model):
__tablename__= 'fason'
id = db.Column(db.INTEGER, primary_key=True)
name = db.Column(db.String(45))
categories_id = db.Column(db.INTEGER, db.ForeignKey('category.id'))
complects = db.relationship('Complect', backref='complect1', lazy='dynamic')
def __init__(self,name,categories_id):
self.name = name
self.categories_id = categories_id
class Brand(db.Model):
__tablename__ = 'brand'
id = db.Column(db.INTEGER, primary_key=True)
name = db.Column(db.String(45))
complects = db.relationship('Complect', backref='complect2', lazy='dynamic')
def __init__(self,name):
self.name = name
class Model(db.Model):
__tablename__ = 'model'
id = db.Column(db.INTEGER, primary_key=True)
name = db.Column(db.String(45))
complects = db.relationship('Complect', backref='complect3', lazy='dynamic')
def __init__(self,name):
self.name = name
class Application_receipt(db.Model):
__tablename__ = 'application_receipt'
id = db.Column(db.INTEGER, primary_key=True)
complect_id = db.Column(db.INTEGER, db.ForeignKey('complect.id'))
quantity = db.Column(db.INTEGER)
date_adoption = db.Column(db.Date)
date_issue = db.Column(db.Date)
provider_id = db.Column(db.INTEGER,db.ForeignKey('user.id'))
price = db.Column(db.INTEGER)
confirmed = db.Column(db.BOOLEAN)
def __init__(self,complect_id, quantity,date_adoption,date_issue, provider_id,price,confirmed):
self.complect_id = complect_id
self.quantity = quantity
self.date_adoption = date_adoption
self.date_issue = date_issue
self.provider_id = provider_id
self.price = price
self.confirmed = confirmed
class Sklad(db.Model):
__tablename__ = 'sklad'
id = db.Column(db.INTEGER, primary_key = True)
application_id = db.Column(db.INTEGER, db.ForeignKey('application_receipt.id'))
issued = db.Column(db.BOOLEAN, default=False)
actual_date_of_issue = db.Column(db.Date)
days_in_warehouse = db.Column(db.INTEGER)
def __init__(self,application_id,issued,actual_date_of_issue,days_in_warehouse):
self.application_id = application_id
self.issued = issued
self.actual_date_of_issue = actual_date_of_issue
self.days_in_warehouse = days_in_warehouse
if __name__ == '__main__':
manager.run()
#db.create_all()
#admin = User('Ostap39','i44easy99lab61','[email protected]','dydyaStosa7')
#db.create_all() # In case user table doesn't exists already. Else remove it.
#db.session.add(admin)
#db.session.commit() # This is needed to write the changes to database
#User.query.all()
#User.query.filter_by(username='admin').first()