mirror of
https://github.com/OCA/stock-logistics-warehouse.git
synced 2025-01-21 14:27:28 +02:00
[15.0][MIG] stock_request_kanban
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# Copyright 2018 Creu Blanca
|
||||
# Copyright 2018-22 Creu Blanca
|
||||
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
|
||||
|
||||
{
|
||||
"name": "Stock Request kanban",
|
||||
"version": "14.0.1.0.0",
|
||||
"version": "15.0.1.0.0",
|
||||
"category": "Warehouse Management",
|
||||
"website": "https://github.com/OCA/stock-logistics-warehouse",
|
||||
"author": "Creu Blanca, ForgeFlow, Odoo Community Association (OCA)",
|
||||
@@ -25,7 +25,15 @@
|
||||
"report/stock_request_kanban_templates.xml",
|
||||
"security/ir.model.access.csv",
|
||||
],
|
||||
"qweb": ["static/src/xml/stock_request_kanban_scan.xml"],
|
||||
"assets": {
|
||||
"web.assets_backend": [
|
||||
"stock_request_kanban/static/src/js/stock_request_kanban_scan_controller.esm.js",
|
||||
"stock_request_kanban/static/src/js/stock_request_kanban_scan_view.esm.js",
|
||||
],
|
||||
"web.assets_qweb": [
|
||||
"stock_request_kanban/static/src/xml/stock_request_kanban_scan.xml",
|
||||
],
|
||||
},
|
||||
"installable": True,
|
||||
"application": False,
|
||||
}
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="seq_stock_request_kanban" model="ir.sequence">
|
||||
<field name="name">Stock Request Kanban</field>
|
||||
<field name="code">stock.request.kanban</field>
|
||||
<field name="prefix">KB</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
<record id="seq_stock_inventory_kanban" model="ir.sequence">
|
||||
<field name="name">Stock Inventory Kanban</field>
|
||||
<field name="code">stock.inventory.kanban</field>
|
||||
<field name="prefix">IKB</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
</data>
|
||||
<odoo noupdate="1">
|
||||
<record id="seq_stock_request_kanban" model="ir.sequence">
|
||||
<field name="name">Stock Request Kanban</field>
|
||||
<field name="code">stock.request.kanban</field>
|
||||
<field name="prefix">KB</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
<record id="seq_stock_inventory_kanban" model="ir.sequence">
|
||||
<field name="name">Stock Inventory Kanban</field>
|
||||
<field name="code">stock.inventory.kanban</field>
|
||||
<field name="prefix">IKB</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False" />
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -25,7 +25,7 @@ class StockInventoryKanban(models.Model):
|
||||
default="draft",
|
||||
readonly=True,
|
||||
copy=False,
|
||||
track_visibility="onchange",
|
||||
tracking=True,
|
||||
)
|
||||
warehouse_ids = fields.Many2many(
|
||||
"stock.warehouse",
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import ListController from "web.ListController";
|
||||
import core from "web.core";
|
||||
|
||||
var qweb = core.qweb;
|
||||
|
||||
var StockRequestKanbanController = ListController.extend({
|
||||
// -------------------------------------------------------------------------
|
||||
// Public
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
init: function (parent, model, renderer) {
|
||||
this.context = renderer.state.getContext();
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
|
||||
renderButtons: function () {
|
||||
this._super.apply(this, arguments);
|
||||
var $buttonScan = $(qweb.render("StockRequestKanban.Buttons"));
|
||||
$buttonScan.on("click", this._onOpenWizard.bind(this));
|
||||
|
||||
this.$buttons.prepend($buttonScan);
|
||||
},
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Handlers
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
_onOpenWizard: function () {
|
||||
var context = {
|
||||
active_model: this.modelName,
|
||||
};
|
||||
this.do_action({
|
||||
res_model: "wizard.stock.request.kanban",
|
||||
views: [[false, "form"]],
|
||||
target: "new",
|
||||
type: "ir.actions.act_window",
|
||||
context: context,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
export default StockRequestKanbanController;
|
||||
@@ -1,50 +0,0 @@
|
||||
odoo.define("stock_request_kanban.StockRequestKanbanController", function (require) {
|
||||
"use strict";
|
||||
|
||||
var core = require("web.core");
|
||||
var ListController = require("web.ListController");
|
||||
|
||||
var qweb = core.qweb;
|
||||
|
||||
var StockRequestKanbanController = ListController.extend({
|
||||
// -------------------------------------------------------------------------
|
||||
// Public
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
init: function (parent, model, renderer) {
|
||||
this.context = renderer.state.getContext();
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
|
||||
renderButtons: function () {
|
||||
this._super.apply(this, arguments);
|
||||
var $buttonScan = $(qweb.render("StockRequestKanban.Buttons"));
|
||||
$buttonScan.on("click", this._onOpenWizard.bind(this));
|
||||
|
||||
this.$buttons.prepend($buttonScan);
|
||||
},
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Handlers
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
_onOpenWizard: function () {
|
||||
var context = {
|
||||
active_model: this.modelName,
|
||||
};
|
||||
this.do_action({
|
||||
res_model: "wizard.stock.request.kanban",
|
||||
views: [[false, "form"]],
|
||||
target: "new",
|
||||
type: "ir.actions.act_window",
|
||||
context: context,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
return StockRequestKanbanController;
|
||||
});
|
||||
@@ -0,0 +1,15 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import ListView from "web.ListView";
|
||||
import StockRequestKanbanController from "@stock_request_kanban/js/stock_request_kanban_scan_controller.esm";
|
||||
import viewRegistry from "web.view_registry";
|
||||
|
||||
var StockRequestKanbanListView = ListView.extend({
|
||||
config: _.extend({}, ListView.prototype.config, {
|
||||
Controller: StockRequestKanbanController,
|
||||
}),
|
||||
});
|
||||
|
||||
viewRegistry.add("stock_request_kanban_list", StockRequestKanbanListView);
|
||||
|
||||
export default StockRequestKanbanListView;
|
||||
@@ -1,17 +0,0 @@
|
||||
odoo.define("stock_request_kanban.StockRequestKanbanListView", function (require) {
|
||||
"use strict";
|
||||
|
||||
var ListView = require("web.ListView");
|
||||
var StockRequestKanbanController = require("stock_request_kanban.StockRequestKanbanController");
|
||||
var viewRegistry = require("web.view_registry");
|
||||
|
||||
var StockRequestKanbanListView = ListView.extend({
|
||||
config: _.extend({}, ListView.prototype.config, {
|
||||
Controller: StockRequestKanbanController,
|
||||
}),
|
||||
});
|
||||
|
||||
viewRegistry.add("stock_request_kanban_list", StockRequestKanbanListView);
|
||||
|
||||
return StockRequestKanbanListView;
|
||||
});
|
||||
@@ -1,6 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<templates id="template" xml:space="preserve">
|
||||
<button t-name="StockRequestKanban.Buttons" class="btn-primary btn" type="button">
|
||||
<button
|
||||
t-name="StockRequestKanban.Buttons"
|
||||
class="btn-primary btn mr-1"
|
||||
type="button"
|
||||
>
|
||||
Scan Kanban
|
||||
</button>
|
||||
</templates>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<field name="name">stock.inventory.kanban.tree</field>
|
||||
<field name="model">stock.inventory.kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Stock Inventories">
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="count_missing_kanbans" />
|
||||
<field name="state" />
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
<field name="model">stock.request.kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree
|
||||
string="Stock Requests"
|
||||
decoration-muted="active == 'false'"
|
||||
decoration-bf="message_needaction==True"
|
||||
>
|
||||
|
||||
@@ -2,22 +2,6 @@
|
||||
<!-- Copyright 2017 ForgeFlow
|
||||
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). -->
|
||||
<odoo>
|
||||
<template
|
||||
id="stock_request_kanban_assets_backend"
|
||||
name="stock_request_kanban assets"
|
||||
inherit_id="web.assets_backend"
|
||||
>
|
||||
<xpath expr="." position="inside">
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="/stock_request_kanban/static/src/js/stock_request_kanban_scan_controller.js"
|
||||
/>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="/stock_request_kanban/static/src/js/stock_request_kanban_scan_view.js"
|
||||
/>
|
||||
</xpath>
|
||||
</template>
|
||||
<record id="view_stock_request_tree" model="ir.ui.view">
|
||||
<field name="name">stock.request.tree</field>
|
||||
<field name="model">stock.request</field>
|
||||
|
||||
@@ -13,8 +13,9 @@ class WizardStockInventoryKanban(models.TransientModel):
|
||||
inventory_kanban_id = fields.Many2one("stock.inventory.kanban", readonly=True)
|
||||
|
||||
def barcode_ending(self):
|
||||
super().barcode_ending()
|
||||
res = super().barcode_ending()
|
||||
self.inventory_kanban_id.write({"scanned_kanban_ids": [(4, self.kanban_id.id)]})
|
||||
return res
|
||||
|
||||
def validate_kanban(self, barcode):
|
||||
res = super().validate_kanban(barcode)
|
||||
|
||||
@@ -13,12 +13,13 @@ class WizardStockRequestKanban(models.TransientModel):
|
||||
stock_request_id = fields.Many2one("stock.request", readonly=True)
|
||||
|
||||
def barcode_ending(self):
|
||||
super().barcode_ending()
|
||||
res = super().barcode_ending()
|
||||
self.stock_request_id = self.env["stock.request"].create(
|
||||
self.stock_request_kanban_values()
|
||||
)
|
||||
self.stock_request_ending()
|
||||
self.update_status()
|
||||
return res
|
||||
|
||||
def stock_request_ending(self):
|
||||
self.stock_request_id.action_confirm()
|
||||
@@ -28,11 +29,9 @@ class WizardStockRequestKanban(models.TransientModel):
|
||||
{
|
||||
"status_state": 0,
|
||||
"status": _(
|
||||
"Added kanban %s for product %s"
|
||||
% (
|
||||
self.stock_request_id.kanban_id.name,
|
||||
self.stock_request_id.product_id.display_name,
|
||||
)
|
||||
"Added kanban %(kanban)s for product %(product)s",
|
||||
kanban=self.stock_request_id.kanban_id.name,
|
||||
product=self.stock_request_id.product_id.display_name,
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -51,5 +51,6 @@ class WizardStockRequestOrderKanban(models.TransientModel):
|
||||
return
|
||||
|
||||
def barcode_ending(self):
|
||||
super().barcode_ending()
|
||||
res = super().barcode_ending()
|
||||
self.order_id = self.stock_request_id.order_id
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user