diff options
Diffstat (limited to 'indoteknik_api/controllers/sale_order_controller.py')
| -rw-r--r-- | indoteknik_api/controllers/sale_order_controller.py | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/indoteknik_api/controllers/sale_order_controller.py b/indoteknik_api/controllers/sale_order_controller.py deleted file mode 100644 index 741d4bf8..00000000 --- a/indoteknik_api/controllers/sale_order_controller.py +++ /dev/null @@ -1,110 +0,0 @@ -from . import controller -from odoo import http -from odoo.http import request - - -class SaleOrderController(controller.Controller): - @http.route('/api/sale_order/invoiced', auth='public', methods=['GET']) - def get_sale_order_invoiced_by_partner_id(self, **kw): - self.authenticate(kw) - partner_id = kw.get('partner_id') - if not partner_id: - return self.response(code=400, description='Field partner_id is required') - - partner_id = int(partner_id) - # Get company member by partner_id - parent_partner_id = request.env['res.partner'].search([('id', '=', partner_id)], limit=1).parent_id.id - partner_childs = request.env['res.partner'].search([('parent_id', '=', int(parent_partner_id))]) - partner_child_ids = [v['id'] for v in partner_childs] + [partner_id] - - # Get sale order by company member and invoiced - data = [] - default_domain = [ - ('partner_id', 'in', partner_child_ids), - '|', - ('invoice_status', '=', 'invoiced'), - ('invoice_status', '=', 'to_invoice') - ] - sale_orders = self.search_with_api_params('sale.order', kw, default_domain) - for sale_order in sale_orders: - pickings = [] - for picking in sale_order.picking_ids: - if picking.state in ['confirmed', 'assigned', 'done']: - pickings.append({ - 'id': picking.id, - 'name': picking.name, - 'delivery_address': picking.partner_id.street, - 'delivery_tracking_no': picking.delivery_tracking_no, - 'delivery_status': picking.delivery_status - }) - - data.append({ - 'id': sale_order.id, - 'name': sale_order.name, - 'amount_total': sale_order.amount_total, - 'salesperson': sale_order.user_id.name, - 'date_order': self.time_to_str(sale_order.date_order, '%d/%m/%Y'), - 'pickings': pickings, - 'access_token': sale_order.access_token - }) - return self.response(data) - - @http.route('/api/sale_order/invoiced/detail', auth='public', methods=['GET']) - def get_sale_order_invoiced_detail_by_partner(self, **kw): - self.authenticate(kw) - - id = kw.get('id') - partner_id = kw.get('partner_id') - if not id: - return self.response(code=400, description='Field id is required') - if not partner_id: - return self.response(code=400, description='Field partner_id is required') - - default_domain = [ - ('id', '=', id), - '|', - ('invoice_status', '=', 'invoiced'), - ('invoice_status', '=', 'to_invoice') - ] - parent_partner_id = request.env['res.partner'].search([('id', '=', int(partner_id))], limit=1).parent_id.id - partner_childs = request.env['res.partner'].search([('parent_id', '=', int(parent_partner_id))]) - partner_child_ids = [v['id'] for v in partner_childs] + [int(partner_id)] - default_domain.append(('partner_id', 'in', partner_child_ids)) - - sale_order = self.search_with_api_params('sale.order', kw, default_domain) - orders = [] - for order in sale_order.order_line: - orders.append({ - 'name': order.name, - 'product_qty': order.product_qty, - 'price_unit': order.price_unit, - 'price_tax': order.price_tax, - 'price_total': order.price_total, - 'price_subtotal': order.price_subtotal, - 'tax': order.tax_id.name, - 'discount': order.discount, - }) - - data = { - 'id': sale_order.id, - 'name': sale_order.name, - 'carrier': sale_order.carrier_id.name, - 'partner': { - 'id': sale_order.partner_id.id, - 'name': sale_order.partner_id.name, - 'mobile': sale_order.partner_id.mobile, - 'email': sale_order.partner_id.email - }, - 'delivery_address': sale_order.partner_shipping_id.street, - 'delivery_method': sale_order.carrier_id.name, - 'payment_term': sale_order.payment_term_id.name, - 'salesperson': sale_order.user_id.name, - 'date_order': self.time_to_str(sale_order.date_order, '%d/%m/%Y %H:%M:%S'), - 'note': sale_order.note, - 'amount_untaxed': sale_order.amount_untaxed, - 'amount_tax': sale_order.amount_tax, - 'amount_total': sale_order.amount_total, - 'orders': orders - } - - return self.response(data) |
