|
@@ -293,10 +293,26 @@ class PosSales(http.Controller):
|
|
|
journal = request.env['account.journal'].browse(journal_id)
|
|
|
return journal.default_credit_account_id.currency_id.id or journal.default_credit_account_id.company_currency_id.id
|
|
|
|
|
|
+ '''
|
|
|
+ Check currency in pricelist and get it
|
|
|
+ '''
|
|
|
+ def get_pricelist(self, currency_id):
|
|
|
+ pricelist = request.env['product.pricelist'].search([('active', '=', True), ('type', '=', 'sale')])
|
|
|
+
|
|
|
+ if not True in pricelist.mapped(lambda p: p.currency_id.id == currency_id):
|
|
|
+ pricelist = pricelist[0].copy()
|
|
|
+ pricelist.write({
|
|
|
+ 'currency_id': currency_id
|
|
|
+ })
|
|
|
+ else:
|
|
|
+ pricelist = pricelist.filtered(lambda p: p.currency_id.id == currency_id)
|
|
|
+
|
|
|
+ return pricelist
|
|
|
+
|
|
|
'''
|
|
|
Create sale order from cart items values
|
|
|
'''
|
|
|
- def create_sale_from_cart(self, partner_id, cart_items, date_confirm, currency_id, payment_term_id):
|
|
|
+ def create_sale_from_cart(self, partner_id, cart_items, date_confirm, currency_id, pricelist_id, payment_term_id):
|
|
|
return request.env['sale.order'].create({
|
|
|
'partner_id': partner_id,
|
|
|
'order_line': [[0, False, {
|
|
@@ -308,6 +324,7 @@ class PosSales(http.Controller):
|
|
|
'state': 'manual',
|
|
|
'date_confirm': date_confirm,
|
|
|
'currency_id': currency_id,
|
|
|
+ 'pricelist_id': pricelist_id,
|
|
|
'payment_term': payment_term_id
|
|
|
})
|
|
|
|
|
@@ -557,8 +574,12 @@ class PosSales(http.Controller):
|
|
|
currency_id = self.get_currency(kw.get('journalId'))
|
|
|
self.make_info_log('[OK] Getting journal')
|
|
|
|
|
|
+
|
|
|
+ pricelist = self.get_pricelist(currency_id)
|
|
|
+ self.make_info_log('[OK] Getting product pricelist')
|
|
|
+
|
|
|
|
|
|
- sale_order = self.create_sale_from_cart(kw.get('customerId'), kw.get('items'), date_now, currency_id, kw.get('paymentTermId'))
|
|
|
+ sale_order = self.create_sale_from_cart(kw.get('customerId'), kw.get('items'), date_now, currency_id, pricelist.id, kw.get('paymentTermId'))
|
|
|
self.make_info_log('[OK] Creating sale order')
|
|
|
|
|
|
|
|
@@ -570,7 +591,7 @@ class PosSales(http.Controller):
|
|
|
self.make_info_log('[OK] Creating invoice')
|
|
|
|
|
|
|
|
|
- invoice_move_lines = self.create_invoice_move_lines(invoice.id, kw.get('total', 0), date_now)
|
|
|
+ invoice_move_lines = self.create_invoice_move_lines(invoice.id, float(kw.get('payment')), date_now)
|
|
|
self.make_info_log('[OK] Creating invoice move lines')
|
|
|
|
|
|
|