summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/website_user_cart.py
blob: dcd9fa5a33aa1119352883b2331b80b0b0eea015 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from odoo import fields, models


class WebsiteUserCart(models.Model):
    _name = 'website.user.cart'
    _rec_name = 'user_id'
    
    user_id = fields.Many2one('res.users', string='User')
    product_id = fields.Many2one('product.product', string='Product')
    program_line_id = fields.Many2one('promotion.program.line', string='Program', help="Apply program")
    qty = fields.Float(string='Quantity', digits='Product Unit of Measure')
    is_selected = fields.Boolean(string='Selected?', digits='Is selected to process checkout')

    def get_product(self):
        product_product = self.env['product.product']
        product = product_product.v2_api_single_response(self.product_id)
        product['quantity'] = self.qty
        product['subtotal'] = self.qty * product['price']['price_discount']
        product['selected'] = self.is_selected
        return product

    def get_product_by_user(self, user_id, selected = False):
        user_id = int(user_id)
        parameters = [('user_id', '=', user_id)]
        if selected:
            parameters.append(('is_selected', '=', True))
        carts = self.search(parameters)
        products = []
        for cart in carts:
            products.append(cart.get_product())
        return products