##判断删除情况,不允许删除
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. w3school前端教程合集

    有关前端开发的w3c教程合集. http://caibaojian.com/w3school/ 地图 ajax教程 Canvas教程 CSS教程 CSS3教程 CSS3选择器 CSS参考手册 DHTM ...

  2. webpack中配置Babel

    Babel是一个javascript编译器,可以将ES6和更新的js语法转换成ES5的,使代码在较老的浏览器里也能正常运行. 一.安装 npm install --save-dev babel-loa ...

  3. [随时更新] Git的过滤规则 .gitignore 配置

    往github上传代码的时候,很多文件没必要都传,这就需要在.gitignore文件里配置一下过滤规则.在此记录一下各种项目的配置参数,先从最近做的android开始. 原文地址请保留http://w ...

  4. ElementUI制作树形表组件

    提要 最近项目中需要用到树形表格来描述部门.区域之间的父子展开关系.但是已经在项目中使用的Vue的成熟组件ElementUI以及iViewUI组件都没有提供相应的树形表格组件,无奈找了其他替代方案也都 ...

  5. mysql 安全模式

    今天,执行一条delete语句的时候报错如下: Error Code: 1175. You are using safe update mode and you tried to update a t ...

  6. SQLServer分页查询笔记

    学习SqlServer到现在快两年了吧,分页查询总是忘了看笔记,看了又忘.之前用的分页都是row_number函数的方式,背不住...直到今天,看到别人写的另一种分页写法,看似比row_number简 ...

  7. IP解析计算机名称

    #-*- coding: UTF-8 -*- import subprocess,sys,threading reload(sys) sys.setdefaultencoding('utf-8') d ...

  8. 了解注解及java提供的几个基本注解

    先通过@SuppreessWarnings的应用让大家直观地了解注解: 通过System.runFinalizersOnExit(true);的编译器警告引出           @SuppressW ...

  9. 记录一次nginx配置vhost的小bug

    话说这篇博客是在是为了保持自己记录生活的习惯而写的,没有什么阅读的价值,各位读者可以直接忽略了.今天在配置一个域名的时候,写了new_example.com(举例而已) 因为是内测,所以并未想象到深层 ...

  10. Dalvik指令备忘

    跳转指令 if-eq vx, vy, 目标 如果vx == vy注2,跳转到目标.if-ne vx,vy, 目标 如果vx != vy注2,跳转到目标. if-lt vx,vy, 目标 如果vx &l ...