Acción para crear una albarán con los productos seleccionados desde la lista y sus cantidades disponibles.

This commit is contained in:
santiky 2021-09-16 15:04:34 +02:00
parent 439064cb48
commit 303a1c515c
Signed by: snt
GPG key ID: A9FD34930EADBE71
5 changed files with 94 additions and 0 deletions

View file

@ -0,0 +1,2 @@
from . import models

View file

@ -0,0 +1,28 @@
{
'name': 'Product Create Stock Picking',
'category': 'Warehouse',
'summary': 'Add an action to create a stock picking from a selection of products.',
'version': '12.0.0.0.1',
'description': """
Add an action to create a stock picking from a selection of products.
""",
'author': 'Criptomart',
'depends': [
'stock',
],
'external_dependencies': {'python': [], 'bin': []},
'data': [
'data/data.xml',
],
'qweb': [],
'demo': [],
'installable': True,
'auto_install': False,
'application': True,
"post_load": None,
"pre_init_hook": None,
"post_init_hook": None,
"uninstall_hook": None,
}

View file

@ -0,0 +1,16 @@
<odoo>
<data>
<record model="ir.actions.server" id="action_product_create_stock_picking">
<field name="name">Transfiere éstos productos</field>
<field name="type">ir.actions.server</field>
<field name="model_id" ref="product.model_product_template" />
<field name="state">code</field>
<field name="code">action =records.create_stock_picking()</field>
<field name="binding_model_id" ref="product.model_product_template" />
<field name="binding_type">action</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,2 @@
from . import product_template

View file

@ -0,0 +1,46 @@
# Copyright (C) 2021: Criptomart (https://criptomart.net)
# @author Santi Noreña (<santi@criptomart.net>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
#import logging
from odoo import tools, models, fields, api, _
#_logger = logging.getLogger(__name__)
class ProductTemplate(models.Model):
_inherit = "product.template"
@api.multi
def create_stock_picking(self):
picking_vals = self.env['stock.picking'].default_get(self.env['stock.picking']._fields.keys())
picking_vals.update({
'picking_type_id' : self.env.ref('stock.picking_type_internal').id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id': self.env.ref('stock.stock_location_stock').id,
})
picking = self.env['stock.picking'].create(picking_vals)
for p in self:
_logger.warning("product : %s" %p.name)
move_vals = {
'name': p.name,
'product_id': p.id,
'product_uom_qty': p.qty_available,
'product_uom': p.uom_id.id,
'picking_id': picking.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id': self.env.ref('stock.stock_location_stock').id,
'state': 'waiting',
'procure_method': 'make_to_order',
}
picking.move_lines = [(0, 0, move_vals)]
views = [(self.env.ref('stock.view_picking_form').id, 'form')]
return {
'type': 'ir.actions.act_window',
'res_model': 'stock.picking',
'res_id': picking.id,
'target': 'current',
'views': views,
}