summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/sale_order_controller.py
diff options
context:
space:
mode:
Diffstat (limited to 'indoteknik_api/controllers/sale_order_controller.py')
-rw-r--r--indoteknik_api/controllers/sale_order_controller.py110
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)