首页 > 其他分享 >scrap -> accountmove 参考

scrap -> accountmove 参考

时间:2023-09-16 11:56:28浏览次数:53  
标签:product 参考 accountmove self id location qty scrap

    def action_validate(self):
        self.ensure_one()
        if float_is_zero(self.scrap_qty,
                         precision_rounding=self.product_uom_id.rounding):
            raise UserError(_('You can only enter positive quantities.'))
        if self.product_id.type != 'product':
            return self.do_scrap()
        precision = self.env['decimal.precision'].precision_get('Product Unit of Measure')
        available_qty = sum(self.env['stock.quant']._gather(self.product_id,
                                                            self.location_id,
                                                            self.lot_id,
                                                            self.package_id,
                                                            self.owner_id,
                                                            strict=True).mapped('quantity'))
        scrap_qty = self.product_uom_id._compute_quantity(self.scrap_qty, self.product_id.uom_id)
        if float_compare(available_qty, scrap_qty, precision_digits=precision) >= 0:
            return self.do_scrap()
        else:
            ctx = dict(self.env.context)
            ctx.update({
                'default_product_id': self.product_id.id,
                'default_location_id': self.location_id.id,
                'default_scrap_id': self.id,
                'default_quantity': scrap_qty,
                'default_product_uom_name': self.product_id.uom_name
            })
            return {
                'name': self.product_id.display_name + _(': Insufficient Quantity To Scrap'),
                'view_mode': 'form',
                'res_model': 'stock.warn.insufficient.qty.scrap',
                'view_id': self.env.ref('stock.stock_warn_insufficient_qty_scrap_form_view').id,
                'type': 'ir.actions.act_window',
                'context': ctx,
                'target': 'new'
            }

  

 

    def do_scrap(self):
        self._check_company()
        for scrap in self:
            scrap.name = self.env['ir.sequence'].next_by_code('stock.scrap') or _('New')
            move = self.env['stock.move'].create(scrap._prepare_move_values())
            # master: replace context by cancel_backorder
            move.with_context(is_scrap=True)._action_done()
            scrap.write({'move_id': move.id, 'state': 'done'})
            scrap.date_done = fields.Datetime.now()
        return True

  

 

    def _prepare_move_values(self):
        self.ensure_one()
        return {
            'name': self.name,
            'origin': self.origin or self.picking_id.name or self.name,
            'company_id': self.company_id.id,
            'product_id': self.product_id.id,
            'product_uom': self.product_uom_id.id,
            'state': 'draft',
            'product_uom_qty': self.scrap_qty,
            'location_id': self.location_id.id,
            'scrapped': True,
            'location_dest_id': self.scrap_location_id.id,
            'move_line_ids': [(0, 0, {'product_id': self.product_id.id,
                                           'product_uom_id': self.product_uom_id.id, 
                                           'qty_done': self.scrap_qty,
                                           'location_id': self.location_id.id,
                                           'location_dest_id': self.scrap_location_id.id,
                                           'package_id': self.package_id.id, 
                                           'owner_id': self.owner_id.id,
                                           'lot_id': self.lot_id.id, })],
#             'restrict_partner_id': self.owner_id.id,
            'picking_id': self.picking_id.id
        }

  

标签:product,参考,accountmove,self,id,location,qty,scrap
From: https://www.cnblogs.com/pythonClub/p/17706528.html

相关文章

  • 《Python从入门到实战》-源码篇-Scrapy
    什么是Scrapy?Python写的开源爬虫框架,快速、简单的方式构建爬虫,从网站上提取你所需要的数据。优点:功能非常强大的爬虫框架,不仅能便捷地构建request,还有强大的selector能够方便地解析response,最受欢迎的还是它的性能,既抓取和解析的速度,它的downloader是多线程的,request是异步......
  • 网络互联参考模型
    1.什么是协议 为了使数据可以在网络上从源传递到目的地,网络上所有设备需要“讲”相同的“语言”描述网络通信中“语言”规范的一组规则就是协议例如:两个人交谈,必须使用相同的语言,如果你说汉语,他说阿拉伯语……数据通信协议的定义决定数据的格式和传输的一组规则或者一组惯例2.协......
  • Ubuntu 10.04 安装Twisted、Scrapy爬虫框架
    Ubuntu10.04安装Twisted、Scrapy爬虫框架Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结ScrapyPython爬虫框架logo[1]构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个......
  • EndNote调整中文、英文参考文献的排序顺序
      本文介绍在EndNote软件中,使得参考文献按照语种排列,中文在前、英文在后的方法。  前期我们在文献管理EndNote软件自定义修改引文输出格式的方法一文中,详细介绍了文献管理软件EndNote的引用格式自定义方法,其中我们设置了将参考文献部分的文章按照文章语种进行排序,而这一设置在......
  • 利用word插入参考文献
    最近写论文牵涉到文献上标引用问题,找到一篇好文章,以保留做引用。写论文要有参考文献,但是每次写论文,遇到的第一个头疼的问题就是参考文献的插入。虽然以前知道word有很强大的插入参考文献的功能,也转载过别人写的经验总结,但是没有实际用过,现在用到了,把暂时遇......
  • scrapy ja3 tls
       #-*-coding:utf-8-*-importrandomfromscrapy.core.downloader.contextfactoryimportScrapyClientContextFactoryfromscrapy.core.downloader.handlers.http11importHTTP11DownloadHandler,ScrapyAgentORIGIN_CIPHERS='TLS13-AES-256-GCM-SHA38......
  • Evans偏微分方程第六章部分习题参考答案
    2.证明.按定义,\(H_0^1\)上的双线性形式\(B[u,v]=\int_U(a^{ij}u_{x_i}v_{x_j}+cuv)dx\),连续性(即\(|B[u,v]|\lesssim\|u\|_{H_0^1}\|v\|_{H_0^1}\))是显然的.下面看强制性:\[B[u,u]=\int_U(a^{ij}u_{x_i}u_{x_j}+cu^2)dx\]\[\ge\theta\|Du\|_{L^2}^2-\mu\|u\|_{L^2}^2\o......
  • 61基于java的学生考勤管理系统设计与实现(可参考做毕业设计)
    本章节给大家带来一个基于java学生考勤管理系统设计与实现,可适用于学生考勤系统,校园考勤,大学考勤管理,企业考勤系统,公司考勤系统,学校考勤系统。引言本文首先介绍了学生考勤管理系统的研究背景与意义,其次介绍了系统的总体功能设计,接着将对系统规划好的总体功能拆分成了各个功能子......
  • scrapy框架的user-agent替换列表
    在我们请求的时候会遇见ua反爬我们可以用一个ua的列表来更换实现反扒classRandomUADownloaderMiddleware:defprocess_request(self,request,spider):ua_list=["Mozilla/5.0(WindowsNT6.3;WOW64)AppleWebKit/537.36(KHTML,likeGecko)......
  • systemd病毒遏制流程参考
    systemd挖矿病毒遏制流程参考top查看进程占用情况systemctlstatus128724找出占用较高的恶意进程的相关进程killSTOP128724121095停止对应恶意PID进程,为服务器CPU降压(注:这里不推荐直接删除进程,因为挖矿往往存在定时任务,删除后还会自动生成,但停止恶意进程会使其陷......