Compare commits
1 Commits
14-account
...
14.0-sale_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b378bc6f48 |
@@ -1 +1,2 @@
|
|||||||
from . import models
|
from . import models
|
||||||
|
from . import wizard
|
||||||
|
|||||||
1
sale_usability/wizard/__init__.py
Normal file
1
sale_usability/wizard/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from . import sale_make_invoice_advance
|
||||||
37
sale_usability/wizard/sale_make_invoice_advance.py
Normal file
37
sale_usability/wizard/sale_make_invoice_advance.py
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
from odoo import models
|
||||||
|
from odoo.tools import float_is_zero
|
||||||
|
|
||||||
|
|
||||||
|
class SaleAdvancePaymentInv(models.TransientModel):
|
||||||
|
_inherit = "sale.advance.payment.inv"
|
||||||
|
|
||||||
|
def _prepare_invoice_values(self, order, name, amount, so_line):
|
||||||
|
"""
|
||||||
|
Create as many invoice lines as order lines with their original
|
||||||
|
order line taxes. Lines quantities have the ratio of the advance payment.
|
||||||
|
"""
|
||||||
|
invoice_vals = super()._prepare_invoice_values(order, name, amount, so_line)
|
||||||
|
lines = []
|
||||||
|
uom_precision_digits = self.env["decimal.precision"].precision_get(
|
||||||
|
"Product Unit of Measure"
|
||||||
|
)
|
||||||
|
for line in order.order_line:
|
||||||
|
if (
|
||||||
|
not float_is_zero(
|
||||||
|
# avoids taking lines like previous advance payments
|
||||||
|
line.product_uom_qty, precision_digits=uom_precision_digits
|
||||||
|
)
|
||||||
|
):
|
||||||
|
lines.append((0, 0, {
|
||||||
|
"name": name,
|
||||||
|
"price_unit": line.price_unit,
|
||||||
|
"quantity": line.product_uom_qty * amount / order.amount_total,
|
||||||
|
"product_id": line.product_id.id,
|
||||||
|
"product_uom_id": line.product_uom.id,
|
||||||
|
"tax_ids": [(6, 0, line.tax_id.ids)],
|
||||||
|
"sale_line_ids": [(6, 0, [line.id])],
|
||||||
|
"analytic_tag_ids": [(6, 0, line.analytic_tag_ids.ids)],
|
||||||
|
"analytic_account_id": order.analytic_account_id.id or False,
|
||||||
|
}))
|
||||||
|
invoice_vals["invoice_line_ids"] = lines
|
||||||
|
return invoice_vals
|
||||||
Reference in New Issue
Block a user