~eduardo-bayardo-bias/openbias/addons_nixus

« back to all changes in this revision

Viewing changes to sale/test/invoice_packing.xml

  • Committer: root
  • Date: 2011-09-16 15:42:07 UTC
  • Revision ID: root@openerp-20110916154207-yioahdf7xbjus3hu
sincronizar

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="utf-8"?>
 
2
<openerp>
 
3
    <data>
 
4
        <!-- 
 
5
            Tests for an order with invoice from the packings
 
6
        -->
 
7
 
 
8
        <!-- Resource: sale.order -->
 
9
        <record id="test_order_2" model="sale.order">
 
10
            <field name="name">test_order_2</field>
 
11
            <field name="note">This Sale Order was used to test the following use case during the installation: Order - Picking - Invoice - Payment</field>
 
12
            <field name="shop_id" ref="shop" />
 
13
            <field model="product.pricelist" name="pricelist_id" search="[]" />
 
14
            <field name="user_id" ref="base.user_root" />
 
15
            <field name="partner_id" ref="base.res_partner_agrolait" />
 
16
            <field name="partner_invoice_id" ref="base.res_partner_address_8invoice" /> <!-- you should patch your server to get res_partner_address_8invoice, or revert to res_partner_address_8 -->
 
17
            <field name="partner_shipping_id" ref="base.res_partner_address_8delivery" /> <!-- you should patch your server to get res_partner_address_8delivery, or revert to res_partner_address_8 -->
 
18
            <field name="partner_order_id" ref="base.res_partner_address_8" />
 
19
            <field name="order_policy">picking</field>
 
20
        </record>
 
21
        <!-- Resource: sale.order.line -->
 
22
        <record id="test_order_2_line_1" model="sale.order.line">
 
23
            <field name="order_id" ref="test_order_2" />
 
24
            <field name="name">[PC1] Basic PC</field>
 
25
            <field name="product_id" ref="product.product_product_pc1" />
 
26
            <field name="product_uom" ref="product.product_uom_unit" />
 
27
            <field name="price_unit">450</field>
 
28
            <field name="product_uom_qty">2</field>
 
29
            <field name="product_uos_qty">2</field>
 
30
            <field name="type">make_to_stock</field>
 
31
        </record>
 
32
        <record id="test_order_2_line_3" model="sale.order.line">
 
33
            <field name="order_id" ref="test_order_2" />
 
34
            <field name="name">[RAM512] DDR 512MB PC400</field>
 
35
            <field name="product_id" ref="product.product_product_ram512" />
 
36
            <field name="product_uom" ref="product.product_uom_unit" />
 
37
            <field name="price_unit">90</field>
 
38
            <field name="product_uom_qty">3</field>
 
39
            <field name="product_uos_qty">3</field>
 
40
            <field name="type">make_to_stock</field>
 
41
        </record>
 
42
        <assert id="test_order_2" model="sale.order" severity="error" string="The amount of the sale order is correctly computed">
 
43
            <test expr="amount_untaxed == 450*2 + 90*3" />
 
44
            <test expr="state">draft</test>
 
45
        </assert>
 
46
 
 
47
        <workflow action="order_confirm" model="sale.order" ref="test_order_2" />
 
48
        <assert id="test_order_2" model="sale.order" string="the sale order is now in progress">
 
49
            <test expr="state">progress</test>
 
50
        </assert>
 
51
 
 
52
        <!-- Treat generated picking -->
 
53
        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order has now a correspending packing">
 
54
            <test expr="len(picking_ids) == 1" />
 
55
            <test expr="picking_ids[0].invoice_state">2binvoiced</test>
 
56
            <test expr="picking_ids[0].address_id == partner_shipping_id" />
 
57
        </assert>
 
58
 
 
59
        <!-- Here we need to use the function tag because action_assign is a method of stock_picking and not part of the workflow -->
 
60
        <function model="stock.picking" name="action_assign">
 
61
            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
 
62
        </function>
 
63
        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is now assigned">
 
64
            <test expr="picking_ids[0].state">assigned</test>
 
65
        </assert>
 
66
 
 
67
        <!-- Do the same as in wizard_partial_picking lines 143-144 -->
 
68
        <function model="stock.picking" name="action_move">
 
69
            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
 
70
        </function>
 
71
        <workflow action="button_done" model="stock.picking">
 
72
            <value eval="obj(ref('test_order_2')).picking_ids[0].id" model="sale.order" />
 
73
        </workflow>
 
74
        <assert id="test_order_2" model="sale.order" string="the sale order's picking is now done">
 
75
            <test expr="picking_ids[0].state">done</test>
 
76
        </assert>
 
77
 
 
78
        <!-- Run all schedulers -->
 
79
        <function model="mrp.procurement" name="run_scheduler" />
 
80
        <assert id="test_order_2" model="sale.order" string="the sale order is now done">
 
81
            <test expr="state">done</test>
 
82
            <test expr="shipped == True" />
 
83
            <test expr="invoiced == False" />
 
84
        </assert>
 
85
 
 
86
        <!-- Invoice from the packing -->
 
87
        <function model="stock.picking" name="action_invoice_create">
 
88
            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
 
89
            <value eval="ref('account.sales_journal')" />
 
90
            <value eval="" />
 
91
            <value eval="'out_invoice'" />
 
92
        </function>
 
93
        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is invoiced">
 
94
            <test expr="picking_ids[0].invoice_state">invoiced</test>
 
95
            <test expr="len(invoice_ids) == 1" />
 
96
            <test expr="invoice_ids[0].amount_untaxed == amount_untaxed" />
 
97
            <test expr="invoice_ids[0].amount_total == amount_total" />
 
98
            <test expr="invoice_ids[0].reconciled == False" />
 
99
            <test expr="invoice_ids[0].residual == 450*2 + 90*3" />
 
100
            <test expr="invoice_ids[0].state">draft</test>
 
101
            <test expr="invoice_ids[0].address_invoice_id == partner_invoice_id" />
 
102
        </assert>
 
103
 
 
104
        <!-- Confirm the invoice -->
 
105
        <workflow action="invoice_open" model="account.invoice">
 
106
            <value eval="obj(ref('test_order_2')).invoice_ids[0].id" model="sale.order" />
 
107
        </workflow>
 
108
        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is invoiced">
 
109
            <test expr="invoice_ids[0].reconciled == False" />
 
110
            <test expr="invoice_ids[0].residual == amount_total" />
 
111
            <test expr="invoice_ids[0].state">open</test>
 
112
        </assert>
 
113
 
 
114
        <!-- Pay the invoice -->
 
115
        <function model="account.invoice" name="pay_and_reconcile">
 
116
            <value eval="[obj(ref('test_order_2')).invoice_ids[0].id]" model="sale.order" />
 
117
            <value eval="obj(ref('test_order_2')).amount_total" model="sale.order" />
 
118
            <value eval="ref('account.cash')" />
 
119
            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
 
120
            <value eval="ref('account.bank_journal')" />
 
121
            <value eval="ref('account.cash')" />
 
122
            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
 
123
            <value eval="ref('account.bank_journal')" />
 
124
        </function>
 
125
        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's invoice is now paid">
 
126
            <test expr="invoice_ids[0].reconciled == True" />
 
127
            <test expr="invoice_ids[0].residual == 0.0" />
 
128
            <test expr="invoice_ids[0].state">paid</test>
 
129
            <test expr="state">done</test>
 
130
            <test expr="shipped == True" />
 
131
            <test expr="invoiced == True" />
 
132
        </assert>
 
133
    </data>
 
134
</openerp>