summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-10-24 14:51:37 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-10-24 14:51:37 +0700
commit646f9557c101bd6b8ed81fc46130e9761957b5c1 (patch)
tree6be2518f06ff059bc4927d852b5d0cd6b5627f80
parent84cbe80ad4f6f2bcb99386d92be7cc210d481dea (diff)
add commision in sale order
-rwxr-xr-xindoteknik_custom/models/purchase_order.py2
-rwxr-xr-xindoteknik_custom/models/purchase_order_line.py2
-rwxr-xr-xindoteknik_custom/models/sale_order.py13
-rwxr-xr-xindoteknik_custom/views/sale_order.xml1
4 files changed, 17 insertions, 1 deletions
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py
index 6023afdd..a816038e 100755
--- a/indoteknik_custom/models/purchase_order.py
+++ b/indoteknik_custom/models/purchase_order.py
@@ -184,6 +184,8 @@ class PurchaseOrder(models.Model):
sales_price = sale_order_line.price_reduce_taxexcl * sale_order_line.product_uom_qty
if sale_order_line.order_id.shipping_cost_covered == 'indoteknik':
sales_price -= sale_order_line.delivery_amt_line
+ if sale_order_line.order_id.fee_third_party > 0:
+ sales_price -= sale_order_line.fee_third_party_line
sum_sales_price += sales_price
purchase_price = line.price_subtotal
if line.order_id.delivery_amount > 0:
diff --git a/indoteknik_custom/models/purchase_order_line.py b/indoteknik_custom/models/purchase_order_line.py
index 85818394..60e4c8b0 100755
--- a/indoteknik_custom/models/purchase_order_line.py
+++ b/indoteknik_custom/models/purchase_order_line.py
@@ -62,6 +62,8 @@ class PurchaseOrderLine(models.Model):
sales_price = sale_order_line.price_reduce_taxexcl * sale_order_line.product_uom_qty
if sale_order_line.order_id.shipping_cost_covered == 'indoteknik':
sales_price -= sale_order_line.delivery_amt_line
+ if sale_order_line.order_id.fee_third_party > 0:
+ sales_price -= sale_order_line.fee_third_party_line
sum_sales_price += sales_price
purchase_price = line.price_subtotal
if line.order_id.delivery_amount > 0:
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 2151264c..f21a80fe 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -41,6 +41,7 @@ class SaleOrder(models.Model):
states={'draft': [('readonly', False)], 'sent': [('readonly', False)], 'sale': [('readonly', False)]},
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]",
help="Dipakai untuk alamat tempel")
+ fee_third_party = fields.Float('Fee Pihak Ketiga')
@api.onchange('partner_shipping_id')
def onchange_partner_shipping(self):
@@ -201,6 +202,8 @@ class SaleOrder(models.Model):
sales_price = line.price_reduce_taxexcl * line.product_uom_qty
if line.order_id.shipping_cost_covered == 'indoteknik':
sales_price -= line.delivery_amt_line
+ if line.order_id.fee_third_party > 0:
+ sales_price -= line.fee_third_party_line
sum_sales_price += sales_price
order.total_margin = total_margin
if order.amount_untaxed > 0:
@@ -241,6 +244,7 @@ class SaleOrderLine(models.Model):
purchase_tax_id = fields.Many2one('account.tax', string='Tax',
domain=['|', ('active', '=', False), ('active', '=', True)])
delivery_amt_line = fields.Float('DeliveryAmtLine', compute='compute_delivery_amt_line')
+ fee_third_party_line = fields.Float('FeeThirdPartyLine', compute='compute_fee_third_party_line', default=0)
def compute_item_margin(self):
for line in self:
@@ -255,7 +259,8 @@ class SaleOrderLine(models.Model):
# minus with delivery if covered by indoteknik
if line.order_id.shipping_cost_covered == 'indoteknik':
sales_price -= line.delivery_amt_line
- # sales_price -= round((line.order_id.delivery_amt / line.order_id.count_line_product), 2)
+ if line.order_id.fee_third_party > 0:
+ sales_price -= line.fee_third_party_line
purchase_price = line.purchase_price
if line.purchase_tax_id.price_include:
@@ -292,6 +297,12 @@ class SaleOrderLine(models.Model):
delivery_amt = line.order_id.delivery_amt
line.delivery_amt_line = delivery_amt * contribution
+ def compute_fee_third_party_line(self):
+ for line in self:
+ contribution = round((line.price_total / line.order_id.amount_total), 2)
+ fee = line.order_id.fee_third_party
+ line.fee_third_party_line = fee * contribution
+
@api.onchange('product_id', 'price_unit', 'product_uom', 'product_uom_qty', 'tax_id')
def _onchange_discount(self):
if not (self.product_id and self.product_uom and
diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml
index 138470b6..d7c811f7 100755
--- a/indoteknik_custom/views/sale_order.xml
+++ b/indoteknik_custom/views/sale_order.xml
@@ -16,6 +16,7 @@
<field name="shipping_cost_covered"/>
<field name="shipping_paid_by"/>
<field name="delivery_amt"/>
+ <field name="fee_third_party"/>
</field>
<field name="partner_shipping_id" position="after">
<field name="real_shipping_id"/>