diff options
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sale_order.py | 14 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/stock_picking.py | 12 |
2 files changed, 16 insertions, 10 deletions
diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index 56b49f9a..cff1921d 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -231,10 +231,11 @@ class SaleOrder(controller.Controller): for so in filtered_orders_paginated: item = request.env['sale.order'].api_v1_single_response(so) + approval_ok = (so.approval_status in ('pengajuan1', 'pengajuan2')) source_ok = _is_website_order(so) term_ok = bool(so.payment_term_id and so.payment_term_id.id == CBD_PAYMENT_TERM_ID) pay_status = (getattr(so, 'payment_status', '') or '').strip().lower() - eligible = bool(source_ok and term_ok and pay_status in ALLOWED_CONTINUE) + eligible = bool(approval_ok and source_ok and term_ok and pay_status in ALLOWED_CONTINUE) redirect_url = getattr(so, 'payment_link_midtrans', '') or '' @@ -242,6 +243,7 @@ class SaleOrder(controller.Controller): 'eligibleContinue': eligible, 'paymentSummary': { 'eligible': eligible, + 'approvalStatus': so.approval_status or '', 'paymentStatus': pay_status, 'paymentTermId': so.payment_term_id.id if so.payment_term_id else None, 'sourceId': so.source_id.id if so.source_id else None, @@ -283,6 +285,7 @@ class SaleOrder(controller.Controller): pay_status = (getattr(sale_order, 'payment_status', '') or '').strip().lower() eligible = ( + sale_order.approval_status in ('pengajuan1', 'pengajuan2') and _is_website_order(sale_order) and sale_order.payment_term_id and sale_order.payment_term_id.id == CBD_PAYMENT_TERM_ID and pay_status in ALLOWED_CONTINUE @@ -314,6 +317,7 @@ class SaleOrder(controller.Controller): 'eligible_continue': eligible, 'payment_summary': { 'eligible': eligible, + 'approval_status': sale_order.approval_status or '', 'payment_status': pay_status, 'payment_term_id': sale_order.payment_term_id.id if sale_order.payment_term_id else None, 'source_id': sale_order.source_id.id if sale_order.source_id else None, @@ -723,9 +727,9 @@ class SaleOrder(controller.Controller): _logger.info(f"Updated user_id from partner: {parameters['user_id']}") if params['value']['type'] == 'sale_order': - # parameters['approval_status'] = 'pengajuan1' - parameters['approval_status'] = False - _logger.info("Setting approval_status to 'false'") + parameters['approval_status'] = 'pengajuan1' + # parameters['approval_status'] = False + _logger.info("Setting approval_status to 'pengajuan1'") sale_order = request.env['sale.order'].with_context(from_website_checkout=True).create([parameters]) sale_order.onchange_partner_contact() @@ -785,7 +789,7 @@ class SaleOrder(controller.Controller): order_line.product_id_change() order_line.weight = order_line.product_id.weight - order_line.onchange_vendor_id() + order_line._onchange_vendor_id_custom() _logger.info(f"After onchanges - Price: {order_line.price_unit}, Disc: {order_line.discount}") elif cart['cart_type'] == 'promotion': diff --git a/indoteknik_api/controllers/api_v1/stock_picking.py b/indoteknik_api/controllers/api_v1/stock_picking.py index 2ec1ec2a..fe82e665 100644 --- a/indoteknik_api/controllers/api_v1/stock_picking.py +++ b/indoteknik_api/controllers/api_v1/stock_picking.py @@ -1,5 +1,5 @@ from .. import controller -from odoo import http +from odoo import http, fields from odoo.http import request, Response from pytz import timezone from datetime import datetime @@ -8,7 +8,6 @@ import logging _logger = logging.getLogger(__name__) -_logger = logging.getLogger(__name__) class StockPicking(controller.Controller): prefix = '/api/v1/' @@ -128,6 +127,7 @@ class StockPicking(controller.Controller): sj_document = kw.get('sj_document') if 'sj_document' in kw else None paket_document = kw.get('paket_document') if 'paket_document' in kw else None dispatch_document = kw.get('dispatch_document') if 'dispatch_document' in kw else None + self_pu= kw.get('self_pu') if 'self_pu' in kw else None # ===== Cari picking by id / picking_code ===== picking_data = False @@ -140,19 +140,21 @@ class StockPicking(controller.Controller): if not picking_data: return self.response(code=403, description='picking not found') - params = { - 'driver_arrival_date': datetime.utcnow(), - } + params = {} if sj_document: params['sj_documentation'] = sj_document + if self_pu: + params['driver_arrival_date'] = datetime.utcnow() if paket_document: params['paket_documentation'] = paket_document + params['driver_arrival_date'] = datetime.utcnow() if dispatch_document: params['dispatch_documentation'] = dispatch_document picking_data.write(params) return self.response({'name': picking_data.name}) + @http.route(prefix + 'webhook/biteship', type='json', auth='public', methods=['POST'], csrf=False) def update_status_from_biteship(self, **kw): _logger.info("Biteship Webhook: Request received at controller start (type='json').") |
