odoo之带出历史订单产品
这是在sale_origin中
下由两张单子{sale_origin_line和history_order}
class history_order(osv.osv):
_name="history.order"
_description="history order line "
_columns={
'hpartner_id':fields.many2one('sale.origin', u'客户'),
'hproduct_id':fields.many2one('product.product',u'产品'),
'hmaterial': fields.related('product_id', 'material',relation='product.product', type="char", string=u'品名/材质',readonly=True,),
'hspec': fields.related('product_id', 'cust_spec',relation='product.product', type="char", string=u'规格',readonly=True,),
'hproduct_uom': fields.many2one('product.uom',u'单位'),
'hprice':fields.float(u'单价',digits=(6,3)),
'hcust_order_no':fields.char(u'客户单号'),
'hmemo':fields.char(u'备注'),
'hpacking_type1':fields.selection([(1,u'隔板'),(2,u'泡沫')],string=u'包装方式',),
'choice':fields.boolean(u'请选择'),
} 在sale_origin中写:
'history_order_line':fields.one2many('history.order','hpartner_id', copy=True),
在.xml视图中可以写:
<page string="历史订单">
<field name="history_order_line">
<header>
<button name="action_confirm_all_sale_order" string="确认" type="object"/>
</header>
<tree>
<field name="hproduct_id" />
<field name="hmaterial"/>
<field name="hspec"/>
<field name="hprice" />
<field name="hproduct_uom"/>
<field name="hpacking_type1"/>
<field name="choice"/>
</tree>
</field>
</page>
# 输入客户带出它默认的发运方式和包装方式
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
khmc=obj.name
# 返回结果
result['send_invoice_type']=fyfs
result['packing_type']=zxbzfs
print khmc
数据库查询语句,查出历史订单中的产品,去除重复数据 sql="select DISTINCT t2.product_id as product_id, t6.material as material,t6.cust_spec as cust_spec,t6.list_price as price,t4.name as uom, t3.packing_type1 as pick_type from res_partner t0 LEFT JOIN sale_order t1 on t0.id=t1.partner_id LEFT JOIN sale_order_line t2 on t2.order_id=t1.id LEFT JOIN sale_origin_line t3 on t2.order_id=t3.order_id LEFT JOIN product_uom t4 on t4.id=t2.product_uom left join product_product t5 on t5.id=t2.product_id left join product_template t6 on t6.id=t5.product_tmpl_id where t1.partner_id is not null and t0.name='%s'"%(khmc) print 555555555555555555555
history_line=[] 遍历将数据打印到前端
for i in range(len(dict)):
print dict[i]
# history_line=[]
history_line.append({'hproduct_id':dict[i]['product_id'] ,
'hmaterial':dict[i]['material'],
'hspec':dict[i]['cust_spec'],
'hproduct_uom':dict[i]['uom'],
'hprice':dict[i]['price'],
'hpacking_type1':dict[i]['pick_type']
})
result['history_order_line']=history_line
print 1111111111111111111111111111111111111111
print history_line
return {'value':result} 如图中 根据客户名称带出历史订单产品
odoo之带出历史订单产品的更多相关文章
- odoo开发历史订单需求整体思路
第一步:找到客户对应页面,并找到他所下过的销售订单,用数据库语句查出所有数据,并去除重复数据,显示在前端, sql="select DISTINCT t2.product_id as pro ...
- odoo学习之带出信息
# 输入客户带出它默认的发运方式和包装方式 def on_change_partner_id_return(self,cr,uid,ids,partner_id,context=None): resu ...
- SAP MM 供应商无英文名称,ME21N里却带出了英文名字?
SAP MM 供应商无英文名称,ME21N里却带出了英文名字? 近日收到客户业务用户上报的一个问题说ME21N的时候,供应商101071的名字怎么是英文名字,实际上供应商主数据里是没有这个英文名字, ...
- DoModal时带出次级窗口闪现
最近在做MFC 界面开发. 在一个CDialog窗口DoModal模态显示时, 会将次级窗口带出闪现(比如将一个窗口active, 然后点击我现在程序需要弹框的按钮,弹出弹出正常,但原来active的 ...
- alv行可编辑时带出描述
ALV显示可以编辑的状态下可以带出描述信息等,比如维护表程序输入公司代码时需要带出公司代码的描述,这时就需要通过下面事件来触发 定义一个类: CLASS lcl_event_receiver DEFI ...
- BOM物料清单在输入用料计划时快捷选择物料没有带出单位
问题: 在新增BOM物料清单时,输入用料计划,快捷选择物料没有带出单位,但是从清单查找里面选择物料,是可以自动带出单位的. 原因分析查找: 1.这是个自定义单据,到tools工具上查看相关设置,看清单 ...
- Easyui的datagrid的行编辑器Editor中添加事件(修改某个单元格带出其他单元格的值)
项目中有个datagrid需要编辑行时,用到Editor的属性,那么如何添加一个事件 问题:同一个编辑行中的某个单元格值改变时,修改其他单元格的值 页面用到的datagrid <table id ...
- [转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法
[From] https://www.zmrbk.com/post-2030.html https://blog.csdn.net/suifengshiyu/article/details/40952 ...
- SAP 配置表根据输入的值带出描述
在SAP客制功能需求中,为了程式的灵活配置采用配置表的形成,使后期使用中不需要更改源代码实现功能的增加.在配置表的使用过程中,有时候会有这样的需求:在配置中输入或选择了编码,根据编码带出描述.以下详细 ...
随机推荐
- CSS布局设置
一 盒模型 盒模型 在CSS中,"box model"这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子.我们称为这种盒子叫盒模型. 盒模型有两种:标准模 ...
- onSaveInstanceState场景
需要注意的是, onSaveInstanceState()方法并不是一定会被调用的, 因为有些场景是不需要保存状态数据的. 比如用户按下BACK键退出activity时, 用户显然想要关闭这个acti ...
- Apktool(1)——Apktool的安装
Apktool是google提供的apk的编译工具,有了它就可以做很多事情.比如获取apk的源码,apk汉化,对手机rom包做一些美化. 首先来看看apktool的安装(配置): 以下内容主要翻译字A ...
- [20180730]exadata与行链接.txt
[20180730]exadata与行链接.txt --//最近一段时间在看<expert oracle exadata>,智能扫描的三大优化方法是:字段投影,谓词过滤,存储索引.大多数智 ...
- [20170615]执行dbms_sqldiag.dump_trace看执行计划.txt
[20170615]执行dbms_sqldiag.dump_trace看执行计划.txt --//上午在想查看10053执行计划时使用包时出现如下提示: SCOTT@book> @ &r ...
- Java同步、异步区别
一.概念: 1.同步:所有的操作都做完,才返回给用户.这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉).这种情况下,用户不 ...
- 找Maven --> pom.xml --> groupId和artifactId的网站
http://mvnrepository.com/ 在此记录
- 安全之路 —— C/C++实现利用添加注册表项实现文件自启动
简介 添加注册表项是实现文件自启动的经典方法之一,但因为操作注册表项是一个敏感操作,被报毒可能性较大,但即便如此,这个方法还是值得一学的,因为后期大部分编程都涉及到注册表操作. 最常使用到的注册表项有 ...
- SAP CRM 忠诚度相关表的关系图
这是一张有关会员,积分,活动等内容的相关表的关系图,对相关的开发工作会有帮助. 原文标题:Table schema for managing customer loyality 本文链接:http:/ ...
- PDO 对 mysql的基本操作
PDO扩展操作 <?php $dsn = 'mysql:dbname=yii2;host=localhost'; $user = 'root'; $password = '123456'; tr ...