weight for stock.move
							parent
							
								
									61e77cf92b
								
							
						
					
					
						commit
						1ddfd06773
					
				|  | @ -60,3 +60,42 @@ class StockPicking(models.Model): | ||||||
| 
 | 
 | ||||||
|         res = lang_obj.format('%.' + str(2) + 'f', value, grouping=True, monetary=True) |         res = lang_obj.format('%.' + str(2) + 'f', value, grouping=True, monetary=True) | ||||||
|         return res |         return res | ||||||
|  | 
 | ||||||
|  | class StockMove(models.Model): | ||||||
|  |     _inherit = "stock.move" | ||||||
|  | 
 | ||||||
|  |     manu_lots_visible = fields.Boolean(compute='_compute_manu_lots_visible') | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def _prepare_move_line_vals(self, quantity=None, reserved_quant=None): | ||||||
|  |         self.ensure_one() | ||||||
|  |         vals = super(StockMove, self)._prepare_move_line_vals(quantity=quantity, reserved_quant=reserved_quant) | ||||||
|  |         if self.sale_line_id.lot_id and not self.sale_line_id.product_id.can_be_sold_unconfigured: | ||||||
|  |             move_lot = self.sale_line_id.lot_id.id | ||||||
|  |             vals.update({'lot_id': move_lot, }) | ||||||
|  |         return vals | ||||||
|  | 
 | ||||||
|  |     def _compute_manu_lots_visible(self): | ||||||
|  |         for move_line in self: | ||||||
|  |             if not move_line.product_id.can_be_sold_unconfigured: | ||||||
|  |                 move_line.manu_lots_visible = True | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def action_show_lot(self): | ||||||
|  |         self.ensure_one() | ||||||
|  |         action = self.env.ref('stock.action_production_lot_form').read()[0] | ||||||
|  |         action['res_id'] = self.move_line_ids.lot_id.id | ||||||
|  |         action['view_mode'] = 'form' | ||||||
|  |         action['views'] = [(False, 'form')] | ||||||
|  | 
 | ||||||
|  |         return action | ||||||
|  | 
 | ||||||
|  |     @api.depends('product_id', 'product_uom_qty', 'product_uom') | ||||||
|  |     def _cal_move_weight(self): | ||||||
|  |         for move in self: | ||||||
|  |             if move.sale_line_id.lot_id and not move.product_id.can_be_sold_unconfigured: | ||||||
|  |                 move.weight += (move.product_qty * move.sale_line_id.lot_id.weight) | ||||||
|  |             else: | ||||||
|  |                 move.weight += (move.product_qty * move.product_id.weight) | ||||||
|  | 
 | ||||||
|  | #        print(move.weight) | ||||||
|  | @ -22,4 +22,17 @@ | ||||||
|         <field name="priority">0</field> |         <field name="priority">0</field> | ||||||
|     </record> |     </record> | ||||||
| 
 | 
 | ||||||
|  |     <record id="view_delivery_manu_lot" model="ir.ui.view"> | ||||||
|  |         <field name="name">view_delivery_manu_lot</field> | ||||||
|  |         <field name="model">stock.picking</field> | ||||||
|  |         <field name="inherit_id" ref="stock.view_picking_form"/> | ||||||
|  |         <field name="arch" type="xml"> | ||||||
|  |             <xpath expr="//field[@name='move_lines']/tree//field[@name='product_id']" position="after"> | ||||||
|  |                 <field name="manu_lots_visible" invisible="1"/> | ||||||
|  |                 <button name="action_show_lot" string="Lot for manufactoring parts" type="object" icon="fa-list" attrs="{'invisible': [('manu_lots_visible', '=', False)]}" options="{"warn": true}"/> | ||||||
|  |             </xpath> | ||||||
|  |         </field> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -176,10 +176,14 @@ | ||||||
|                                 <th> |                                 <th> | ||||||
|                                     <strong>Product</strong> |                                     <strong>Product</strong> | ||||||
|                                 </th> |                                 </th> | ||||||
|                                 <th name="lot_serial" t-if="has_serial_number"> | <!--                                <th name="lot_serial" t-if="has_serial_number"> --> | ||||||
|  |                                 <th class="text-center" name="lot_serial" t-if="has_serial_number and any([move_line.product_id.can_be_sold_unconfigured for move_line in o.move_line_ids])"> | ||||||
|                                     Lot/Serial Number |                                     Lot/Serial Number | ||||||
|                                 </th> |                                 </th> | ||||||
|                                 <th class="text-center"> |                                 <th class="text-center"> | ||||||
|  |                                     <strong>Weight</strong> | ||||||
|  |                                 </th> | ||||||
|  |                                 <th class="text-right"> | ||||||
|                                     <strong>Ordered Quantity</strong> |                                     <strong>Ordered Quantity</strong> | ||||||
|                                 </th> |                                 </th> | ||||||
|                                 <th t-if="any([move_line.state == 'done' for move_line in o.move_line_ids])" |                                 <th t-if="any([move_line.state == 'done' for move_line in o.move_line_ids])" | ||||||
|  | @ -209,14 +213,11 @@ | ||||||
|                                     </t> |                                     </t> | ||||||
|                                 </td> |                                 </td> | ||||||
|                                 <t t-if="has_serial_number"> |                                 <t t-if="has_serial_number"> | ||||||
|                                     <td> |                                     <td class="text-center"> | ||||||
|                                         <table width="100%"> |                                         <table width="100%"> | ||||||
|                                             <tr> |                                             <tr> | ||||||
|                                                 <td> |                                                 <td> | ||||||
|                                                     <span t-field="move_line.lot_id"/> |                                                     <span t-field="move_line.lot_id" t-if="move_line.product_id.can_be_sold_unconfigured"/> | ||||||
|                                                     <t t-if="not move_line.lot_id"> |  | ||||||
|                                                         <span t-field="move_line.lot_name"/> |  | ||||||
|                                                     </t> |  | ||||||
|                                                 </td> |                                                 </td> | ||||||
|                                                 <td name="lot_qty"> |                                                 <td name="lot_qty"> | ||||||
|                                                     <t t-if="move_line.product_qty"> |                                                     <t t-if="move_line.product_qty"> | ||||||
|  | @ -228,6 +229,16 @@ | ||||||
|                                     </td> |                                     </td> | ||||||
|                                 </t> |                                 </t> | ||||||
|                                 <td class="text-center"> |                                 <td class="text-center"> | ||||||
|  |                                     <t t-if="not move_line.lot_id or move_line.product_id.can_be_sold_unconfigured"> | ||||||
|  |                                         <span t-esc="move_line.ordered_qty*move_line.product_id.weight"/> | ||||||
|  | <!--                                                        <span t-field="move_line.product_id.weight"/> --> | ||||||
|  |                                     </t> | ||||||
|  |                                     <t t-if="move_line.lot_id and not move_line.product_id.can_be_sold_unconfigured"> | ||||||
|  | <!--                                                        <t t-set="weight" t-value="move_line.ordered_qty*move_line.lot_id.weight"/> --> | ||||||
|  |                                         <span t-field="move_line.lot_id.weight"/> | ||||||
|  |                                     </t> | ||||||
|  |                                 </td> | ||||||
|  |                                 <td class="text-right"> | ||||||
|                                     <span t-field="move_line.package_id"/> |                                     <span t-field="move_line.package_id"/> | ||||||
|                                     <span t-if="move_line.package_id">:</span> |                                     <span t-if="move_line.package_id">:</span> | ||||||
| <!-- | <!-- | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue