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学习之带出信息的更多相关文章
- QT如何编译出带调试信息的qtwebkit库
因为在编译QT的时候默认是不编译成带调试信息的qtwebkit库的,不论如何设置参数都是没有用的.后面在一博客中查找到相关信息 1.编译带debug 信息的webkit 库 注释或者删除qt-ev ...
- css案例学习之通过relative与absolute实现带说明信息的菜单
效果如下 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- odoo之带出历史订单产品
这是在sale_origin中下由两张单子{sale_origin_line和history_order} class history_order(osv.osv): _name="hist ...
- (私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例)
(私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例) https://pan.baidu.com/s/1L54VuFwCdKVnQGVc8vD1TQnwmj java手册 Ja ...
- layer弹出信息框API
首先向大家推荐layer,在这里也非常感谢贤心的贡献,非常不错的信息框及弹出层解决方案,为一些项目的前端开发提高了很大的效率,希望layer 越办越好! 下面是API,呵呵,官方抄袭过来的,为了自己看 ...
- alv行可编辑时带出描述
ALV显示可以编辑的状态下可以带出描述信息等,比如维护表程序输入公司代码时需要带出公司代码的描述,这时就需要通过下面事件来触发 定义一个类: CLASS lcl_event_receiver DEFI ...
- MVC扩展控制器, 把部分视图转换成字符串(带验证信息), 并以json传递给前端视图
当我们使用jQuery异步提交表单数据的时候,需要把部分视图转换成字符串(带验证信息),以json的形式传递给前端视图. 使用jQuery异步加载部分视图,返回内容追加到页面某个div: jQ ...
- (私人收藏)[开发必备]HTML5最全快速查找离线手册(可查询可学习,带实例)
[开发必备]HTML5最全快速查找离线手册(可查询可学习,带实例) HTML5最全快速查找离线手册:https://pan.baidu.com/s/19seE8TJQSx4IsWgXtKQS0Aj9y ...
- DoModal时带出次级窗口闪现
最近在做MFC 界面开发. 在一个CDialog窗口DoModal模态显示时, 会将次级窗口带出闪现(比如将一个窗口active, 然后点击我现在程序需要弹框的按钮,弹出弹出正常,但原来active的 ...
随机推荐
- 【代码笔记】Web-ionic-index创建侧边栏
一,创建侧边栏. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- JavaScript日期排序
//日期排序 function sortDownDate(a, b) { return Date.parse(a.received) - Date.parse(b.received); } funct ...
- [SQLSERVER] 转移数据库MDF或LDF文件位置的方法,以及重新启动出现无权限的问题
0. 查看数据库文件名和物理文件名 SELECT name, physical_name AS current_file_location FROM sys.master_files 1. 运行命令 ...
- 基于Bootstrap表单验证
基于Bootstrap表单验证 GitHub地址:https://github.com/chentangchun/FormValidate 使用方式: 1.CSS样式 .valierror { bor ...
- C#语言————拼接、插入、替换、删除四种方法
StringBuilder sb = new StringBuilder("hello"); sb.Append("world");//拼接 sb.Insert ...
- 在 Android 手机上运行 Python 程序
- IntelliJ idea 如何打开左边项目展开栏
vie->Tool Windows->Project Alt+1 转自:https://blog.csdn.net/bug_moving/article/details/53284434
- chrony时间服务器
chrony有着比ntp服务器更好的优势来同步服务,在集群架构中,采用此种服务来同步时间也是最好的方式. 在集群环境中,一般都是一个服务器,然后上百个客户端来同步服务端的时间,接下来我们看看如何配置. ...
- node学习笔记_04 express相册
学习node用express框架做了一个相册展示及上传功能: 1.没有连接服务器,这里全部是操作文件夹 2.安装上传文件的依赖formidable,npm install --save formida ...
- centos7下安装docker(13.1docker存储--data volume)
我们现在知道docker 有两种存储方式:storage driver和data volume stroage driver这种存储方式主要是存储那些无状态的数据,是镜像层和容器层组成的,而data ...