class Cliente(db.Model): __tablename__ = "cliente" id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(30)) historico_status = db.Column(db.String(100)) observacoes = db.Column(db.String) email = db.Column(db.String) telefone = db.Column(db.Integer) endereco = db.Column(db.String) status = db.Column(db.String) datainsercao = db.Column(db.String) prospeccao = db.Column(db.String) def __init__(self, nome, email, telefone, endereco, status, datainsercao, prospeccao): self.nome = nome self.email = email self.telefone = telefone self.endereco = endereco self.status = status self.datainsercao = datainsercao self.prospeccao = prospeccao self.historico_status = "--------,--------,--------,--------,--------,--------" self.observacoes = "Sem comentarios Ainda!"
class Nota(db.Model): __tablename__ = "nota" id = db.Column(db.Integer, primary_key=True) nota = db.Column(db.Integer) def __init__(self, nota): self.nota = nota
class Touch(db.Model): """Touch model""" id = db.Column(db.INTEGER, primary_key=True) description = db.Column(db.Text) date = db.Column(db.DATETIME, nullable=False, default=datetime.utcnow) lead_id = db.Column(db.INTEGER, db.ForeignKey('lead.id'), nullable=False) def __repr__(self): return "Touch({}, {})".format(self.description[0:20], self.date)
class User(db.Model, UserMixin): """User/Admin model""" id = db.Column(db.INTEGER, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), unique=True, nullable=False) def __repr__(self): return "User({}, {})".format(self.username, self.email)
class Lead(db.Model): """Lead model""" id = db.Column(db.INTEGER, primary_key=True) name = db.Column(db.String(50)) company = db.Column(db.String(50)) phone = db.Column(db.String(20)) email = db.Column(db.String(120), unique=True) touches = db.relationship('Touch', backref='author') def __repr__(self): return "Lead({}, {})".format(self.name, self.email)
class ClientFamily(db.Model): """ Таблица родственников клиента """ id = db.Column(db.Integer, primary_key=True) client_family_name = db.Column(db.String, index=True) client_family_birthday = db.Column(db.DateTime, index=True) client_id = db.Column(db.Integer, db.ForeignKey('client.id')) def __repr__(self): return f'<Семья клиента: {self.client_family_name}>'
class Currency(db.Model, BaseModel, RootModel): __tablename__ = "currencies" name = db.Column( db.String(3), index=True, unique=True, nullable=False, ) value_usd = db.Column(db.Float(), default=1.0) deals = db.relationship("Deal", backref="currency") def __str__(self): return self.name
class Phone(db.Model, BaseModel): __tablename__ = "phones" telephone = db.Column( db.String(255), index=True, nullable=False, ) user_id = db.Column(db.String, db.ForeignKey("users.id")) contact_id = db.Column(db.String, db.ForeignKey("contacts.id")) company_id = db.Column(db.String, db.ForeignKey("companies.id")) def __str__(self): return self.telephone
class Opportunity(db.Model): '''存放销售机会相关信息 ''' __tablename__ = 'opportunity' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100)) source = db.Column(db.String(200), default="") next_contacts = db.Column(db.String(100)) next_date = db.Column(db.DateTime, default=datetime.now()) created = db.Column(db.DateTime, default=datetime.now()) updated = db.Column(db.DateTime, default=datetime.now()) def __init__(self, name, source, next_contacts): self.name = name self.source = source self.next_contacts = next_contacts self.next_date = datetime.now() + timedelta(days=3) self.created = datetime.now() self.updated = datetime.now() def update(self): self.updated = datetime.now() db.session.commit() def save(self): db.session.add(self) db.session.commit() def delete(self): db.session.delete(self) db.session.commit()
class Product(db.Model): '''存放产品相关信息 ''' __tablename__ = 'product' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100)) description = db.Column(db.String(200), default="") owner = db.Column(db.String(100)) modified_by = db.Column(db.String(100)) created = db.Column(db.DateTime, default=datetime.now()) updated = db.Column(db.DateTime, default=datetime.now()) def __init__(self, name, description, owner, modified_by): self.name = name self.description = description self.owner = owner self.modified_by = modified_by self.created = datetime.now() self.updated = datetime.now() def update(self): self.updated = datetime.now() db.session.commit() def save(self): db.session.add(self) db.session.commit() def delete(self): db.session.delete(self) db.session.commit()
class User(db.Model, UserMixin): """ Таблица зарегестрированных пользователей """ id = db.Column(db.Integer, primary_key=True) user = db.Column(db.String(64), index=True) email = db.Column(db.String(64), index=True, unique=True) password_hash = db.Column(db.String(128)) created_on = db.Column(db.DateTime, default=datetime.utcnow) clients = db.relationship('Client', backref='own_client', lazy='dynamic') def __repr__(self): return f"<User: {self.user}>" def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password)
class Email(db.Model, BaseModel): __tablename__ = "emails" email = db.Column( db.String(255), index=True, nullable=False, ) user_id = db.Column(db.String, db.ForeignKey("users.id")) contact_id = db.Column(db.String, db.ForeignKey("contacts.id")) organization_id = db.Column(db.String, db.ForeignKey("organizations.id")) company_id = db.Column(db.String, db.ForeignKey("companies.id")) def __str__(self): return self.email
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default="default.jpeg") password = db.Column(db.String(20), nullable=False) pos_id = db.Column(db.Integer, unique=True, nullable=False) hisaab = db.relationship("Hisaab", backref="fos", lazy="dynamic") def get_reset_token(self, expires_sec=1800): s = Serializer(app.config["SECRET_KEY"], expires_sec) return s.dumps({"user_id": self.id}).decode("utf-8") @staticmethod def verify_reset_token(token): s = Serializer(app.config["SECRET_KEY"]) try: user_id = s.loads(token)["user_id"] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.pos_id}')"
class Admin(db.Model, UserMixin): '''管理员表 ''' __tablename__ = 'admin' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(200), index=True) email = db.Column(db.String(200), index=True) phone = db.Column(db.String(200)) password = db.Column(db.String(200)) status = db.Column(db.String(10), default=1) last_login = db.Column(db.DateTime, default=datetime.now()) created = db.Column(db.DateTime, default=datetime.now()) updated = db.Column(db.DateTime, default=datetime.now()) def __init__(self, name, email, password): self.name = name self.email = email self.set_password(password) self.created = datetime.now() self.updated = datetime.now() def __repr__(self): return '<User %r>' % self.name def update(self): self.updated = datetime.now() db.session.commit() def save(self): db.session.add(self) db.session.commit() def set_password(self, password): self.password = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password, password) def delete(self): db.session.delete(self) db.session.commit()
class Client(db.Model): """ Таблица добавленных клиентовклиента """ id = db.Column(db.Integer, primary_key=True) client_name = db.Column(db.String, index=True) client_phone = db.Column(db.Integer, index=True, unique=True) client_birthday = db.Column(db.DateTime, index=True) client_registration = db.Column(db.DateTime, index=True, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) client_family = db.relationship('ClientFamily', backref='client', lazy='dynamic') def __repr__(self): return f'<Клиент: {self.client_name}>'
class Customer(db.Model): '''客户表 ''' __tablename__ = 'customer' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), index=True) phone = db.Column(db.String(100), index=True, default='') email = db.Column(db.String(100), default='') owner = db.Column(db.String(100)) customer_details = db.Column(db.String(250), default='') status = db.Column(db.String(10), default=1) sex = db.Column(db.String(10), default=1) addr = db.Column(db.String(250)) company = db.Column(db.String(200)) note = db.Column(db.String(250)) group = db.Column(db.String(200)) tax_id = db.Column(db.String(100), default='') modified_by = db.Column(db.String(100)) created = db.Column(db.DateTime, default=datetime.now()) updated = db.Column(db.DateTime, default=datetime.now()) def __init__(self, name, sex, phone, email, company, addr, note, tax_id, owner): self.name = name self.sex = sex self.phone = phone self.email = email self.addr = addr self.note = note self.owner = owner self.modified_by = owner self.tax_id = tax_id self.company = company self.created = datetime.now() self.updated = datetime.now() def __repr__(self): return '<User %r>' % self.name def update(self): self.updated = datetime.now() db.session.commit() def save(self): db.session.add(self) db.session.commit() def delete(self): db.session.delete(self) db.session.commit()
class Projeto(db.Model): __tablename__ = "projeto" id = db.Column(db.Integer, primary_key = True) nome = db.Column(db.String,nullable = False) comentarios = db.Column(db.String, nullable = True) nota = db.Column(db.Integer, nullable = True) tipo = db.Column(db.String) cliente = db.Column(db.String) url = db.Column(db.String) valor = db.Column(db.Integer) po = db.Column(db.String) prazo = db.Column(db.Integer) inicio = db.Column(db.String) data = db.Column(db.Integer) status = db.Column(db.String) def __init__(self, nome,tipo,cliente,url,valor,po, prazo, inicio, status, nota): self.nome = nome self.tipo = tipo self.cliente = cliente self.url = url self.valor = valor self.po = po self.prazo = prazo self.data = prazo self.inicio = inicio self.status = status self.nota = nota self.comentarios = "Sem comentarios Ainda!" teste = self.prazo.split('-') teste = teste[0] + teste[1] + teste[2] self.prazo = int(teste) self.data = int(teste) self.prazo = str(self.prazo) self.prazo = self.prazo[6] + self.prazo[7] + '/' + self.prazo[4] + self.prazo[5] + '/' + self.prazo[0] + self.prazo[1] + self.prazo[2] + self.prazo[3] testee = self.inicio.split('-') testee = testee[0] + testee[1] + testee[2] self.inicio = int(testee) self.inicio = str(self.inicio) self.inicio = self.inicio[6] + self.inicio[7] + '/' + self.inicio[4] + self.inicio[5] + '/' + self.inicio[0] + self.inicio[1] + self.inicio[2] + self.inicio[3]
class Master(db.Model): id = db.Column(db.Integer, primary_key=True) date = db.Column(db.DateTime, nullable=False, default=datetime.now) open_bal = db.Column(db.Integer, nullable=False, default=0) primary = db.Column(db.Integer, nullable=False, default=0) manual_trans = db.Column(db.Integer, nullable=False, default=0) auto_trans = db.Column(db.Integer, nullable=False, default=0) closing = db.Column(db.Integer, nullable=False, default=0) total_trans = db.Column(db.Integer, default=0) fos_bal = db.Column(db.Integer, default=0) master_bal = db.Column(db.Integer, nullable=False, default=0) calc_master_bal = db.Column(db.Integer, nullable=False, default=0) master_diff = db.Column(db.Integer, nullable=False, default=0) remarks = db.Column(db.Text, nullable=False) def __repr__(self): return f"Master('{self.closing}', '{self.open_bal}', '{self.date}', '{self.remarks}')"
class Hisaab(db.Model): id = db.Column(db.Integer, primary_key=True) date = db.Column(db.DateTime, nullable=False, default=datetime.now) open_bal = db.Column(db.Integer, nullable=False, default=0) manual_trans = db.Column(db.Integer, nullable=False, default=0) auto_trans = db.Column(db.Integer, nullable=False, default=0) closing = db.Column(db.Integer, nullable=False, default=0) total_trans = db.Column(db.Integer, default=0) total_sale = db.Column(db.Integer, default=0) commission_value = db.Column(db.Integer, default=0) net_sale = db.Column(db.Integer, default=0) last_debt = db.Column(db.Integer, nullable=False, default=0) amt_received = db.Column(db.Integer, nullable=False, default=0) latest_debt = db.Column(db.Integer, default=0) remarks = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False) def __repr__(self): return f"Hisaab('{self.closing}', '{self.open_bal}', '{self.date}', '{self.remarks}')"