1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
odoo.define('stock.InventoryValidationController', function (require) {
"use strict";
var core = require('web.core');
var ListController = require('web.ListController');
var _t = core._t;
var qweb = core.qweb;
var InventoryValidationController = ListController.extend({
events: _.extend({
'click .o_button_validate_inventory': '_onValidateInventory'
}, ListController.prototype.events),
/**
* @override
*/
init: function (parent, model, renderer, params) {
var context = renderer.state.getContext();
this.inventory_id = context.active_id;
return this._super.apply(this, arguments);
},
// -------------------------------------------------------------------------
// Public
// -------------------------------------------------------------------------
/**
* @override
*/
renderButtons: function () {
this._super.apply(this, arguments);
var $validationButton = $(qweb.render('InventoryLines.Buttons'));
this.$buttons.prepend($validationButton);
},
// -------------------------------------------------------------------------
// Handlers
// -------------------------------------------------------------------------
/**
* Handler called when user click on validation button in inventory lines
* view. Makes an rpc to try to validate the inventory, then will go back on
* the inventory view form if it was validated.
* This method could also open a wizard in case something was missing.
*
* @private
*/
_onValidateInventory: function () {
var self = this;
var prom = Promise.resolve();
var recordID = this.renderer.getEditableRecordID();
if (recordID) {
// If user's editing a record, we wait to save it before to try to
// validate the inventory.
prom = this.saveRecord(recordID);
}
prom.then(function () {
self._rpc({
model: 'stock.inventory',
method: 'action_validate',
args: [self.inventory_id]
}).then(function (res) {
var exitCallback = function (infos) {
// In case we discarded a wizard, we do nothing to stay on
// the same view...
if (infos && infos.special) {
return;
}
// ... but in any other cases, we go back on the inventory form.
self.do_notify(
false,
_t("The inventory has been validated"));
self.trigger_up('history_back');
};
if (_.isObject(res)) {
self.do_action(res, { on_close: exitCallback });
} else {
return exitCallback();
}
});
});
},
});
return InventoryValidationController;
});
|