Merge lp:~openerp-dev/openobject-addons/stable-pos_fix-uco into lp:openobject-addons/6.0

Proposed by Ujjvala Collins
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-addons/stable-pos_fix-uco
Merge into: lp:openobject-addons/6.0
Diff against target: 220 lines (+71/-30)
2 files modified
point_of_sale/point_of_sale.py (+15/-8)
point_of_sale/point_of_sale_workflow.xml (+56/-22)
To merge this branch: bzr merge lp:~openerp-dev/openobject-addons/stable-pos_fix-uco
Reviewer Review Type Date Requested Status
Mustufa Rangwala (Open ERP) (community) Approve
qdp (OpenERP) Pending
Review via email: mp+73786@code.launchpad.net

Description of the change

[FIX] point_of_sale:
-----------------------------
* Fixed problem of accounting entries for pos order when invoice is not created.
* Applied changes from xrg-branch related to workflow. (Thanks to P. Christeas <email address hidden> !)

To post a comment you must log in.
Revision history for this message
Mustufa Rangwala (Open ERP) (mra-tinyerp) wrote :

Thanks Ujjawala for fix.

review: Approve

Unmerged revisions

4795. By Ujjvala Collins

[ADD] point_of_sale: Added date and partner_id for account moves.

4794. By Ujjvala Collins

[FIX,IMP] point_of_sale: Fixed error if account is not given on taxes. Improved string for move lines.

4793. By Ujjvala Collins

[IMP] point_of_sale: Small improvement.

4792. By xrg

