def _init_models(self, host, port, db, uid):
     self._conn = Connection(host, port)
     self._storage = Storage(self._conn, uid, db)
     self._dbname = db
     self._dbport = port
     self._dbhost = host
Пример #2
0
 def save():
     if g.user.role_id == 3:
         return 'Powerless'
     sql = ''
     para = Api.reqs('catalog_id,part,id,sn,username,location,state,description,'
                     'remark,type,exit,attr1,attr2')
     para.update({
         # 不填默认今天
         'purchase_date': request.form.get('purchase_date') or datetime.datetime.today().strftime('%Y-%m-%d'),
         # 不填默认0元
         'price': request.form.get('price') or 0,
         # 不填默认今天
         'register_date': request.form.get('register_date') or datetime.datetime.today().strftime('%Y-%m-%d'),
         'engname': g.user.username})
     # 批量返还
     ids = request.form.getlist('ids')
     if len(ids):
         for i in ids:
             para['id'] = i
             sql = u"call history_p(:id, '仓库', '仓库', '0', :register_date, :engname);"
             db.session.execute(sql, para)
             db.session.commit()
         return u'批量返还ok'
     if para['type'] == 'update':
         sql = '''
             UPDATE stdb.storage st
                 SET st.state=:state,
                     st.sn=:sn,
                     st.price=:price,
                     st.description=:description,
                     st.catalog_id=:catalog_id,
                     st.remark=:remark,
                     st.part=:part,
                     st.purchase_date=:purchase_date,
                     {0}
                     st.modify_date=now(),
                     st.modify_user=:engname
                 WHERE st.id=:id
         '''.format('st.username=:username,st.location=:location,' if g.user.role_id == 1 else '')
     elif para['type'] == 'insert':
         checkid = Storage.query.filter_by(id=para['id']).all()
         if len(checkid):
             return 'exist'
         # 笔记本&主机类型
         if para['attr1'] or para['attr2']:
             power = Catalog.query.filter_by(catalog=u'电源适配器').first().id
             mouse = Catalog.query.filter_by(catalog=u'鼠标').first().id
             keyboard = Catalog.query.filter_by(catalog=u'键盘').first().id
             special_ct = Catalog.query.filter_by(id=para['catalog_id']).first().catalog
             if special_ct in [u'笔记本电脑', u'主机']:
                 obj = [
                     Storage(id=para['id'], username=u'仓库', state=para['state'], sn=para['sn'],
                             price=para['price'], part=para['part'],
                             description=para['description'], catalog_id=para['catalog_id'], remark=para['remark'],
                             purchase_date=para['purchase_date'], location=u'仓库',
                             create_user=para['engname']),
                     Storage(id=para['id'] + '-01', username=u'仓库', state=para['state'], sn=para['sn'],
                             part=para['part'] + (u'-电源适配器' if special_ct == u'笔记本电脑' else u'-鼠标'),
                             catalog_id=power if special_ct == u'笔记本电脑' else mouse,
                             remark=para['remark'], price=0, description=para['description'],
                             purchase_date=para['purchase_date'], location=u'仓库',
                             create_user=para['engname']) if para['attr1'] else None,
                     Storage(id=para['id'] + '-02', username=u'仓库', state=para['state'], sn=para['sn'],
                             part=para['part'] + (u'-鼠标' if special_ct == u'笔记本电脑' else u'-键盘'),
                             catalog_id=mouse if special_ct == u'笔记本电脑' else keyboard,
                             remark=para['remark'], description=para['description'], price=0,
                             purchase_date=para['purchase_date'], location=u'仓库',
                             create_user=para['engname'] if para['attr2'] else None)
                 ]
                 db.session.add_all([i for i in obj if i])
                 db.session.commit()
                 return 'ok'
         else:
             sql = u'''
             INSERT INTO stdb.storage (id,username,state,sn,price,description,catalog_id,remark,part,purchase_date,location,create_user,create_date)
             VALUE (:id,'仓库',:state,:sn,:price,:description,:catalog_id,:remark,:part,:purchase_date,'仓库',:engname,now())
             '''
     elif para['type'] == 'history':
         if para['location'] == u'仓库' and para['exit'] == '1':
             return 'inactive'
         sql = u'call history_p(:id, :username, :location, :exit, :register_date,:engname);'
     db.session.execute(sql, para)
     db.session.commit()
     return 'ok'