Fall 5030: Globales Lieferdatum für AN / AB
							parent
							
								
									06c0d8f1a9
								
							
						
					
					
						commit
						34552888f5
					
				|  | @ -113,7 +113,8 @@ | ||||||
|                                     <br/> |                                     <br/> | ||||||
|                                     <span t-field="order_line.name"/> |                                     <span t-field="order_line.name"/> | ||||||
|                                     <t t-if="order_line.delivery_date"> |                                     <t t-if="order_line.delivery_date"> | ||||||
|                                         <br/><strong>Lieferdatum: </strong><span t-field="order_line.delivery_date"/> |                                         <br/><strong>Voraussichtliches Lieferdatum: </strong> | ||||||
|  |                                         <span t-field="order_line.delivery_date"/> | ||||||
|                                     </t> |                                     </t> | ||||||
|                                 </td> |                                 </td> | ||||||
|                                 <td rowspan="2" class="text-right"> |                                 <td rowspan="2" class="text-right"> | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ | ||||||
|         'sale_stock', |         'sale_stock', | ||||||
|     ], |     ], | ||||||
|     'data': [ |     'data': [ | ||||||
|         'views/sale_order_line.xml', |         'views/sale_order.xml', | ||||||
|     ], |     ], | ||||||
|     'installable': True, |     'installable': True, | ||||||
|     'auto_install': False, |     'auto_install': False, | ||||||
|  |  | ||||||
|  | @ -1 +1,2 @@ | ||||||
| from . import sale_order_line | from . import sale_order_line | ||||||
|  | from . import sale_order | ||||||
|  |  | ||||||
|  | @ -0,0 +1,23 @@ | ||||||
|  | # 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, fields, models, _ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class SaleOrder(models.Model): | ||||||
|  |     _inherit = 'sale.order' | ||||||
|  | 
 | ||||||
|  |     delivery_date = fields.Date('Lieferdatum', compute='_compute_delivery_date', inverse='_inverse_delivery_date') | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def _compute_delivery_date(self): | ||||||
|  |         for order in self: | ||||||
|  |             lines = order.order_line.sorted(key=lambda d: d.delivery_date) | ||||||
|  |             if lines: | ||||||
|  |                 order.delivery_date = lines[0].delivery_date | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def _inverse_delivery_date(self): | ||||||
|  |         for order in self: | ||||||
|  |             for line in order.order_line: | ||||||
|  |                 line.delivery_date = order.delivery_date | ||||||
|  | @ -7,7 +7,7 @@ from odoo import api, fields, models, _ | ||||||
| class SaleOrderLine(models.Model): | class SaleOrderLine(models.Model): | ||||||
|     _inherit = 'sale.order.line' |     _inherit = 'sale.order.line' | ||||||
| 
 | 
 | ||||||
|     delivery_date = fields.Date('Lieferdatum', compute='_compute_delivery_date') |     delivery_date = fields.Date('Lieferdatum', compute='_compute_delivery_date', inverse='_inverse_delivery_date') | ||||||
| 
 | 
 | ||||||
|     @api.multi |     @api.multi | ||||||
|     def _compute_delivery_date(self): |     def _compute_delivery_date(self): | ||||||
|  | @ -15,6 +15,15 @@ class SaleOrderLine(models.Model): | ||||||
|             stock_move = self.env['stock.move'] |             stock_move = self.env['stock.move'] | ||||||
|             move = stock_move.search([('sale_line_id', '=', line.id), ('state', 'not in', ['cancel'])]) |             move = stock_move.search([('sale_line_id', '=', line.id), ('state', 'not in', ['cancel'])]) | ||||||
|             if move: |             if move: | ||||||
|                 line.delivery_date = move[0].date |                 line.delivery_date = move[0].date_expected | ||||||
|             else: |             else: | ||||||
|                 line.delivery_date = False |                 line.delivery_date = False | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def _inverse_delivery_date(self): | ||||||
|  |         for line in self: | ||||||
|  |             stock_move = self.env['stock.move'] | ||||||
|  |             move = stock_move.search([('sale_line_id', '=', line.id), ('state', 'not in', ['cancel'])]) | ||||||
|  |             if move: | ||||||
|  |                 move.date = line.delivery_date | ||||||
|  |                 move.date_expected = line.delivery_date | ||||||
|  |  | ||||||
|  | @ -9,9 +9,13 @@ | ||||||
|         <field name="model">sale.order</field> |         <field name="model">sale.order</field> | ||||||
|         <field name="inherit_id" ref="sale.view_order_form"/> |         <field name="inherit_id" ref="sale.view_order_form"/> | ||||||
|         <field name="arch" type="xml"> |         <field name="arch" type="xml"> | ||||||
|             <xpath expr="//field[@name='order_line']/tree//field[@name='discount']" position="after"> |             <xpath expr="//field[@name='order_line']/tree//field[@name='price_subtotal']" position="before"> | ||||||
|                 <field name="delivery_date"/> |                 <field name="delivery_date"/> | ||||||
|             </xpath> |             </xpath> | ||||||
|  |             <field name="confirmation_date" position="after"> | ||||||
|  |                 <field name="delivery_date" | ||||||
|  |                        attrs="{'invisible':[('state', 'in', ['draft', 'sent'])]}"/> | ||||||
|  |             </field> | ||||||
|         </field> |         </field> | ||||||
|     </record> |     </record> | ||||||
| 
 | 
 | ||||||
		Loading…
	
		Reference in New Issue