首页 > 代码库 > odoo学习之带出信息

odoo学习之带出信息

<style>pre.western { font-family: "Courier New", monospace } p { line-height: 120% } a:link { }</style>
# 输入客户带出它默认的发运方式和包装方式
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表中

判断年月算法:
<style>pre.western { font-family: "Courier New", monospace } p { line-height: 120% } a:link { }</style>

#判断开始日期和结束日期

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学习之带出信息