##判断删除情况,不允许删除
def unlink(self,cr,uid,ids,context=None):
raise osv.except_osv(u'警告!',u'单据不允许删除');
def write(self,cr,uid,ids,context=None):
raise osv.except_osv(u'警告!',u'单据不允许修改');
 
 
 # 重写删除方法
def unlink(self,cr,uid,ids,context=None):
# 首先获取这张单子的状态,read
sale_origins=self.read(cr,uid,ids,['state'],context=context)
unlink_ids=[]
for s in sale_origins:
# 如果这张单子状态为草稿和取消d 单子是可以删除的确定的单子是 不可以删除的
if s['state'] in ['draft','cancel']:
# 将要删除的单子的id放入放到删除容器里面取
unlink_ids.append(s['id'])
else:
# 如果是确定的单子就可以弹出一个不可以删除对话提示框
raise osv.except_osv((u'警告'),(u'以缺然订单不可以删除'))
# 返回这个结果的值到前台
return osv.osv.unlink(self,cr,uid,unlink_ids,context=context)

# 重写删除方法,删除合同单,连结算单一起删除,可用sql语句,ids表示这个单子的id
def unlink(self, cr, uid, ids, context=None): # sigining_contract查出状态信息
sigining_contract = self.read(cr, uid, ids, ['state'], context=context)
sigining_contract_obj=self.browse(cr,uid,ids,context)
name=sigining_contract_obj.contract_origin
# 根据合同号删除结算单号
sql="DELETE from settle_account where contract_origin='%s'"%(str(name))
cr.execute(sql)
unlink_ids = []
for s in sigining_contract:
if s['state'] in ['draft','cancel']:
unlink_ids.append(s['id'])
else:
raise osv.except_osv((u'警告!'), (u'已确认订单不可删除')) return osv.osv.unlink(self, cr, uid, unlink_ids, context=context) 创建方法:
 # 新加的地方
def create(self, cr, uid, vals, context=None):
context = context or {} partner_id = vals.get('display_name')
ht_type = vals.get('contract_type') # 根据公司来生成不同的编号,不同类别从1开始
if partner_id and ht_type:
vals['contract_origin'] = self.get_ht_sequence(cr,uid,partner_id,ht_type) else:
raise osv.except_osv(u'请先选择公司或类别!') new_id=super(sigining_contract, self).create(cr, uid, vals, context)
return new_id
保存后是编辑是write方法:
def write(self, cr, uid, ids, vals, context=None):
ddate=vals.get('date_planned')
if ddate:
obj=self.pool('sale.order.line')
sale_order_line_id=obj.search(cr,uid,[('sale_origin_line_id','=',ids[0])])
obj.write(cr,uid,sale_order_line_id,{'finish_date':ddate})
return super(sale_origin_line, self).write(cr, uid,ids, vals, context=context)
 

函数 求几个数的和#改动地方 小计增加金额 求和:
def _get_sumzaccount(self, cr, uid, ids, field_name, arg, context=None): res={}
for order in self.browse(cr, uid, ids, context=context):
Q=0.0
qq=order.zadd_money
qq1=order.zadd_money2
qq2=order.zadd_money3
qq3=order.zadd_money4
Q=qq+qq1+qq2+qq3 res[order.id]=Q return res

###整张外部订单取消,对应取消未发货的内部销售订单
# def action_cancel_sale_order(self,cr,uid,ids,context=None):
# assert len(ids)==1
# sale_origin_obj=self.browse(cr,uid,ids,context)
# sale_origin_obj.state='cancel'
# #单据明细也需要取消
# for line in sale_origin_obj.line_id:
# line.state='cancel'
# #查询出销售订单的源单据是本外部订单的所有单据
# origin_obj=self.pool.get('sale.order')
# sale_orders=origin_obj.search(cr,uid,[('sale_origin_id','=',ids[0])])
# #####取消
# origin_obj.action_cancel(cr, uid, sale_orders)
# self.message_post(cr, uid, ids, body=u"已取消订单", context=context)
# return True
												

