This field:
https://github.com/odoo/odoo/blob/625a648f227325468981a9e4a51e80b44132a45f/addons/stock/models/stock_move_line.py#L40

Allways shows the same value as create_date.

Could it be defined as stock.move related field?

Should it be written here?
https://github.com/odoo/odoo/blob/3c0337673385876922da95296e70a0b7b728f275/addons/stock/models/stock_move.py#L1048

@Tecnativa
addons/stock/models/stock_move_line.py
""" When the user is encoding a move line for a tracked product, we apply some logic to
        help him. This onchange will warn him if he set `qty_done` to a non-supported value.
        """
        res = {}
        if self.product_id.tracking == 'serial':
            if float_compare(self.qty_done, 1.0, precision_rounding=self.move_id.product_id.uom_id.rounding) != 0:
                message = _('You can only process 1.0 %s for products with unique serial number.') % self.product_id.uom_id.name
                res['warning'] = {'title': _('Warning'), 'message': message}
        return res
    @api.constrains('qty_done')
    def _check_positive_qty_done(self):
        if any([ml.qty_done < 0 for ml in self]):
            raise ValidationError(_('You can not enter negative quantities!'))
    def _get_similar_move_lines(self):
        self.ensure_one()
        lines = self.env['stock.move.line']
        picking_id = self.move_id.picking_id if self.move_id else self.picking_id
        if picking_id:
            lines |= picking_id.move_line_ids.filtered(lambda ml: ml.product_id == self.product_id and (ml.lot_id or ml.lot_name))
        return lines
    @api.model
    def create(self, vals):
        vals['ordered_qty'] = vals.get('product_uom_qty')
        
        
        
        if 'picking_id' in vals and not vals.get('move_id'):
            picking = self.env['stock.picking'].browse(vals['picking_id'])
            if picking.state == 'done':
                product = self.env['product.product'].browse(vals['product_id'])