zoukankan      html  css  js  c++  java
  • 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',
        }

  • 相关阅读:
    windows server2012 r2 上IIS8.5
    windows server2012 r2 上 安装 IIS8.5
    Visual Studio 14 初试,vNext
    ASP.NET MVC+EF5 开发常用代码
    JavaScript中的Array
    java maven安装以及如何安装第三方的jar以及module的配置
    java字符串格式化错误
    Excel数据生成Sql语句
    tornado异步请求非阻塞
    python tornado User-Agent
  • 原文地址:https://www.cnblogs.com/1314520xh/p/6843172.html
Copyright © 2011-2022 走看看