1. 程式人生 > >odoo學習之帶出信息

odoo學習之帶出信息

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學習之帶出信息