删除方法odoo的更多相关文章

  1. Windows服务的手动添加和删除方法

    Windows服务的手动添加和删除方法 服务,是指执行指定系统功能的程序.例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序.其实,服务就是一种特殊的应用程序,它从服务启动开始就一直处于运行状态 ...

  2. ecshop后台"云提醒未激活 点击激活" 补丁删除方法

    ecshop后台"云提醒未激活 点击激活" 补丁删除方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2015-01-15   ecshop后台提 ...

  3. 一个封装较好的删除方法(Delete)

    前台的引用 @Html.ActionLink(“删除字样”,“后台的删除方法”,new{绑定id},new{@style="样式"});方法,如何要独立使用的话,一般还要使用到相应 ...

  4. java集合类遍历删除方法测试以及使用场景记录

    package test0; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java. ...

  5. StringBuilder的三种删除方法比较

    分别用一千万次循环来比较StringBuilder的三种删除方法所用时间 未避免偶然性,再循环一百次来比较总时间 --主类 public class StringBuilderRemove { pub ...

  6. SQL Server存储过程的删除方法

    SQL Server存储过程的删除方法使我们经常会用到的,下面就为您介绍扩展存储过程的删除方法,如果您对SQL Server存储过程方面感兴趣的话,不妨一看. --清除SQL Server所有的危险扩 ...

  7. Removable Storage Devices文件夹删除方法

    Windows10的桌面上出现了名为“Removable Storage Devices”的文件夹删除方法 比较莫名奇妙,突然桌面上出现了名为“Removable Storage Devices”的文 ...

  8. ASP.NET MVC4 新手入门教程之九 ---9.查询详情和删除方法

    在本教程的这一部分,您会检查自动生成的Details和Delete方法. 检查详细信息和删除方法 打开Movie控制器并检查的Details的方法. public ActionResult Detai ...

  9. pandas DataFrame行或列的删除方法

    pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...

随机推荐

  1. 葡萄城报表 SP2 新特性(1)— 单元格智能合并

    中国式复杂报表的布局,因为数据的动态性和结构性,导致其布局往往是无规律,且在设计时无法预测的,如单元格合并,通常不仅希望在每一列的数据展现中,能够根据需要自动将相同的单元格合并,且每个单元格之间该属性 ...

  2. PHPCMS V9开发文档

    内容模块 内容模块PC标签调用说明 模块名:content 模块提供的可用操作 操作名 说明 lists 内容数据列表 relation 内容相关文章 hits 内容数据点击排行榜 category ...

  3. React Native八大Demo

    参考资料:http://www.cnblogs.com/shaoting/p/7148240.html 下一个项目公司也打算使用react native.大致看了下原型设计,写几个小demo先试试水. ...

  4. CSS 实例之打开大门

    本个实例主要的效果如下图所示 本案例主要运用到了3D旋转和定位技术.具体步骤如下: 1.首先在页面主体加三个很简单的div标签: <div class="door"> ...

  5. 6个讨喜的 ES6 小技巧

    [编者按]本文作者为 Axel Rauschmayer,主要介绍6个 ES6 小技巧.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在本文中,笔者将介绍6个由 ES6 新功能带来的小技巧. ...

  6. xp_readerrorlog与sp_readerrorlog

    SQL SERVER 可以使用xp_readerrorlog 或者sp_readerrorlog来查看错误日志. xp_readerrorlog 一共有七个参数: 1. 存档编号 2. 日志类型(1为 ...

  7. SELECT查询结果集INSERT到数据表

    简介 将查询语句查询的结果集作为数据插入到数据表中. 一.通过INSERT SELECT语句形式向表中添加数据 例如,创建一张新表AddressList来存储班级学生的通讯录信息,然后这些信息恰好存在 ...

  8. android的hwc浅析【转】

    https://blog.csdn.net/alien75/article/details/39290109 注:本文档基于kk进行分析,着重于概念的精确定义和版本历史演变 一.关于hwc的介绍 广义 ...

  9. GridBagLayout布局管理器应用详解

    http://www.cnblogs.com/kungfupanda/p/7220217.html GridBagLayout布局管理器应用详解 很多情况下,我们已经不需要通过编写代码来实现一个应用程 ...

  10. Go语言学习笔记(二)十分钟上手

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 变量&常量 变量 变量名由字母.数字.下划线组成,不能以数字开头. ... var ( A int //默 ...