Merge lp:~openerp-dev/openobject-addons/trunk-review-pos into lp:openobject-addons
- trunk-review-pos
- Merge into trunk
Status: | Needs review |
---|---|
Proposed branch: | lp:~openerp-dev/openobject-addons/trunk-review-pos |
Merge into: | lp:openobject-addons |
Diff against target: |
362 lines (+67/-32) 9 files modified
hr_expense/hr_expense_demo.xml (+3/-0) point_of_sale/point_of_sale.py (+38/-18) point_of_sale/point_of_sale_view.xml (+8/-9) point_of_sale/security/point_of_sale_security.xml (+1/-0) point_of_sale/static/src/js/models.js (+1/-1) point_of_sale/static/src/js/screens.js (+4/-1) point_of_sale/static/src/js/widgets.js (+10/-1) point_of_sale/wizard/pos_payment.xml (+1/-1) point_of_sale/wizard/pos_session_opening.xml (+1/-1) |
To merge this branch: | bzr merge lp:~openerp-dev/openobject-addons/trunk-review-pos |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
OpenERP Core Team | Pending | ||
Atul Patel(OpenERP) | Pending | ||
Review via email: mp+166217@code.launchpad.net |
This proposal supersedes a proposal from 2013-03-07.
Commit message
Description of the change
Hello,
Task: Review POS
Frontend:
* When leaving a POS session, we need a warning to say we will loose pending orders if there are some.
additionally, in the backend, "start selling" should be resumed to "resume session" if the session was already opened
PoS Backend, product form:
* Change the demo data so that the PoS category reflects exactly the product categories to avoid confusion when testing the software
* When setting "PoS product", the pos category must be required
* "Sale Condition" and "Point of Sale Group" should be in <group colspan="2">
Thank You.
Atul Patel(OpenERP) (atp-openerp) wrote : Posted in a previous version of this proposal | # |
- 8539. By Atul Patel(OpenERP)
-
[MERGE]: Merged with addons
- 8540. By Nimesh Contractor(Open ERP)
-
[MERGE] with Trunk.
- 8541. By Harry (OpenERP)
-
[MERGE] upstream
- 8542. By Harry (OpenERP)
-
[MERGE] upstream
- 8543. By Harry (OpenERP)
-
[FIX] pos: could not able to pos open session if already opened session of another user.
- 8544. By Nimesh Contractor(Open ERP)
-
[MERGE] with trunk.
- 8545. By Nimesh Contractor(Open ERP)
-
[IMP] revert the chages that get session_uid form the action
- 8546. By Nimesh Contractor(Open ERP)
-
[IMP] user can view only their session. forwrod prot form lp:~openerp-dev/openobject-addons/7.0-opw-595033-msh.
- 8547. By Nimesh Contractor(Open ERP)
-
[IMP] remove uid domain from serach session becase we have added record rule for that in previos revesion.
- 8548. By Nimesh Contractor(Open ERP)
-
[MERGE] with trunk.
- 8549. By Nimesh Contractor(Open ERP)
-
[IMP] fatch all opened sessions because, admin can view all the session of other usres.
- 8550. By Nimesh Contractor(Open ERP)
-
[IMP] remove _check_pos_config constraint, no need of it. because if user has already a session then it will show resume session and close button.
- 8551. By Nimesh Contractor(Open ERP)
-
[MERGE] with addons.
- 8552. By Nimesh Contractor(Open ERP)
-
[MERGE] with trunk.
- 8553. By Nimesh Contractor(Open ERP)
-
[MERGE] with trunk.
- 8554. By Kunal Chavda
-
[MERGE] with Trunk
- 8555. By Kunal Chavda
-
[MERGE]with latest trunk.
- 8556. By Kunal Chavda
-
[MERGE]with latest trunk.
- 8557. By Kunal Chavda
-
[MERGE]with latest.
- 8558. By Kunal Chavda
-
[REM]Reverted revision 8550.
- 8559. By Kunal Chavda
-
[MERGE]with latest.
- 8560. By Kunal Chavda
-
[FIX] when payment has been done and close session than warning should not be come. Also when try to payment and without pay goes to back than that time remove paymenline.
- 8561. By Kunal Chavda
-
[MERGE]with latest trunk.
- 8562. By Kunal Chavda
-
[REM]revert revision 8546 and 8549 for backend isuue2.
Unmerged revisions
- 8562. By Kunal Chavda
-
[REM]revert revision 8546 and 8549 for backend isuue2.
- 8561. By Kunal Chavda
-
[MERGE]with latest trunk.
- 8560. By Kunal Chavda
-
[FIX] when payment has been done and close session than warning should not be come. Also when try to payment and without pay goes to back than that time remove paymenline.
- 8559. By Kunal Chavda
-
[MERGE]with latest.
- 8558. By Kunal Chavda
-
[REM]Reverted revision 8550.
- 8557. By Kunal Chavda
-
[MERGE]with latest.
- 8556. By Kunal Chavda
-
[MERGE]with latest trunk.
- 8555. By Kunal Chavda
-
[MERGE]with latest trunk.
- 8554. By Kunal Chavda
-
[MERGE] with Trunk
- 8553. By Nimesh Contractor(Open ERP)
-
[MERGE] with trunk.
Preview Diff
1 | === modified file 'hr_expense/hr_expense_demo.xml' |
2 | --- hr_expense/hr_expense_demo.xml 2012-12-06 11:21:13 +0000 |
3 | +++ hr_expense/hr_expense_demo.xml 2013-09-17 10:34:21 +0000 |
4 | @@ -15,6 +15,7 @@ |
5 | <field name="uom_po_id" ref="product.product_uom_km"/> |
6 | <field name="categ_id" ref="hr_expense.cat_expense"/> |
7 | <field name="hr_expense_ok" eval="True" /> |
8 | + <field name="available_in_pos" eval="False" /> |
9 | <field name="image">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</field> |
10 | </record> |
11 | |
12 | @@ -26,6 +27,7 @@ |
13 | <field name="default_code">AT</field> |
14 | <field name="categ_id" ref="hr_expense.cat_expense"/> |
15 | <field name="hr_expense_ok" eval="True" /> |
16 | + <field name="available_in_pos" eval="False" /> |
17 | <field name="image">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</field> |
18 | </record> |
19 | |
20 | @@ -36,6 +38,7 @@ |
21 | <field name="default_code">HA0</field> |
22 | <field name="categ_id" ref="hr_expense.cat_expense"/> |
23 | <field name="hr_expense_ok" eval="True" /> |
24 | + <field name="available_in_pos" eval="False" /> |
25 | <field name="image">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</field> |
26 | </record> |
27 | <record id="expenses0" model="hr.expense.expense"> |
28 | |
29 | === modified file 'point_of_sale/point_of_sale.py' |
30 | --- point_of_sale/point_of_sale.py 2013-09-10 12:48:03 +0000 |
31 | +++ point_of_sale/point_of_sale.py 2013-09-17 10:34:21 +0000 |
32 | @@ -48,7 +48,7 @@ |
33 | _columns = { |
34 | 'name' : fields.char('Point of Sale Name', size=32, select=1, |
35 | required=True, help="An internal identification of the point of sale"), |
36 | - 'journal_ids' : fields.many2many('account.journal', 'pos_config_journal_rel', |
37 | + 'journal_ids' : fields.many2many('account.journal', 'pos_config_journal_rel', |
38 | 'pos_config_id', 'journal_id', 'Available Payment Methods', |
39 | domain="[('journal_user', '=', True ), ('type', 'in', ['bank', 'cash'])]",), |
40 | 'warehouse_id' : fields.many2one('stock.warehouse', 'Warehouse', |
41 | @@ -202,7 +202,7 @@ |
42 | readonly=True, |
43 | states={'opening_control' : [('readonly', False)]} |
44 | ), |
45 | - 'start_at' : fields.datetime('Opening Date', readonly=True), |
46 | + 'start_at' : fields.datetime('Opening Date', readonly=True), |
47 | 'stop_at' : fields.datetime('Closing Date', readonly=True), |
48 | |
49 | 'state' : fields.selection(POS_SESSION_STATE, 'Status', |
50 | @@ -221,10 +221,10 @@ |
51 | type='many2one', relation='account.bank.statement', |
52 | string='Cash Register', store=True), |
53 | |
54 | - 'opening_details_ids' : fields.related('cash_register_id', 'opening_details_ids', |
55 | + 'opening_details_ids' : fields.related('cash_register_id', 'opening_details_ids', |
56 | type='one2many', relation='account.cashbox.line', |
57 | string='Opening Cash Control'), |
58 | - 'details_ids' : fields.related('cash_register_id', 'details_ids', |
59 | + 'details_ids' : fields.related('cash_register_id', 'details_ids', |
60 | type='one2many', relation='account.cashbox.line', |
61 | string='Cash Control'), |
62 | |
63 | @@ -282,21 +282,22 @@ |
64 | ('state', 'not in', ('closed','closing_control')), |
65 | ('user_id', '=', uid) |
66 | ] |
67 | + |
68 | count = self.search_count(cr, uid, domain, context=context) |
69 | if count>1: |
70 | return False |
71 | return True |
72 | - |
73 | def _check_pos_config(self, cr, uid, ids, context=None): |
74 | for session in self.browse(cr, uid, ids, context=None): |
75 | domain = [ |
76 | ('state', '!=', 'closed'), |
77 | - ('config_id', '=', session.config_id.id) |
78 | + ('config_id', '=', session.config_id.id), |
79 | ] |
80 | + |
81 | count = self.search_count(cr, uid, domain, context=context) |
82 | if count>1: |
83 | return False |
84 | - return True |
85 | + return True |
86 | |
87 | _constraints = [ |
88 | (_check_unicity, "You cannot create two active sessions with the same responsible!", ['user_id', 'state']), |
89 | @@ -419,7 +420,7 @@ |
90 | raise osv.except_osv( _('Error!'), |
91 | _("Your ending balance is too different from the theoretical cash closing (%.2f), the maximum allowed is: %.2f. You can contact your manager to force it.") % (st.difference, st.journal_id.amount_authorized_diff)) |
92 | if (st.journal_id.type not in ['bank', 'cash']): |
93 | - raise osv.except_osv(_('Error!'), |
94 | + raise osv.except_osv(_('Error!'), |
95 | _("The type of the journal for your payment method should be bank or cash ")) |
96 | if st.difference and st.journal_id.cash_control == True: |
97 | if st.difference > 0.0: |
98 | @@ -630,7 +631,7 @@ |
99 | 'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, states={'draft': [('readonly', False)]}, readonly=True), |
100 | 'partner_id': fields.many2one('res.partner', 'Customer', change_default=True, select=1, states={'draft': [('readonly', False)], 'paid': [('readonly', False)]}), |
101 | |
102 | - 'session_id' : fields.many2one('pos.session', 'Session', |
103 | + 'session_id' : fields.many2one('pos.session', 'Session', |
104 | #required=True, |
105 | select=1, |
106 | domain="[('state', '=', 'opened')]", |
107 | @@ -659,7 +660,7 @@ |
108 | return session_ids and session_ids[0] or False |
109 | |
110 | def _default_pricelist(self, cr, uid, context=None): |
111 | - session_ids = self._default_session(cr, uid, context) |
112 | + session_ids = self._default_session(cr, uid, context) |
113 | if session_ids: |
114 | session_record = self.pool.get('pos.session').browse(cr, uid, session_ids, context=context) |
115 | return session_record.config_id.pricelist_id and session_record.config_id.pricelist_id.id or False |
116 | @@ -668,7 +669,7 @@ |
117 | _defaults = { |
118 | 'user_id': lambda self, cr, uid, context: uid, |
119 | 'state': 'draft', |
120 | - 'name': '/', |
121 | + 'name': '/', |
122 | 'date_order': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), |
123 | 'nb_print': 0, |
124 | 'session_id': _default_session, |
125 | @@ -737,7 +738,7 @@ |
126 | }, context=context) |
127 | if line.qty < 0: |
128 | location_id, output_id = output_id, location_id |
129 | - |
130 | + |
131 | picking_obj.signal_button_confirm(cr, uid, [picking_id]) |
132 | picking_obj.force_assign(cr, uid, [picking_id], context) |
133 | return True |
134 | @@ -809,11 +810,30 @@ |
135 | |
136 | return statement_id |
137 | |
138 | + def open_payment(self, cr, uid, ids, context=None): |
139 | + if context: |
140 | + context = {} |
141 | + journal_ids = [] |
142 | + order = self.browse(cr, uid, ids[0], context=context) |
143 | + journal_ids = [ statement.journal_id.id for statement in order.session_id.statement_ids] |
144 | + context.update({'pos_journal_id': journal_ids}) |
145 | + return { |
146 | + 'name': _('Payment'), |
147 | + 'view_type': 'form', |
148 | + 'view_mode': 'form', |
149 | + 'res_model': 'pos.make.payment', |
150 | + 'view_id': False, |
151 | + 'target': 'new', |
152 | + 'views': False, |
153 | + 'type': 'ir.actions.act_window', |
154 | + 'context': context |
155 | + } |
156 | + |
157 | def refund(self, cr, uid, ids, context=None): |
158 | """Create a copy of order for refund order""" |
159 | clone_list = [] |
160 | line_obj = self.pool.get('pos.order.line') |
161 | - |
162 | + |
163 | for order in self.browse(cr, uid, ids, context=context): |
164 | current_session_ids = self.pool.get('pos.session').search(cr, uid, [ |
165 | ('state', '!=', 'closed'), |
166 | @@ -1030,8 +1050,8 @@ |
167 | else: |
168 | grouped_data[key].append(values) |
169 | |
170 | - #because of the weird way the pos order is written, we need to make sure there is at least one line, |
171 | - #because just after the 'for' loop there are references to 'line' and 'income_account' variables (that |
172 | + #because of the weird way the pos order is written, we need to make sure there is at least one line, |
173 | + #because just after the 'for' loop there are references to 'line' and 'income_account' variables (that |
174 | #are set inside the for loop) |
175 | #TOFIX: a deep refactoring of this method (and class!) is needed in order to get rid of this stupid hack |
176 | assert order.lines, _('The POS order must have lines when calling this method') |
177 | @@ -1292,7 +1312,7 @@ |
178 | for obj in self.browse(cr, uid, ids, context=context): |
179 | result[obj.id] = tools.image_get_resized_images(obj.image) |
180 | return result |
181 | - |
182 | + |
183 | def _set_image(self, cr, uid, id, name, value, args, context=None): |
184 | return self.write(cr, uid, [id], {'image': tools.image_resize_image_big(value)}, context=context) |
185 | |
186 | @@ -1302,7 +1322,7 @@ |
187 | 'parent_id': fields.many2one('pos.category','Parent Category', select=True), |
188 | 'child_id': fields.one2many('pos.category', 'parent_id', string='Children Categories'), |
189 | 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of product categories."), |
190 | - |
191 | + |
192 | # NOTE: there is no 'default image', because by default we don't show thumbnails for categories. However if we have a thumbnail |
193 | # for at least one category, then we display a default image on the other, so that the buttons have consistent styling. |
194 | # In this case, the default image is set by the js code. |
195 | @@ -1364,7 +1384,7 @@ |
196 | _columns = { |
197 | 'income_pdt': fields.boolean('Point of Sale Cash In', help="Check if, this is a product you can use to put cash into a statement for the point of sale backend."), |
198 | 'expense_pdt': fields.boolean('Point of Sale Cash Out', help="Check if, this is a product you can use to take cash from a statement for the point of sale backend, example: money lost, transfer to bank, etc."), |
199 | - 'available_in_pos': fields.boolean('Available in the Point of Sale', help='Check if you want this product to appear in the Point of Sale'), |
200 | + 'available_in_pos': fields.boolean('Available in the Point of Sale', help='Check if you want this product to appear in the Point of Sale'), |
201 | 'pos_categ_id': fields.many2one('pos.category','Point of Sale Category', |
202 | help="These products belong to those categories that are used to group similar products and are specific to the Point of Sale."), |
203 | 'to_weight' : fields.boolean('To Weight', help="Check if the product should be weighted (mainly used with self check-out interface)."), |
204 | |
205 | === modified file 'point_of_sale/point_of_sale_view.xml' |
206 | --- point_of_sale/point_of_sale_view.xml 2013-09-05 10:39:52 +0000 |
207 | +++ point_of_sale/point_of_sale_view.xml 2013-09-17 10:34:21 +0000 |
208 | @@ -14,9 +14,9 @@ |
209 | <field name="arch" type="xml"> |
210 | <form string="Point of Sale Orders" version="7.0"> |
211 | <header> |
212 | - <button name="%(action_pos_payment)d" string="Payment" class="oe_highlight" type="action" states="draft" context="{'pos_session_id' : session_id}"/> |
213 | + <button name="open_payment" string="Payment" class="oe_highlight" type="object" states="draft" context="{'pos_session_id' : session_id}"/> |
214 | <button name="action_invoice" string="Invoice" type="object" states="paid" attrs="{'readonly': [('partner_id','=',False)]}"/> |
215 | - <button name="refund" string="Return Products" type="object" |
216 | + <button name="refund" string="Return Products" type="object" |
217 | attrs="{'invisible':[('state','=','draft')]}"/> |
218 | <button name="%(action_report_pos_receipt)d" string="Reprint" type="action" states="paid,done,invoiced"/> |
219 | <field name="state" widget="statusbar" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/> |
220 | @@ -173,8 +173,7 @@ |
221 | <field name="res_model">product.product</field> |
222 | <field name="view_type">form</field> |
223 | <field name="view_mode">tree,form,kanban</field> |
224 | - <field name="context" eval="{}"/> |
225 | - <field name="domain" eval="[('available_in_pos','<>',False)]"/> |
226 | + <field name="domain" eval="[('pos_categ_id','<>',False), ('available_in_pos', '<>', False)]"/> |
227 | <field name="view_id" ref="product.product_product_tree_view"/> |
228 | <field name="search_view_id" ref="product.product_search_form_view"/> |
229 | <field name="help" type="html"> |
230 | @@ -615,7 +614,7 @@ |
231 | <group name="sale" position="inside"> |
232 | <group name="pos" string="Point of Sale"> |
233 | <field name="available_in_pos"/> |
234 | - <field name="pos_categ_id"/> |
235 | + <field name="pos_categ_id" attrs="{ 'required':[('available_in_pos', '=', True)]}"/> |
236 | <field name="to_weight" /> |
237 | <field name="income_pdt"/> |
238 | <field name="expense_pdt"/> |
239 | @@ -871,7 +870,7 @@ |
240 | <button name="open_frontend_cb" type="object" string="Continue Selling" states="opened" |
241 | class="oe_highlight"/> |
242 | <button name="cashbox_control" type="workflow" string="End of Session" |
243 | - attrs="{'invisible' : ['|', ('cash_control', '=', False),('state', '!=', 'opened')]}" |
244 | + attrs="{'invisible' : ['|', ('cash_control', '=', False),('state', '!=', 'opened')]}" |
245 | class="oe_highlight" /> |
246 | <button name="close" type="workflow" string="Validate Closing & Post Entries" |
247 | attrs="{'invisible' : ['|', ('cash_control', '=', True),('state', '!=', 'opened')]}" |
248 | @@ -991,7 +990,7 @@ |
249 | <field name="user_id" /> |
250 | <group expand="0" string="Group By..."> |
251 | <filter string="User" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" /> |
252 | - <filter string="Point of Sales" domain="[]" context="{'group_by': 'user_id'}" /> |
253 | + <filter string="Point of Sales" domain="[]" context="{'group_by': 'config_id'}" /> |
254 | </group> |
255 | </search> |
256 | </field> |
257 | @@ -1059,7 +1058,7 @@ |
258 | <field name="name">pos.ean_wizard</field> |
259 | <field name="model">pos.ean_wizard</field> |
260 | <field name="arch" type="xml"> |
261 | - <form string="Ean13 Generator" version="7.0"> |
262 | + <form string="Ean13 Generator" version="7.0"> |
263 | <p class="oe_grey"> |
264 | Enter a reference, it will be converted |
265 | automatically to a valid EAN number. |
266 | @@ -1068,7 +1067,7 @@ |
267 | <field name="ean13_pattern" class="oe_inline"/> |
268 | </group> |
269 | <footer> |
270 | - <button name="sanitize_ean13" type="object" string="Apply" class="oe_highlight"/> or |
271 | + <button name="sanitize_ean13" type="object" string="Apply" class="oe_highlight"/> or |
272 | <button icon="gtk-stop" special="cancel" |
273 | string="Cancel" class="oe_link"/> |
274 | </footer> |
275 | |
276 | === modified file 'point_of_sale/security/point_of_sale_security.xml' |
277 | --- point_of_sale/security/point_of_sale_security.xml 2012-12-18 23:20:01 +0000 |
278 | +++ point_of_sale/security/point_of_sale_security.xml 2013-09-17 10:34:21 +0000 |
279 | @@ -19,5 +19,6 @@ |
280 | <field name="global" eval="True" /> |
281 | <field name="domain_force">[('company_id', '=', user.company_id.id)]</field> |
282 | </record> |
283 | + |
284 | </data> |
285 | </openerp> |
286 | |
287 | === modified file 'point_of_sale/static/src/js/models.js' |
288 | --- point_of_sale/static/src/js/models.js 2013-09-13 09:56:12 +0000 |
289 | +++ point_of_sale/static/src/js/models.js 2013-09-17 10:34:21 +0000 |
290 | @@ -18,7 +18,7 @@ |
291 | initialize: function(session, attributes) { |
292 | Backbone.Model.prototype.initialize.call(this, attributes); |
293 | var self = this; |
294 | - this.session = session; |
295 | + this.session = session; |
296 | this.ready = $.Deferred(); // used to notify the GUI that the PosModel has loaded all resources |
297 | this.flush_mutex = new $.Mutex(); // used to make sure the orders are sent to the server once at time |
298 | |
299 | |
300 | === modified file 'point_of_sale/static/src/js/screens.js' |
301 | --- point_of_sale/static/src/js/screens.js 2013-09-13 09:56:12 +0000 |
302 | +++ point_of_sale/static/src/js/screens.js 2013-09-17 10:34:21 +0000 |
303 | @@ -883,7 +883,10 @@ |
304 | this.add_action_button({ |
305 | label: _t('Back'), |
306 | icon: '/point_of_sale/static/src/img/icons/png48/go-previous.png', |
307 | - click: function(){ |
308 | + click: function(){ |
309 | + _.each(self.paymentlinewidgets, function(paymentline_widget){ |
310 | + paymentline_widget.payment_line.destroy(); |
311 | + }); |
312 | self.pos_widget.screen_selector.set_current_screen(self.back_screen); |
313 | }, |
314 | }); |
315 | |
316 | === modified file 'point_of_sale/static/src/js/widgets.js' |
317 | --- point_of_sale/static/src/js/widgets.js 2013-09-13 09:56:12 +0000 |
318 | +++ point_of_sale/static/src/js/widgets.js 2013-09-17 10:34:21 +0000 |
319 | @@ -690,7 +690,16 @@ |
320 | var self = this; |
321 | this._super(); |
322 | if(this.action){ |
323 | - this.$el.click(function(){ self.action(); }); |
324 | + this.$el.click(function(){ |
325 | + var draft_order = _.find( self.pos.get('orders').models, function(order){ |
326 | + return order.get('orderLines').length !== 0 && order.get('paymentLines').length === 0; |
327 | + }); |
328 | + if(draft_order){ |
329 | + if (confirm(_.str.sprintf(_t("Warning! \n You will loose pending orders,\n Are you sure you want to leave this session?")))) { |
330 | + self.action(); |
331 | + } |
332 | + }else self.action(); |
333 | + }); |
334 | } |
335 | }, |
336 | show: function(){ this.$el.show(); }, |
337 | |
338 | === modified file 'point_of_sale/wizard/pos_payment.xml' |
339 | --- point_of_sale/wizard/pos_payment.xml 2013-03-26 08:52:12 +0000 |
340 | +++ point_of_sale/wizard/pos_payment.xml 2013-09-17 10:34:21 +0000 |
341 | @@ -8,7 +8,7 @@ |
342 | <field name="arch" type="xml"> |
343 | <form string="Pay Order" version="7.0"> |
344 | <group> |
345 | - <field name="journal_id" /> |
346 | + <field name="journal_id" domain="[('id','in',context.get('pos_journal_id'))]"/> |
347 | <field name="amount" /> |
348 | <field name="payment_name"/> |
349 | </group> |
350 | |
351 | === modified file 'point_of_sale/wizard/pos_session_opening.xml' |
352 | --- point_of_sale/wizard/pos_session_opening.xml 2012-11-29 22:26:45 +0000 |
353 | +++ point_of_sale/wizard/pos_session_opening.xml 2013-09-17 10:34:21 +0000 |
354 | @@ -15,7 +15,7 @@ |
355 | <field name="pos_state" invisible="1" /> |
356 | </group> |
357 | <field name="pos_session_id" invisible="1"/> |
358 | - <button name="open_ui" type="object" string="Start Selling" |
359 | + <button name="open_ui" type="object" string="Resume Session" |
360 | attrs="{'invisible' : [('pos_state', 'not in', ('opened',))]}" |
361 | class="oe_highlight" |
362 | /> |
Hello Nimesh,
1) warning msg is not translated . it should be. use _t()
2) when we try to open 'Resume session', got error 'can not read property comapany_id of undefined'.
correct it..
Thanks