weight for stock.move

develop
Andreas Osim 2018-10-22 09:07:29 +02:00
parent 61e77cf92b
commit 1ddfd06773
3 changed files with 69 additions and 6 deletions

View File

@ -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)

View File

@ -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="{&quot;warn&quot;: true}"/>
</xpath>
</field>
</record>
</odoo> </odoo>

View File

@ -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>
<!-- <!--