31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
# Copyright 2018-Today datenpol gmbh (<http://www.datenpol.at>)
 | 
						|
# License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses).
 | 
						|
 | 
						|
from odoo import api, models
 | 
						|
 | 
						|
 | 
						|
class AccountInvoice(models.Model):
 | 
						|
    _inherit = 'account.invoice'
 | 
						|
 | 
						|
    @api.multi
 | 
						|
    def order_lines_layouted(self):
 | 
						|
        res = super(AccountInvoice, self).order_lines_layouted()
 | 
						|
        uncategorized = False
 | 
						|
        # Rechnungszeilen ohne Kategorie löschen und an den Anfang stellen
 | 
						|
        for idx1, page in enumerate(res):
 | 
						|
            for idx2, category in enumerate(page):
 | 
						|
                if category.get('name') == 'Uncategorized':
 | 
						|
                    uncategorized = page.pop(idx2)
 | 
						|
            if uncategorized:
 | 
						|
                res[idx1] = [uncategorized] + res[idx1]
 | 
						|
        for page in res:
 | 
						|
            for category in page:
 | 
						|
                price_subtotal = 0.0
 | 
						|
                for line in category['lines']:
 | 
						|
                    price_subtotal += line.price_subtotal
 | 
						|
                category['price_subtotal'] = price_subtotal
 | 
						|
                sale_order = self.env['sale.order'].search([('name', '=', category['name'])])
 | 
						|
                if sale_order:
 | 
						|
                    category['order_id'] = sale_order
 | 
						|
        return res
 |