2016-04-25 62 views
0

我正在開發使用的web2py在DatabaseManagement項目。我有股票,商品和客戶表如下創建使用SQLite DATABSE

項目:

db = DAL("sqlite://storage.sqlite") 
db.define_table('item', 
Field('name', notnull = True,unique=True), 
Field('price'), 
Field('quantity'), 
format = '%(name)s') 

客戶:

db.define_table('customer', 
Field('item_name','reference item'), 
Field('name', notnull = True,requires=IS_NOT_EMPTY()), 
Field('unit_price','double',requires=IS_NOT_EMPTY()), 
Field('email',requires = IS_EMAIL(error_message='invalid email!'),unique='True'), 
Field('adress',requires=IS_NOT_EMPTY()), 
Field('city',requires=IS_NOT_EMPTY()), 
Field('quantity','integer',requires=IS_NOT_EMPTY()), 
Field('state',default='KARNATAKA'), 
Field('contact_number',requires=IS_LENGTH(10,10)), 
Field('total_price', 
compute=lambda r: r['unit_price'] * r['quantity']), 
format='%(name)s') 

db.item.name.requires = IS_NOT_IN_DB(db, db.item.name) 
db.customer.item_name.requires = IS_IN_DB(db, db.item.id, '%(name)s') 

庫存:

db.define_table('stock', 
Field('Date','datetime'), 
Field('particulars'), 
Field('opening_stock','double'), 
Field('purchases','double'), 
Field('total_price', 
compute=lambda r: r['opening_stock'] + r['purchases']), 
Field('sales','double'), 
Field('closing_stock', 
compute=lambda r: r['total_price'] - r['sales'])) 

股票表維護的細節,即項目名稱和開盤股票,即該細節股票的可用數量,即期股票,即股票在當日結束時可用。現在,當客戶購買物品時,它應該自動扣除庫存表,但根據我提到的表格,我手動輸入銷售數據,並由此計算結算庫存。 但是我想寫觸發,當客戶購買它應該在庫存表中扣除意味着銷售屬性值應會增加。 我怎麼能使用web2py?在default.py中觸發器的觸發語法和函數調用是什麼?請讓我知道soultion ...

回答