odoo學習之帶出信息
阿新 • • 發佈:2017-05-12
defaults family rom strong ack gin exce height prompt
# 輸入客戶帶出它默認的發運方式和包裝方式 def on_change_partner_id_return(self,cr,uid,ids,partner_id,context=None): result={} if partner_id:# 如果存在 #找到滿足條件的值 obj=self.pool.get(‘res.partner‘).browse(cr,uid,partner_id,context=context) #取出數據顯示在前端 fyfs=obj.send_type zxbzfs=obj.packing_type print fyfs print zxbzfs # 返回結果 result[‘send_invoice_type‘]=fyfs result[‘packing_type‘]=zxbzfs return {‘value‘:result}
這是在sale_origin表中
判斷年月算法:
#判斷開始日期和結束日期
def get_prompt_end_date(self, cr, uid, ids,state_date,end_date, context=None): if state_date>=end_date: raise osv.except_osv(u‘提示‘,u‘結束日期不能小於開始日期!‘) return #創建時修改上次的結束日期 def create(self, cr, uid, vals, context=None): if context is None: context ={}if vals.get(‘state_date‘)>vals.get(‘end_date‘): raise osv.except_osv(u‘提示‘,u‘結束日期不能小於開始日期!‘) se osv.except_osv(u‘提示‘,u‘開始日期不能小於上次開始日期!‘) obj1=self.search(cr, uid, [(‘lproduct_id‘,‘=‘,vals.get(‘lproduct_id‘)),(‘partner_id‘,‘=‘,vals.get(‘partner_id‘))],order=‘id desc‘, limit=1) if obj1: sdate=vals.get(‘state_date‘) date_state=self.browse(cr, uid,obj1,context=None) if sdate<date_state.state_date: raise osv.except_osv(u‘提示‘,u‘開始日期不能小於上次開始日期!‘) yy=int(sdate[0:4]) mm=int(sdate[5:7]) dd=int(sdate[8:10]) if (yy%400==0) or ( yy%100 !=0 and yy%4==0): print ‘閏年‘ if dd==1: if mm==2 or mm==4 or mm==6 or mm==8 or mm==9 or mm==11: mm=mm-1 dd=31 elif mm==5 or mm==7 or mm==10 or mm==12: mm=mm-1 dd=30 elif mm==3: mm=mm-1 dd=29 else: dd=31 mm=12 yy=yy-1 else: dd=dd-1 else: print ‘平年‘ if dd==1: if mm==2 or mm==4 or mm==6 or mm==8 or mm==9 or mm==11: dd=31 mm=mm-1 elif mm==5 or mm==7 or mm==10 or mm==12: mm=mm-1 dd=30 elif mm==3: mm=mm-1 dd=28 else: dd=31 mm=12 yy=yy-1 else: dd=dd-1 sdd=str(dd) smm=str(mm) if dd<10: sdd=‘0‘+str(dd) if mm<10: smm=‘0‘+str(mm) ndate=str(yy)+‘-‘+smm+‘-‘+sdd # print ndate self.write(cr, uid, obj1, {‘end_date‘: ndate}, context=context) # ndate = sdate + datetime.timedelta(-1) new_id=super(sale_price_list_line,self).create(cr,uid,vals,context=context) return new_id _columns = { ‘price_id‘:fields.many2one(‘sale.price.list‘,u‘產品售價號‘,required=True,), ‘lproduct_id‘:fields.many2one(‘product.product‘,u‘產品‘), ‘partner_id‘:fields.many2one(‘res.partner‘,u‘客戶‘,required=True), ‘puom‘:fields.many2one(‘product.uom‘,u‘單位‘), ‘state_date‘:fields.date(u‘開始日期‘), ‘end_date‘:fields.date(u‘結束日期‘), ‘price_unit‘:fields.float(u‘單價‘,required=True), ‘price_tax‘:fields.float(u‘含稅單價‘), } _defaults = { # ‘state_date‘:‘1999-01-01‘, ‘end_date‘:‘2999-01-01‘, }
odoo學習之帶出信息