print serial_no on invoice if a product has serial_no_tracking
							parent
							
								
									85bfc5dc0c
								
							
						
					
					
						commit
						8dd72576ac
					
				|  | @ -1,7 +1,7 @@ | |||
| # 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 | ||||
| from odoo import api, fields, models | ||||
| 
 | ||||
| 
 | ||||
| class AccountInvoice(models.Model): | ||||
|  | @ -28,3 +28,47 @@ class AccountInvoice(models.Model): | |||
|                 if sale_order: | ||||
|                     category['order_id'] = sale_order | ||||
|         return res | ||||
| 
 | ||||
| class AccountInvoiceLine(models.Model): | ||||
|     _inherit = "account.invoice.line" | ||||
| 
 | ||||
|     order_line_ids = fields.Many2many( | ||||
|         comodel_name='sale.order.line', | ||||
|         relation='sale_order_line_invoice_rel', | ||||
|         column1='invoice_line_id', | ||||
|         column2='order_line_id', | ||||
|         string='Order Lines', | ||||
|         readonly=True, | ||||
|     ) | ||||
| 
 | ||||
|     prod_lot_ids = fields.Many2many( | ||||
|         comodel_name='stock.production.lot', | ||||
|         compute='_compute_prod_lots', | ||||
|         string="Production Lots", | ||||
|     ) | ||||
| 
 | ||||
|     lot_formatted_note = fields.Html( | ||||
|         string='Formatted Note', | ||||
|         compute='_compute_line_lots', | ||||
|     ) | ||||
| 
 | ||||
|     @api.multi | ||||
|     def _compute_prod_lots(self): | ||||
|         for line in self: | ||||
|             if not line.order_line_ids: | ||||
|                 return | ||||
|             line.prod_lot_ids = self.mapped( | ||||
|                 'order_line_ids.move_ids.move_line_ids.lot_id') | ||||
|         print('End') | ||||
| 
 | ||||
|     @api.multi | ||||
|     def _compute_line_lots(self): | ||||
|         for line in self: | ||||
|             if line.prod_lot_ids: | ||||
|                 note = u'<ul>' | ||||
|                 note += u' '.join([ | ||||
|                     u'<li>S/N {0}</li>'.format(lot.name) | ||||
|                     for lot in line.prod_lot_ids | ||||
|                 ]) | ||||
|                 note += u'</ul>' | ||||
|                 line.lot_formatted_note = note | ||||
|  |  | |||
|  | @ -85,6 +85,8 @@ | |||
|                 <t t-foreach="o.order_lines_layouted()" t-as="page" name="lines_layouted"> | ||||
|                     <table class="table table-condensed"> | ||||
|                         <t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/> | ||||
|                         <t t-set="has_serial_number" t-value="o.invoice_line_ids.mapped('prod_lot_ids')" | ||||
|                            groups="stock.group_production_lot"/> | ||||
|                         <thead class="table-header"> | ||||
|                             <tr> | ||||
|                                 <th class="text-center">Pos.</th> | ||||
|  | @ -182,6 +184,12 @@ | |||
|                                                 <span t-field="invoice_line.intrastat_id"/> | ||||
|                                                 <br/> | ||||
|                                             </span> | ||||
|                                             <span t-if="invoice_line.product_id.tracking=='serial'"> | ||||
|                                                 <strong>Serien Nr.:</strong> | ||||
|                                                 <t t-if="has_serial_number"> | ||||
|                                                     <span t-field="invoice_line.lot_formatted_note" /> | ||||
|                                                 </t> | ||||
|                                             </span> | ||||
|                                             <span t-field="invoice_line.name"/> | ||||
|                                             <p t-if="invoice_line.lot_id.notes"> | ||||
|                                                 <span t-field="invoice_line.lot_id.notes"/> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue