{"action":"created","comment":{"url":"https://api.github.com/repos/odoo/odoo/pulls/comments/46113490","id":46113490,"diff_hunk":"@@ -0,0 +1,243 @@\n+# -*- coding: utf-8 -*-\n+# Part of Odoo. See LICENSE file for full copyright and licensing details.\n+import product\n+from odoo import api, fields, models, _\n+from odoo.exceptions import UserError\n+from odoo.tools import float_compare, float_round\n+import odoo.addons.decimal_precision as dp\n+\n+\n+class StockLandedCost(models.Model):\n+    _name = 'stock.landed.cost'\n+    _description = 'Stock Landed Cost'\n+    _inherit = 'mail.thread'\n+\n+    def get_valuation_lines(self):\n+        lines = []\n+        if not self.picking_ids:\n+            return lines\n+\n+        for picking in self.picking_ids:\n+            for move in picking.move_lines.filtered(lambda move: move.product_id.valuation == 'real_time' or move.product_id.cost_method == 'real'):\n+                #it doesn't make sense to make a landed cost for a product that isn't set as being valuated in real time at real cost\n+                total_cost = 0.0\n+                weight = move.product_id.weight * move.product_qty\n+                volume = move.product_id.volume * move.product_qty\n+                total_cost = sum([quant.cost * quant.qty for quant in move.quant_ids])\n+                vals = dict(product_id=move.product_id.id, move_id=move.id, quantity=move.product_uom_qty, former_cost=total_cost, weight=weight, volume=volume)\n+                lines.append(vals)\n+        if not lines:\n+            raise UserError(_('The selected picking does not contain any move that would be impacted by landed costs. Landed costs are only possible for products configured in real time valuation with real price costing method. Please make sure it is the case, or you selected the correct picking'))\n+        return lines\n+\n+    name = fields.Char(track_visibility='always', default=lambda self: self.env['ir.sequence'].next_by_code('stock.landed.cost'), readonly=True, copy=False)\n+    date = fields.Date(required=True, states={'done': [('readonly', True)]}, default=fields.Date.context_today, track_visibility='onchange', copy=False)\n+    picking_ids = fields.Many2many('stock.picking', string='Pickings', states={'done': [('readonly', True)]}, copy=False)\n+    cost_lines = fields.One2many('stock.landed.cost.lines', 'cost_id', string='Cost Lines', states={'done': [('readonly', True)]})\n+    valuation_adjustment_lines = fields.One2many('stock.valuation.adjustment.lines', 'cost_id', string='Valuation Adjustments', states={'done': [('readonly', True)]})","path":"addons/stock_landed_costs/models/stock_landed_costs.py","position":37,"original_position":37,"commit_id":"980809e9a0ccc99b88d6fc92fab4c3cc282dd7e5","original_commit_id":"980809e9a0ccc99b88d6fc92fab4c3cc282dd7e5","user":{"login":"hmo-odoo","id":6368068,"avatar_url":"https://avatars.githubusercontent.com/u/6368068?v=3","gravatar_id":"","url":"https://api.github.com/users/hmo-odoo","html_url":"https://github.com/hmo-odoo","followers_url":"https://api.github.com/users/hmo-odoo/followers","following_url":"https://api.github.com/users/hmo-odoo/following{/other_user}","gists_url":"https://api.github.com/users/hmo-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/hmo-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmo-odoo/subscriptions","organizations_url":"https://api.github.com/users/hmo-odoo/orgs","repos_url":"https://api.github.com/users/hmo-odoo/repos","events_url":"https://api.github.com/users/hmo-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/hmo-odoo/received_events","type":"User","site_admin":false},"body":"rename valuation_adjustment_lines with valuation_adjustment_line_ids","created_at":"2015-11-30T07:08:06Z","updated_at":"2015-11-30T07:08:06Z","html_url":"https://github.com/odoo/odoo/pull/8780#discussion_r46113490","pull_request_url":"https://api.github.com/repos/odoo/odoo/pulls/8780","_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments/46113490"},"html":{"href":"https://github.com/odoo/odoo/pull/8780#discussion_r46113490"},"pull_request":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8780"}}},"pull_request":{"url":"https://api.github.com/repos/odoo/odoo/pulls/8780","id":46363663,"html_url":"https://github.com/odoo/odoo/pull/8780","diff_url":"https://github.com/odoo/odoo/pull/8780.diff","patch_url":"https://github.com/odoo/odoo/pull/8780.patch","issue_url":"https://api.github.com/repos/odoo/odoo/issues/8780","number":8780,"state":"open","locked":false,"title":"[MIG] Master stock landed cost new api jaa","user":{"login":"jaa-odoo","id":12252244,"avatar_url":"https://avatars.githubusercontent.com/u/12252244?v=3","gravatar_id":"","url":"https://api.github.com/users/jaa-odoo","html_url":"https://github.com/jaa-odoo","followers_url":"https://api.github.com/users/jaa-odoo/followers","following_url":"https://api.github.com/users/jaa-odoo/following{/other_user}","gists_url":"https://api.github.com/users/jaa-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/jaa-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaa-odoo/subscriptions","organizations_url":"https://api.github.com/users/jaa-odoo/orgs","repos_url":"https://api.github.com/users/jaa-odoo/repos","events_url":"https://api.github.com/users/jaa-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/jaa-odoo/received_events","type":"User","site_admin":false},"body":"<strong>Task:</strong> https://www.odoo.com/web#id=13132&view_type=form&model=project.task&menu_id=3942&action=327\r\n<strong>Pad:</strong> https://pad.odoo.com/p/openerp-project.task-363ML5K2BF","created_at":"2015-09-30T05:50:02Z","updated_at":"2015-11-30T07:08:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ced521656ebf70a2bf3d4f28f86325161ac710df","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/odoo/odoo/pulls/8780/commits","review_comments_url":"https://api.github.com/repos/odoo/odoo/pulls/8780/comments","review_comment_url":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/odoo/odoo/issues/8780/comments","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/980809e9a0ccc99b88d6fc92fab4c3cc282dd7e5","head":{"label":"odoo-dev:master-stock-landed-cost-new-api-jaa","ref":"master-stock-landed-cost-new-api-jaa","sha":"980809e9a0ccc99b88d6fc92fab4c3cc282dd7e5","user":{"login":"odoo-dev","id":7466976,"avatar_url":"https://avatars.githubusercontent.com/u/7466976?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo-dev","html_url":"https://github.com/odoo-dev","followers_url":"https://api.github.com/users/odoo-dev/followers","following_url":"https://api.github.com/users/odoo-dev/following{/other_user}","gists_url":"https://api.github.com/users/odoo-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo-dev/subscriptions","organizations_url":"https://api.github.com/users/odoo-dev/orgs","repos_url":"https://api.github.com/users/odoo-dev/repos","events_url":"https://api.github.com/users/odoo-dev/events{/privacy}","received_events_url":"https://api.github.com/users/odoo-dev/received_events","type":"Organization","site_admin":false},"repo":{"id":19853934,"name":"odoo","full_name":"odoo-dev/odoo","owner":{"login":"odoo-dev","id":7466976,"avatar_url":"https://avatars.githubusercontent.com/u/7466976?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo-dev","html_url":"https://github.com/odoo-dev","followers_url":"https://api.github.com/users/odoo-dev/followers","following_url":"https://api.github.com/users/odoo-dev/following{/other_user}","gists_url":"https://api.github.com/users/odoo-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo-dev/subscriptions","organizations_url":"https://api.github.com/users/odoo-dev/orgs","repos_url":"https://api.github.com/users/odoo-dev/repos","events_url":"https://api.github.com/users/odoo-dev/events{/privacy}","received_events_url":"https://api.github.com/users/odoo-dev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/odoo-dev/odoo","description":"RD Dev Repository","fork":true,"url":"https://api.github.com/repos/odoo-dev/odoo","forks_url":"https://api.github.com/repos/odoo-dev/odoo/forks","keys_url":"https://api.github.com/repos/odoo-dev/odoo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/odoo-dev/odoo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/odoo-dev/odoo/teams","hooks_url":"https://api.github.com/repos/odoo-dev/odoo/hooks","issue_events_url":"https://api.github.com/repos/odoo-dev/odoo/issues/events{/number}","events_url":"https://api.github.com/repos/odoo-dev/odoo/events","assignees_url":"https://api.github.com/repos/odoo-dev/odoo/assignees{/user}","branches_url":"https://api.github.com/repos/odoo-dev/odoo/branches{/branch}","tags_url":"https://api.github.com/repos/odoo-dev/odoo/tags","blobs_url":"https://api.github.com/repos/odoo-dev/odoo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/odoo-dev/odoo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/odoo-dev/odoo/git/refs{/sha}","trees_url":"https://api.github.com/repos/odoo-dev/odoo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/odoo-dev/odoo/statuses/{sha}","languages_url":"https://api.github.com/repos/odoo-dev/odoo/languages","stargazers_url":"https://api.github.com/repos/odoo-dev/odoo/stargazers","contributors_url":"https://api.github.com/repos/odoo-dev/odoo/contributors","subscribers_url":"https://api.github.com/repos/odoo-dev/odoo/subscribers","subscription_url":"https://api.github.com/repos/odoo-dev/odoo/subscription","commits_url":"https://api.github.com/repos/odoo-dev/odoo/commits{/sha}","git_commits_url":"https://api.github.com/repos/odoo-dev/odoo/git/commits{/sha}","comments_url":"https://api.github.com/repos/odoo-dev/odoo/comments{/number}","issue_comment_url":"https://api.github.com/repos/odoo-dev/odoo/issues/comments{/number}","contents_url":"https://api.github.com/repos/odoo-dev/odoo/contents/{+path}","compare_url":"https://api.github.com/repos/odoo-dev/odoo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/odoo-dev/odoo/merges","archive_url":"https://api.github.com/repos/odoo-dev/odoo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/odoo-dev/odoo/downloads","issues_url":"https://api.github.com/repos/odoo-dev/odoo/issues{/number}","pulls_url":"https://api.github.com/repos/odoo-dev/odoo/pulls{/number}","milestones_url":"https://api.github.com/repos/odoo-dev/odoo/milestones{/number}","notifications_url":"https://api.github.com/repos/odoo-dev/odoo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/odoo-dev/odoo/labels{/name}","releases_url":"https://api.github.com/repos/odoo-dev/odoo/releases{/id}","created_at":"2014-05-16T11:16:19Z","updated_at":"2015-11-23T04:22:05Z","pushed_at":"2015-11-30T07:00:39Z","git_url":"git://github.com/odoo-dev/odoo.git","ssh_url":"git@github.com:odoo-dev/odoo.git","clone_url":"https://github.com/odoo-dev/odoo.git","svn_url":"https://github.com/odoo-dev/odoo","homepage":"https://www.odoo.com","size":1133366,"stargazers_count":63,"watchers_count":63,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":27,"mirror_url":null,"open_issues_count":0,"forks":27,"open_issues":0,"watchers":63,"default_branch":"master"}},"base":{"label":"odoo:master","ref":"master","sha":"8de86e7c5cbede8f4ccbb0b8e77e05ac701876c9","user":{"login":"odoo","id":6368483,"avatar_url":"https://avatars.githubusercontent.com/u/6368483?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo","html_url":"https://github.com/odoo","followers_url":"https://api.github.com/users/odoo/followers","following_url":"https://api.github.com/users/odoo/following{/other_user}","gists_url":"https://api.github.com/users/odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo/subscriptions","organizations_url":"https://api.github.com/users/odoo/orgs","repos_url":"https://api.github.com/users/odoo/repos","events_url":"https://api.github.com/users/odoo/events{/privacy}","received_events_url":"https://api.github.com/users/odoo/received_events","type":"Organization","site_admin":false},"repo":{"id":19745004,"name":"odoo","full_name":"odoo/odoo","owner":{"login":"odoo","id":6368483,"avatar_url":"https://avatars.githubusercontent.com/u/6368483?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo","html_url":"https://github.com/odoo","followers_url":"https://api.github.com/users/odoo/followers","following_url":"https://api.github.com/users/odoo/following{/other_user}","gists_url":"https://api.github.com/users/odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo/subscriptions","organizations_url":"https://api.github.com/users/odoo/orgs","repos_url":"https://api.github.com/users/odoo/repos","events_url":"https://api.github.com/users/odoo/events{/privacy}","received_events_url":"https://api.github.com/users/odoo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/odoo/odoo","description":"Odoo (formerly OpenERP). Open Source Apps To Grow Your Business.","fork":false,"url":"https://api.github.com/repos/odoo/odoo","forks_url":"https://api.github.com/repos/odoo/odoo/forks","keys_url":"https://api.github.com/repos/odoo/odoo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/odoo/odoo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/odoo/odoo/teams","hooks_url":"https://api.github.com/repos/odoo/odoo/hooks","issue_events_url":"https://api.github.com/repos/odoo/odoo/issues/events{/number}","events_url":"https://api.github.com/repos/odoo/odoo/events","assignees_url":"https://api.github.com/repos/odoo/odoo/assignees{/user}","branches_url":"https://api.github.com/repos/odoo/odoo/branches{/branch}","tags_url":"https://api.github.com/repos/odoo/odoo/tags","blobs_url":"https://api.github.com/repos/odoo/odoo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/odoo/odoo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/odoo/odoo/git/refs{/sha}","trees_url":"https://api.github.com/repos/odoo/odoo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/{sha}","languages_url":"https://api.github.com/repos/odoo/odoo/languages","stargazers_url":"https://api.github.com/repos/odoo/odoo/stargazers","contributors_url":"https://api.github.com/repos/odoo/odoo/contributors","subscribers_url":"https://api.github.com/repos/odoo/odoo/subscribers","subscription_url":"https://api.github.com/repos/odoo/odoo/subscription","commits_url":"https://api.github.com/repos/odoo/odoo/commits{/sha}","git_commits_url":"https://api.github.com/repos/odoo/odoo/git/commits{/sha}","comments_url":"https://api.github.com/repos/odoo/odoo/comments{/number}","issue_comment_url":"https://api.github.com/repos/odoo/odoo/issues/comments{/number}","contents_url":"https://api.github.com/repos/odoo/odoo/contents/{+path}","compare_url":"https://api.github.com/repos/odoo/odoo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/odoo/odoo/merges","archive_url":"https://api.github.com/repos/odoo/odoo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/odoo/odoo/downloads","issues_url":"https://api.github.com/repos/odoo/odoo/issues{/number}","pulls_url":"https://api.github.com/repos/odoo/odoo/pulls{/number}","milestones_url":"https://api.github.com/repos/odoo/odoo/milestones{/number}","notifications_url":"https://api.github.com/repos/odoo/odoo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/odoo/odoo/labels{/name}","releases_url":"https://api.github.com/repos/odoo/odoo/releases{/id}","created_at":"2014-05-13T15:38:58Z","updated_at":"2015-11-30T06:20:09Z","pushed_at":"2015-11-30T07:00:41Z","git_url":"git://github.com/odoo/odoo.git","ssh_url":"git@github.com:odoo/odoo.git","clone_url":"https://github.com/odoo/odoo.git","svn_url":"https://github.com/odoo/odoo","homepage":"https://www.odoo.com","size":1212031,"stargazers_count":3442,"watchers_count":3442,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3140,"mirror_url":null,"open_issues_count":2885,"forks":3140,"open_issues":2885,"watchers":3442,"default_branch":"9.0"}},"_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8780"},"html":{"href":"https://github.com/odoo/odoo/pull/8780"},"issue":{"href":"https://api.github.com/repos/odoo/odoo/issues/8780"},"comments":{"href":"https://api.github.com/repos/odoo/odoo/issues/8780/comments"},"review_comments":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8780/comments"},"review_comment":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8780/commits"},"statuses":{"href":"https://api.github.com/repos/odoo/odoo/statuses/980809e9a0ccc99b88d6fc92fab4c3cc282dd7e5"}}}}