Dre4m Shell
Server IP : 127.0.0.2  /  Your IP : 18.226.88.145
Web Server : Apache/2.4.18 (Ubuntu)
System :
User : www-data ( )
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /opt/odoo/addons/stock_landed_costs/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /opt/odoo/addons/stock_landed_costs/test/stock_landed_costs_rounding.yml
-
  In order to test the rounding in landed costs feature of stock, I create 2 landed cost
-
  Define undivisible units
-
  !record {model: product.uom, id: product_uom_unit_round_1}:
    category_id: product.product_uom_categ_unit
    name: Undivisible Unit(s)
    factor: 1.0
    rounding: 1.0
-
  I create 2 products with different cost prices and configure them for real_time valuation and real price costing method
-
  !record {model: product.product, id: product_landed_cost_3}:
    name: "LC product 3"
    cost_method: real
    uom_id: product_uom_unit_round_1
    valuation: real_time
    property_stock_account_input: o_expense
    property_stock_account_output: o_income
-
  !record {model: product.product, id: product_landed_cost_4}:
    name: "LC product 4"
    cost_method: real
    uom_id: product_uom_unit_round_1
    valuation: real_time
    property_stock_account_input: o_expense
    property_stock_account_output: o_income
-
  I create 2 pickings moving those products
-
  !record {model: stock.picking, id: picking_landed_cost_3}:
    name: 'LC_pick_3'
    picking_type_id: stock.picking_type_in
    move_lines:
      - name: move 3
        product_id: product_landed_cost_3
        product_uom_qty: 13
        product_uom: product_uom_unit_round_1
        location_id: stock.stock_location_customers
        location_dest_id: stock.stock_location_stock
-
  !record {model: stock.picking, id: picking_landed_cost_4}:
    name: 'LC_pick_4'
    picking_type_id: stock.picking_type_in
    move_lines:
      - name: move 4
        product_id: product_landed_cost_4
        product_uom_qty: 1
        product_uom: product.product_uom_dozen
        location_id: stock.stock_location_customers
        location_dest_id: stock.stock_location_stock
        price_unit: !eval 17.00/12.00
-
  We perform all the tests for LC_pick_3
-
  I receive picking LC_pick_3, and check how many quants are created
-
  !python {model: stock.picking, id: picking_landed_cost_3}: |
    self.move_lines.price_unit = 1.0

    self.action_confirm()
    self.action_assign()
    self.action_done()

    quants = self.move_lines.quant_ids
    assert len(quants) == 1
    assert quants.qty == 13
    assert quants.cost == 1.0
-
  I create a landed cost for picking 3
-
  !record {model: stock.landed.cost, id: stock_landed_cost_2}:
    picking_ids: [picking_landed_cost_3]
    account_journal_id: expenses_journal
    cost_lines:
      - name: 'equal split'
        split_method: 'equal'
        price_unit: 15
        product_id: product.product_product_1
    valuation_adjustment_lines: []
-
  I compute the landed cost using Compute button
-
  !python {model: stock.landed.cost, id: stock_landed_cost_2}: |
    self.compute_landed_cost()
-
  I check the valuation adjustment lines
-
  !python {model: stock.landed.cost, id: stock_landed_cost_2}: |
    for valuation in self.valuation_adjustment_lines:
        assert valuation.additional_landed_cost == 15
-
  I confirm the landed cost
-
  !python {model: stock.landed.cost, id: stock_landed_cost_2}: |
    self.button_validate()
-
  I check that the landed cost is now "Closed" and that it has an accounting entry
-
  !assert {model: stock.landed.cost, id: stock_landed_cost_2}:
    - state == 'done'
    - account_move_id
-
  I check the quants quantity and cost
-
  !python {model: stock.landed.cost, id: stock_landed_cost_2}: |
    for valuation in self.valuation_adjustment_lines:
        quants = valuation.move_id.quant_ids
        assert quants.mapped('qty') == [12.0, 1.0]
        assert quants.mapped('cost') == [2.15, 2.2]
-
  We perform all the tests for LC_pick_4
-
  I receive picking LC_pick_4, and check how many quants are created
-
  !python {model: stock.picking, id: picking_landed_cost_4}: |
    self.move_lines.price_unit = 17.0/12.0

    self.action_confirm()
    self.action_assign()
    self.action_done()

    quants = self.move_lines.quant_ids
    assert len(quants) == 2
    assert quants.mapped('qty') == [11.0, 1.0]
    assert [round(c, 2) for c in quants.mapped('cost')] == [1.42, 1.38]
-
  I create a landed cost for picking 4
-
  !record {model: stock.landed.cost, id: stock_landed_cost_3}:
    picking_ids: [picking_landed_cost_4]
    account_journal_id: expenses_journal
    cost_lines:
      - name: 'equal split'
        split_method: 'equal'
        price_unit: 11
        product_id: product.product_product_1
    valuation_adjustment_lines: []
-
  I compute the landed cost using Compute button
-
  !python {model: stock.landed.cost, id: stock_landed_cost_3}: |
    self.compute_landed_cost()
-
  I check the valuation adjustment lines
-
  !python {model: stock.landed.cost, id: stock_landed_cost_3}: |
    for valuation in self.valuation_adjustment_lines:
        assert valuation.additional_landed_cost == 11
-
  I confirm the landed cost
-
  !python {model: stock.landed.cost, id: stock_landed_cost_3}: |
    self.button_validate()
-
  I check that the landed cost is now "Closed" and that it has an accounting entry
-
  !assert {model: stock.landed.cost, id: stock_landed_cost_3}:
    - state == 'done'
    - account_move_id
-
  I check the quants quantity and cost
-
  !python {model: stock.landed.cost, id: stock_landed_cost_3}: |
    for valuation in self.valuation_adjustment_lines:
        quants = valuation.move_id.quant_ids
        assert quants.mapped('qty') == [11.0, 1.0]
        assert [round(c, 2) for c in quants.mapped('cost')] == [2.34, 2.26]

Anon7 - 2022
AnonSec Team