From 615635ebca14548b8c2e116f3a9e72c7c3075ce9 Mon Sep 17 00:00:00 2001 From: Wilson Gomez Date: Wed, 19 Apr 2023 14:15:59 -0500 Subject: [PATCH] add app sale_notification --- __init__.py | 1 + dash.py | 2 ++ sale.py | 39 +++++++++++++++++++++++---------------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/__init__.py b/__init__.py index 6319310..4c217bd 100644 --- a/__init__.py +++ b/__init__.py @@ -15,5 +15,6 @@ def register(): sale.AppSaleCallCenter, sale.AppSelfServiceSale, sale.AppSaleTurn, + sale.AppOrderNotification, dash.DashApp, module='dash_sale', type_='model') diff --git a/dash.py b/dash.py index eef12f1..fc68d36 100644 --- a/dash.py +++ b/dash.py @@ -17,6 +17,7 @@ class DashApp(metaclass=PoolMeta): 'dash.app.self_service_sale', 'dash.app.sale_call_center', 'dash.app.sale_turn', + 'dash.app.order_notification', ]) return origins @@ -31,5 +32,6 @@ class DashApp(metaclass=PoolMeta): ('self_service_sale', 'Self-Service Sale'), ('sale_call_center', 'Sale Call Center'), ('sale_turn', 'Sale Turn'), + ('order_notification', 'Order Notification'), ]) return options diff --git a/sale.py b/sale.py index 3263c7e..7d5ded4 100644 --- a/sale.py +++ b/sale.py @@ -350,19 +350,20 @@ class Sale(metaclass=PoolMeta): return res @classmethod - def dash_create_order_call(cls, args, ctx=None): + def dash_create_order_call(cls, args): Shop = Pool().get('sale.shop') Product = Pool().get('product.product') Party = Pool().get('party.party') User = Pool().get('res.user') ctx = Transaction().context - if ctx.get('shop'): - shop = Shop(ctx['shop']) - else: - user_id = ctx.get('user') - user = User(user_id) - shop = user.shop + # if ctx.get('shop'): + # shop = Shop(ctx['shop']) + # else: + # user_id = ctx.get('user') + # shop = user.shop + user = User(ctx.get('user')) + shop = Shop(args['shop']['id']) for v in args['lines']: if v.get('id'): del v['id'] @@ -373,7 +374,7 @@ class Sale(metaclass=PoolMeta): if v.get('total_amount'): del v['total_amount'] v['type'] = 'line' - product = Product(v['product']) + product = Product(v['product']['id']) if v.get('discount') and v['discount'] != '': v['discount'] = Decimal(v['discount'])/100 @@ -383,12 +384,13 @@ class Sale(metaclass=PoolMeta): v['unit_price'] = Decimal(str(v['unit_price'])) v['unit'] = product.template.default_uom.id v['description'] = product.name + v['product'] = v['product']['id'] taxes = list(product.account_category.customer_taxes_used) taxes_ids = [t.id for t in taxes] v['taxes'] = [('add', taxes_ids)] price_list = args.get('price_list', None) - party = Party(args['party']) + party = Party(args['party']['id']) if args.get('shipment_address'): shipment_address_id = args.get('shipment_address') else: @@ -404,11 +406,13 @@ class Sale(metaclass=PoolMeta): description = args.get('description', '') comment = args.get('comment', '') + delivery = args.get('delivery', '') today = date.today() to_create = { - 'consumer': args['consumer'], - 'source': args['source'], + 'consumer': args['consumer']['id'], + 'source': args['source']['id'], 'kind': args['kind'], + 'delivery': delivery, 'shop': shop.id, 'salesman': user.employee, 'invoice_type': 'P', @@ -421,17 +425,15 @@ class Sale(metaclass=PoolMeta): 'agent': agent_id, 'price_list': price_list, 'payment_term': shop.payment_term.id, - 'state': 'requested', + 'state': 'draft', + 'order_status': 'requested', 'description': description, 'comment': comment, 'lines': [('create', args['lines'])], } if args.get('consumer'): - to_create['consumer'] = args['consumer'] + to_create['consumer'] = args['consumer']['id'] sale, = cls.create([to_create]) - for line in sale.lines: - if line.discount and line.discount > 0: - line.on_change_discount() record = args.copy() record.update({ 'id': sale.id, @@ -883,3 +885,8 @@ class AppSaleCallCenter(DashAppBase): class AppSaleTurn(DashAppBase): 'App Sale Turn' __name__ = 'dash.app.sale_turn' + + +class AppOrderNotification(DashAppBase): + 'App Order Notification' + __name__ = 'dash.app.order_notification'