Saas 11.2 account fix analytic accounting jao (#23110)
[IMP] purchase_requisition : add analytic_tag_ids field in purchase requistion [IMP] sale: set analytic tags on invoice based on the analytic tags defined on SO [IMP] account_analytic_default: add default analytic tags to invoice lines created from SO for down payment (#23110)
This commit is contained in:
@@ -13,4 +13,5 @@ class SaleOrderLine(models.Model):
|
||||
default_analytic_account = self.env['account.analytic.default'].account_get(self.product_id.id, self.order_id.partner_id.id, self.order_id.user_id.id, fields.Date.today())
|
||||
if default_analytic_account:
|
||||
res.update({'account_analytic_id': default_analytic_account.analytic_id.id})
|
||||
res.update({'analytic_tag_ids' : [(6, 0, default_analytic_account.analytic_tag_ids.ids)]})
|
||||
return res
|
||||
|
||||
@@ -200,6 +200,7 @@ class PurchaseRequisitionLine(models.Model):
|
||||
requisition_id = fields.Many2one('purchase.requisition', required=True, string='Purchase Agreement', ondelete='cascade')
|
||||
company_id = fields.Many2one('res.company', related='requisition_id.company_id', string='Company', store=True, readonly=True, default= lambda self: self.env['res.company']._company_default_get('purchase.requisition.line'))
|
||||
account_analytic_id = fields.Many2one('account.analytic.account', string='Analytic Account')
|
||||
analytic_tag_ids = fields.Many2many('account.analytic.tag', string='Analytic Tags')
|
||||
schedule_date = fields.Date(string='Scheduled Date')
|
||||
move_dest_id = fields.Many2one('stock.move', 'Downstream Move')
|
||||
supplier_info_ids = fields.One2many('product.supplierinfo', 'purchase_requisition_line_id')
|
||||
@@ -280,6 +281,7 @@ class PurchaseRequisitionLine(models.Model):
|
||||
'taxes_id': [(6, 0, taxes_ids)],
|
||||
'date_planned': requisition.schedule_date or fields.Date.today(),
|
||||
'account_analytic_id': self.account_analytic_id.id,
|
||||
'analytic_tag_ids': self.analytic_tag_ids.ids,
|
||||
'move_dest_ids': self.move_dest_id and [(4, self.move_dest_id.id)] or []
|
||||
}
|
||||
|
||||
|
||||
@@ -193,6 +193,7 @@
|
||||
<field name="product_uom_id" groups="product.group_uom"/>
|
||||
<field name="schedule_date" groups="base.group_no_one"/>
|
||||
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
|
||||
<field name="analytic_tag_ids" groups="analytic.group_analytic_tags" widget="many2many_tags"/>
|
||||
<field name="price_unit"/>
|
||||
</tree>
|
||||
<form string="Products">
|
||||
|
||||
@@ -111,6 +111,7 @@ class SaleAdvancePaymentInv(models.TransientModel):
|
||||
'product_id': self.product_id.id,
|
||||
'sale_line_ids': [(6, 0, [so_line.id])],
|
||||
'invoice_line_tax_ids': [(6, 0, tax_ids)],
|
||||
'analytic_tag_ids': [(6, 0, so_line.analytic_tag_ids.ids)],
|
||||
'account_analytic_id': order.analytic_account_id.id or False,
|
||||
})],
|
||||
'currency_id': order.pricelist_id.currency_id.id,
|
||||
@@ -157,6 +158,9 @@ class SaleAdvancePaymentInv(models.TransientModel):
|
||||
else:
|
||||
tax_ids = taxes.ids
|
||||
context = {'lang': order.partner_id.lang}
|
||||
analytic_tag_ids = []
|
||||
for line in order.order_line:
|
||||
analytic_tag_ids = [(4, analytic_tag.id, None) for analytic_tag in line.analytic_tag_ids]
|
||||
so_line = sale_line_obj.create({
|
||||
'name': _('Advance: %s') % (time.strftime('%m %Y'),),
|
||||
'price_unit': amount,
|
||||
@@ -165,6 +169,7 @@ class SaleAdvancePaymentInv(models.TransientModel):
|
||||
'discount': 0.0,
|
||||
'product_uom': self.product_id.uom_id.id,
|
||||
'product_id': self.product_id.id,
|
||||
'analytic_tag_ids': analytic_tag_ids,
|
||||
'tax_id': [(6, 0, tax_ids)],
|
||||
'is_downpayment': True,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user