odoo学习之带出信息

pre.western { font-family: "Courier New", monospace }
p { line-height: 120% }
a:link { }

# 输入客户带出它默认的发运方式和包装方式
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表中

判断年月算法:

pre.western { font-family: "Courier New", monospace }
p { line-height: 120% }
a:link { }

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

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‘,
    }
时间: 2024-11-06 08:26:25

odoo学习之带出信息的相关文章

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=ob

7.5 带说明信息的菜单

现在在7.4节案例的基础上,制作一个能够显示说明信息的菜单,如图1所示.鼠标指针经过某一个菜单项的时候,会出现相应的说明信息. 该实例文件位于网页学习网CSS教程资源的“第7章\05\tip-navi.htm”. 图1 带说明信息的菜单效果 在通常的状态下,这个菜单和7.4节中制作的菜单完全相同.而在鼠标指针经过菜单项的时候,在菜单右侧会出现一个矩形区域,里面分别写着对正在经过的菜单项的说明文字,这是一个很实用的效果. 一.基本思路 如果对7.4节的内容理解了,本案例的解决方法就很容易能想到.仍

layer弹出信息框API

首先向大家推荐layer,在这里也非常感谢贤心的贡献,非常不错的信息框及弹出层解决方案,为一些项目的前端开发提高了很大的效率,希望layer 越办越好! 下面是API,呵呵,官方抄袭过来的,为了自己看着方便. layer API之键值(仅在需要时配置,未配置的会用默认) 键 : 值 描述 skin : 0 层的皮肤编号,值为整数型.目前默认只提供一种皮肤,当你按照样式规则新增皮肤时(详见skin/layer.css),你可配置该参数. type : 0, 层的类型.0:信息框(默认),1:页面层

MVC扩展控制器, 把部分视图转换成字符串(带验证信息), 并以json传递给前端视图

当我们使用jQuery异步提交表单数据的时候,需要把部分视图转换成字符串(带验证信息),以json的形式传递给前端视图. 使用jQuery异步加载部分视图,返回内容追加到页面某个div: jQuery异步提交失败,返回带验证失败信息的部分视图字符串,并追加到页面div: jQuery异步提交成功,返回显示提交成功的部分视图字符串,并追加到页面div: 一个简单的Model: using System.ComponentModel.DataAnnotations; namespace MvcApp

Selenium2学习-040-JavaScript弹出框(alert、confirm、prompt)操作演示实例

弹出框是网页自动化测试常见得操作页面元素之一,常见的JavaScript弹出框有如下三种: 1.alert(message):方法用于显示带有一条指定消息和一个 OK 按钮的警告框.DemoAlert.html 示例代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html&g

学习笔记:硬盘信息查看与检测

mkfs:make file system -t  fstype mkfs -t ext3 /dev/sda4 (其中默认5%预留给了管理员用户) mkfs -t ext2 =mkfs.ext2 mke2fs:专门用来管理ext系列的文件系统,选项多 -j :ext3 mke2fs -j /dev/sda4 -b block_size:指定块大小(默认4096,可用取值1024,2048,4096) 若文件小多,可以用1024或者2048 mke2fs -b 2048 /dev/sda4 -L

分类编码下拉框选择自动带出分类名称

<asp:TableCell> <ig:WebDropDown runat ="server" ID="txtClassNo" Width ="200" OnSelectionChanged="webDropdownOnchange" EnableClosingDropDownOnSelect="true" AutoPostBack="true" ></ig

函数数组排序带出最大最小值及平均值

namespace 函数数组排序带出最大最小值及平均值{    class Program    {        static void Main(string[] args)        {            int[] b=new int[]{9,1,5,3,7};             int max = 0;  //设置两个变量用来接收最低值与最小值.            int min = 0;            int ave = 0; //设变一个变量来接收平均值.

DoModal时带出次级窗口闪现

最近在做MFC 界面开发. 在一个CDialog窗口DoModal模态显示时, 会将次级窗口带出闪现(比如将一个窗口active, 然后点击我现在程序需要弹框的按钮,弹出弹出正常,但原来active的窗口会有一次闪现).几经周折, 才发现是因为Dialog窗口中一个控件属性中包括WS_EX_TOPMOST,且初始为WS_VISIBLE. 只需将初始的WS_VISIBLE去除即可