1 select xt.install_js('XM','PurchaseOrder','purchasing', $$
2 /* Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
3 See www.xtuple.com/CPAL for the full text of the software license. */
7 if (!XM.PurchaseOrder) { XM.PurchaseOrder = {}; }
9 XM.PurchaseOrder.isDispatchable = true;
12 Release a Purchase Order.
14 @param {String} Purchase Order Number
16 XM.PurchaseOrder.release = function(id) {
17 var orm = XT.Orm.fetch("XM", "PurchaseOrder"),
18 data = Object.create(XT.Data),
19 id = data.getId(orm, id);
21 /* Make sure user can do this */
22 if (!XT.Data.checkPrivilege("ReleasePurchaseOrders")) {
23 throw new handleError("Access Denied", 401);
26 XT.executeFunction("releasePurchaseOrder", [id]);
31 Unrelease a Purchase Order.
33 @param {String} Purchase Order Number
35 XM.PurchaseOrder.unrelease = function(id) {
36 var orm = XT.Orm.fetch("XM", "PurchaseOrder"),
37 data = Object.create(XT.Data),
38 id = data.getId(orm, id);
40 /* Make sure user can do this */
41 if (!XT.Data.checkPrivilege("UnreleasePurchaseOrders")) {
42 throw new handleError("Access Denied", 401);
45 XT.executeFunction("unreleasePurchaseOrder", [id]);
50 Return whether a Purchase Order is referenced by another table.
52 @param {String} Purchase Order Number
54 XM.PurchaseOrder.used = function(id, ignoreStatus) {
55 var sql = "select pohead_status from pohead where pohead_number=$1";
56 status = plv8.execute(sql, [id])[0].pohead_status;
58 if (!ignoreStatus && status !== "U") { return true; }
60 sql = "select count(*) > 0 as used " +
62 "where recv_order_type='PO' and recv_order_number = $1;";
63 return plv8.execute(sql, [id])[0].used;