[FIX] point_of_sale: Fix the problem of accounting entries when invoice is not created.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'point_of_sale/point_of_sale.py'
2--- point_of_sale/point_of_sale.py 2011-06-02 05:14:55 +0000
3+++ point_of_sale/point_of_sale.py 2011-09-02 11:37:26 +0000
4@@ -699,11 +699,14 @@
5 account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context).id
6
7 order_account = order.partner_id and order.partner_id.property_account_receivable and order.partner_id.property_account_receivable.id or account_def or curr_c.account_receivable.id
8+ partner_id = order.partner_id and order.partner_id.id or False
9
10 # Create an entry for the sale
11 move_id = account_move_obj.create(cr, uid, {
12 'journal_id': order.sale_journal.id,
13 'period_id': period,
14+ 'ref': order.name,
15+ 'date': order.date_order,
16 }, context=context)
17
18 # Create an move for each order line
19@@ -722,6 +725,8 @@
20 group_key = (tax['tax_code_id'],
21 tax['base_code_id'],
22 tax['account_collected_id'])
23+ if not tax['account_collected_id']:
24+ raise osv.except_osv(_('No Account !'),_("You have to configure Invoice Tax Account on the '%s' tax!") % (tax['name']))
25
26 if group_key in group_tax:
27 group_tax[group_key] += round(tax['amount'], 2)
28@@ -762,7 +767,7 @@
29
30 # Create a move for the line
31 account_move_line_obj.create(cr, uid, {
32- 'name': "aa"+order.name,
33+ 'name': _("From sales of : %s") % order.name,
34 'date': order.date_order[:10],
35 'ref': order.contract_number or order.name,
36 'quantity': line.qty,
37@@ -776,7 +781,7 @@
38 'period_id': period,
39 'tax_code_id': tax_code_id,
40 'tax_amount': tax_amount,
41- 'partner_id': order.partner_id and order.partner_id.id or False
42+ 'partner_id': partner_id
43 }, context=context)
44
45 # For each remaining tax with a code, whe create a move line
46@@ -791,7 +796,7 @@
47 continue
48
49 account_move_line_obj.create(cr, uid, {
50- 'name': "bb" + order.name,
51+ 'name': _('Tax for : %s') % order.name,
52 'date': order.date_order[:10],
53 'ref': order.contract_number or order.name,
54 'product_id':line.product_id.id,
55@@ -805,6 +810,7 @@
56 'period_id': period,
57 'tax_code_id': tax_code_id,
58 'tax_amount': tax_amount,
59+ 'partner_id': partner_id
60 }, context=context)
61
62
63@@ -812,7 +818,7 @@
64 (tax_code_pos, base_code_pos, account_pos)= (0, 1, 2)
65 for key, amount in group_tax.items():
66 account_move_line_obj.create(cr, uid, {
67- 'name': "cc" + order.name,
68+ 'name': _("Tax for : %s") % order.name,
69 'date': order.date_order[:10],
70 'ref': order.contract_number or order.name,
71 'move_id': move_id,
72@@ -826,11 +832,12 @@
73 'period_id': period,
74 'tax_code_id': key[tax_code_pos],
75 'tax_amount': amount,
76+ 'partner_id': partner_id
77 }, context=context)
78
79 # counterpart
80 to_reconcile.append(account_move_line_obj.create(cr, uid, {
81- 'name': "dd" + order.name,
82+ 'name': _("Sale of %s") % order.name,
83 'date': order.date_order[:10],
84 'ref': order.contract_number or order.name,
85 'move_id': move_id,
86@@ -842,7 +849,7 @@
87 or 0.0,
88 'journal_id': order.sale_journal.id,
89 'period_id': period,
90- 'partner_id': order.partner_id and order.partner_id.id or False
91+ 'partner_id': partner_id
92 }, context=context))
93
94
95@@ -854,7 +861,7 @@
96 ' "%s" (id:%d)') % (order.sale_journal.name, order.sale_journal.id, ))
97 for payment in order.statement_ids:
98 # Create one entry for the payment
99- if payment.is_acc:
100+ if payment.is_acc or move_id:
101 continue
102 account_move_obj.create(cr, uid, {
103 'journal_id': payment.statement_id.journal_id.id,
104@@ -875,7 +882,7 @@
105 'statement_id': False,
106 'account_id': order_account
107 })
108-
109+ account_move_obj.post(cr, uid, [move_id], context=context)
110 self.write(cr, uid, order.id, {'state':'done'}, context=context)
111 return True
112
113
114=== modified file 'point_of_sale/point_of_sale_workflow.xml'
115--- point_of_sale/point_of_sale_workflow.xml 2011-01-14 00:11:01 +0000
116+++ point_of_sale/point_of_sale_workflow.xml 2011-09-02 11:37:26 +0000
117@@ -22,22 +22,36 @@
118 <field name="kind">function</field>
119 </record>
120
121- <record model="workflow.activity" id="act_done">
122+ <record model="workflow.activity" id="act_picked">
123 <field name="wkf_id" ref="wkf_pos"/>
124- <field name="name">done</field>
125- <field name="flow_stop">True</field>
126- <field name="action">action_done()</field>
127+ <field name="name">picked</field>
128+ <field name="action">create_picking()</field>
129 <field name="kind">function</field>
130 </record>
131
132 <record model="workflow.activity" id="act_invoiced">
133 <field name="wkf_id" ref="wkf_pos"/>
134 <field name="name">invoiced</field>
135- <field name="flow_stop">True</field>
136 <field name="action">action_invoice()</field>
137 <field name="kind">function</field>
138 </record>
139
140+ <record model="workflow.activity" id="act_ticketed">
141+ <field name="wkf_id" ref="wkf_pos"/>
142+ <field name="name">ticketed</field>
143+ <field name="action">create_account_move()</field>
144+ <field name="kind">function</field>
145+ </record>
146+
147+ <record model="workflow.activity" id="act_done">
148+ <field name="wkf_id" ref="wkf_pos"/>
149+ <field name="name">done</field>
150+ <field name="flow_stop">True</field>
151+ <field name="action"></field>
152+ <!--<field name="action">action_done()</field>-->
153+ <field name="kind">dummy</field>
154+ </record>
155+
156 <record model="workflow.activity" id="act_cancel">
157 <field name="wkf_id" ref="wkf_pos"/>
158 <field name="name">cancel</field>
159@@ -56,24 +70,44 @@
160 <field name="signal">paid</field>
161 </record>
162
163- <record model="workflow.transition" id="trans_paid_done">
164- <field name="act_from" ref="act_paid"/>
165- <field name="act_to" ref="act_done"/>
166- <field name="signal">done</field>
167- </record>
168-
169- <record model="workflow.transition" id="trans_paid_invoice">
170- <field name="act_from" ref="act_paid"/>
171+ <record model="workflow.transition" id="trans_paid_cancel">
172+ <field name="act_from" ref="act_paid"/>
173+ <field name="act_to" ref="act_cancel"/>
174+ <field name="signal">cancel</field>
175+ </record>
176+
177+ <record model="workflow.transition" id="trans_paid_picked">
178+ <field name="act_from" ref="act_paid"/>
179+ <field name="act_to" ref="act_picked"/>
180+ </record>
181+
182+ <record model="workflow.transition" id="trans_picked_cancel">
183+ <field name="act_from" ref="act_picked"/>
184+ <field name="act_to" ref="act_cancel"/>
185+ <field name="signal">cancel</field>
186+ </record>
187+
188+ <record model="workflow.transition" id="trans_picked_ticketed">
189+ <field name="act_from" ref="act_picked"/>
190+ <field name="act_to" ref="act_ticketed"/>
191+ <field name="condition">not invoice_wanted</field>
192+ </record>
193+
194+ <record model="workflow.transition" id="trans_picked_invoice">
195+ <field name="act_from" ref="act_picked"/>
196 <field name="act_to" ref="act_invoiced"/>
197- <field name="signal">invoice</field>
198- </record>
199-
200- <record model="workflow.transition" id="trans_paid_cancel">
201- <field name="act_from" ref="act_paid"/>
202- <field name="act_to" ref="act_cancel"/>
203- <field name="signal">cancel</field>
204- </record>
205-
206+ <field name="condition">invoice_wanted</field>
207+ </record>
208+
209+ <record model="workflow.transition" id="trans_ticketed_done">
210+ <field name="act_from" ref="act_ticketed"/>
211+ <field name="act_to" ref="act_done"/>
212+ </record>
213+
214+ <record model="workflow.transition" id="trans_invoiced_done">
215+ <field name="act_from" ref="act_invoiced"/>
216+ <field name="act_to" ref="act_done"/>
217+ </record>
218
219 </data>
220 </openerp>