diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2023-07-26 06:38:43 +0000 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2023-07-26 06:38:43 +0000 |
| commit | dd0b3e2f10615b3f4db2e35590d2931bf1912d7f (patch) | |
| tree | 23ce091ec7a42e26304b402759afb8c0cc69fcf8 /indoteknik_custom | |
| parent | ba6ef5090d092a618c0dee56c8bbe29684ae8688 (diff) | |
| parent | 4b281c6e037fc3b793a6a4b028542b3d73c97d49 (diff) | |
Merged in feature/voucher-cart (pull request #73)
Feature/voucher cart
Diffstat (limited to 'indoteknik_custom')
| -rw-r--r-- | indoteknik_custom/models/website_user_cart.py | 19 | ||||
| -rwxr-xr-x | indoteknik_custom/views/website_user_cart.xml | 2 |
2 files changed, 17 insertions, 4 deletions
diff --git a/indoteknik_custom/models/website_user_cart.py b/indoteknik_custom/models/website_user_cart.py index 29bf4291..4d85e64d 100644 --- a/indoteknik_custom/models/website_user_cart.py +++ b/indoteknik_custom/models/website_user_cart.py @@ -10,6 +10,10 @@ class WebsiteUserCart(models.Model): 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') + source = fields.Selection([ + ('add_to_cart', 'Add To Cart'), + ('buy', 'Buy') + ], 'Source', default='add_to_cart') def get_product(self): user_data = { @@ -36,17 +40,24 @@ class WebsiteUserCart(models.Model): def get_products(self): return [x.get_product() for x in self] - def get_product_by_user(self, user_id, selected = False): + def get_product_by_user(self, user_id, selected=False, source=False): user_id = int(user_id) - parameters = [('user_id', '=', user_id)] + source = source if source else 'add_to_cart' + + parameters = [ + ('user_id', '=', user_id), + ('source', '=', source) + ] + if selected: parameters.append(('is_selected', '=', True)) + carts = self.search(parameters) products = carts.get_products() return products - def get_user_checkout(self, user_id, voucher=False): - products = self.get_product_by_user(user_id=user_id, selected=True) + def get_user_checkout(self, user_id, voucher=False, source=False): + products = self.get_product_by_user(user_id=user_id, selected=True, source=source) total_purchase = sum(x['price']['price'] * x['quantity'] for x in products) total_discount = sum((x['price']['price'] - x['price']['price_discount']) * x['quantity'] for x in products) subtotal = total_purchase - total_discount diff --git a/indoteknik_custom/views/website_user_cart.xml b/indoteknik_custom/views/website_user_cart.xml index fbd08acb..f942cdda 100755 --- a/indoteknik_custom/views/website_user_cart.xml +++ b/indoteknik_custom/views/website_user_cart.xml @@ -16,6 +16,7 @@ <field name="program_line_id"/> <field name="qty"/> <field name="is_selected"/> + <field name="source"/> </tree> </field> </record> @@ -33,6 +34,7 @@ <field name="program_line_id" domain="[('product_id', '=', product_id)]"/> <field name="qty"/> <field name="is_selected"/> + <field name="source"/> </group> <group></group> </group> |
