Anyone faced this problem before? And what did you do?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Anyone faced this problem before? And what did you do?
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
1
Dec 24
|
2167 | ||
|
0
Mar 25
|
1786 | ||
|
1
Feb 22
|
5683 | ||
|
3
Jul 25
|
1839 | ||
|
1
Jun 25
|
1926 |
actually you have to redefine _compute_tax_totals
I have used this for my situation
@api.depends('order_line.price_subtotal', 'currency_id', 'company_id')
def _compute_tax_totals(self):
"""
Custom tax totals computation
"""
AccountTax = self.env['account.tax']
for order in self:
order_lines = order.order_line.filtered(lambda x: not x.display_type)
base_lines = [line._prepare_base_line_for_taxes_computation() for line in order_lines]
AccountTax._add_tax_details_in_base_lines(base_lines, order.company_id)
AccountTax._round_base_lines_tax_details(base_lines, order.company_id)
tax_totals = AccountTax._get_tax_totals_summary(
base_lines=base_lines,
currency=order.currency_id or order.company_id.currency_id,
company=order.company_id,
)
# تعيين القيم الافتراضية لمفاتيح tax_totals
tax_totals['base_amount_currency'] = 50
tax_totals['tax_amount_currency'] = 100
tax_totals['total_amount_currency'] = 150
# تعيين القيم الافتراضية للمتغيرات
untaxed_amount = 0 # لتخزين المبلغ غير الخاضع للضريبة
amount_tax = 0 # لتخزين إجمالي الضرائب
total_amount = 0 # لتخزين المبلغ الإجمالي
_logger.info("Tax Totals Before Update: %s", tax_totals)
# حساب القيم للسطر داخل order_lines
for line in order.order_line:
if not line.display_type:
# حساب هامش الربح
standard_price = line.product_id.standard_price
margin = standard_price * (line.product_id.margin / 100)
# حساب الخصم بناءً على هامش الربح
discount_amount = margin * (line.discount / 100)
# حساب السعر النهائي بعد الخصم
final_price = standard_price + margin - discount_amount
# تحديث subtotal للسطر بناءً على الكمية
line.price_subtotal = final_price * line.product_uom_qty
# جمع القيم للسطر الحالي
untaxed_amount += line.price_subtotal
amount_tax += line.price_tax
# حساب الإجمالي
total_amount = untaxed_amount + amount_tax
# تحديث القيم داخل tax_totals بعد الحسابات
tax_totals['base_amount_currency'] = untaxed_amount
tax_totals['tax_amount_currency'] = amount_tax
tax_totals['total_amount_currency'] = total_amount
_logger.info("Tax Totals After Update: %s", tax_totals)
# تحديث الحقول المرتبطة بـ order
order.amount_untaxed = untaxed_amount
order.amount_tax = amount_tax
order.amount_total = total_amount
# تحديث الحقل tax_totals
order.tax_totals = tax_totals
it solved the Total but i still have issue with Untaxed Amount
but soon i will find it