summaryrefslogtreecommitdiff
path: root/indoteknik_api/models
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-25 11:53:29 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-25 11:53:29 +0700
commit13c90b5a95391d797b89c39b90c1430400ed29b7 (patch)
tree1df668fee68e72a76cbcc5255e5d533b3721d190 /indoteknik_api/models
parent0f7f7fa273295fadde403c4ff9333b3bbe14489a (diff)
parent029e8fce907060de2a2514b5abc731f4cd9da96e (diff)
Merge branch 'staging' into release
Diffstat (limited to 'indoteknik_api/models')
-rw-r--r--indoteknik_api/models/account_move.py3
-rw-r--r--indoteknik_api/models/res_users.py7
-rw-r--r--indoteknik_api/models/sale_order.py29
3 files changed, 34 insertions, 5 deletions
diff --git a/indoteknik_api/models/account_move.py b/indoteknik_api/models/account_move.py
index 5c31f010..9bbe8c94 100644
--- a/indoteknik_api/models/account_move.py
+++ b/indoteknik_api/models/account_move.py
@@ -15,7 +15,7 @@ class AccountMove(models.Model):
'sales': account_move.invoice_user_id.name,
'amount_total': account_move.amount_total,
'amount_residual': account_move.amount_residual,
- 'invoice_date': '',
+ 'invoice_date': account_move.invoice_date.strftime('%d/%m/%Y') or '',
'efaktur': True if account_move.efaktur_document else False,
}
if isinstance(object, datetime.date):
@@ -31,7 +31,6 @@ class AccountMove(models.Model):
'sales': account_move.invoice_user_id.name,
'amount_total': account_move.amount_total,
'amount_residual': account_move.amount_residual,
- 'invoice_date': account_move.invoice_date.strftime('%d/%m/%Y') or '',
'invoice_date_due': account_move.invoice_date_due.strftime('%d/%m/%Y') or '',
'customer': res_users.api_address_response(account_move.partner_id),
'products': [],
diff --git a/indoteknik_api/models/res_users.py b/indoteknik_api/models/res_users.py
index 99a3838d..5032f3af 100644
--- a/indoteknik_api/models/res_users.py
+++ b/indoteknik_api/models/res_users.py
@@ -7,6 +7,7 @@ class ResUsers(models.Model):
def api_single_response(self, res_user, with_detail=''):
data = {
'id': res_user.id,
+ 'parent_id': res_user.parent_id.id or False,
'partner_id': res_user.partner_id.id,
'name': res_user.name,
'email': res_user.login,
@@ -32,7 +33,11 @@ class ResUsers(models.Model):
'city': None,
'district': None,
'sub_district': None,
- 'zip': user.zip or ''
+ 'zip': user.zip or '',
+ 'company_type_id': user.company_type_id.id or None,
+ 'industry_id': user.industry_id.id or None,
+ 'tax_name': user.nama_wajib_pajak or '',
+ 'npwp': user.npwp or '',
}
if user.kota_id:
diff --git a/indoteknik_api/models/sale_order.py b/indoteknik_api/models/sale_order.py
index c3f3dccb..ca6baff0 100644
--- a/indoteknik_api/models/sale_order.py
+++ b/indoteknik_api/models/sale_order.py
@@ -24,9 +24,19 @@ class SaleOrder(models.Model):
data['status'] = 'waiting'
if sale_order.state == 'sale':
data['status'] = 'sale'
+ picking_count = {
+ 'assigned': 0,
+ 'done': 0,
+ }
for picking in sale_order.picking_ids:
- if picking.state == 'assigned':
- data['status'] = 'shipping'
+ if picking.state in ['confirmed', 'assigned']:
+ picking_count['assigned'] += 1
+ if picking.state == 'done':
+ picking_count['done'] += 1
+ if picking_count['done'] > 0:
+ data['status'] = 'shipping'
+ if picking_count['assigned'] > 0:
+ data['status'] = 'partial_shipping'
if sale_order.state == 'done':
data['status'] = 'done'
@@ -53,3 +63,18 @@ class SaleOrder(models.Model):
data_with_detail['invoices'].append(self.env['account.move'].api_v1_single_response(invoice))
data.update(data_with_detail)
return data
+
+
+class SaleOrderLine(models.Model):
+ _inherit = 'sale.order.line'
+
+ def api_single_response(self, sale_order_line, context=False):
+ data = {
+ 'image': self.env['ir.attachment'].api_image('product.template', 'image_128', sale_order_line.product_id.product_tmpl_id.id),
+ 'item_code': sale_order_line.product_id.default_code,
+ 'product_name': sale_order_line.product_id.name,
+ 'price_before_discount': sale_order_line.price_unit * sale_order_line.product_uom_qty,
+ 'price_after_discount': sale_order_line.price_total,
+ 'tax': sale_order_line.price_tax
+ }
+ return data