odoo学习之带出信息
Posted 行走在云端
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了odoo学习之带出信息相关的知识,希望对你有一定的参考价值。
# 输入客户带出它默认的发运方式和包装方式 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学习之带出信息的主要内容,如果未能解决你的问题,请参考以下文章