how to check on available of items in the stock room before allowed to reassign ticket ?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-02-2024 11:13 PM - edited 02-04-2024 05:14 AM
Hi i have a catalog form that needs to check on the next available stocks for the next stock room before reassigning the ticket successfully else to throw an error.
the code below i tried and it is not working on the check for the availability of the stock in the re-assigned group .
(function executeRule(current, previous /*null when async*/) {
// Check if the assignment_group field is being modified
if (current.assignment_group.changes()) {
// New assignment group value
var newAssignmentGroup = current.assignment_group;
// Query the Stockroom based on the new Assignment Group
var stockroomGR = new GlideRecord('alm_stockroom');
stockroomGR.addQuery('assignment_group', newAssignmentGroup);
stockroomGR.query();
// If no stockroom is found, prevent the assignment group change
if (!stockroomGR.next()) {
gs.addErrorMessage('No Stockroom found for the new Assignment Group. Assignment Group cannot be changed.');
current.setAbortAction(true);
return;
} else {
current.setAbortAction(false);
return;
}
}
// Check items and quantities in variables
var items = current.variables.item_requested; // Assuming "item" is the variable name for items
var req_quantity = current.variables.quantity; // Assuming "quantity" is the variable name for quantities
var consumableGR = new GlideRecord('alm_asset');
consumableGR.addQuery('install_status', 6);
consumableGR.addQuery('stockroom', current.u_stockroom);
consumableGR.addQuery('sys_id', items);
consumableGR.query();
// Check consumable availability for each item
if (consumableGR.next()) {
var availableQuantity = consumableGR.getValue('quantity');
try {
var quantity = availableQuantity - req_quantity;
if (quantity >= 0) {
current.setAbortAction(false); // Adjusted to false if quantity is sufficient
return;
} else {
gs.addErrorMessage('Insufficient consumable items for item: ' + items + ' in the new Assignment Group. Assignment Group cannot be changed.');
current.setAbortAction(true);
return;
}
} catch (ex) {
gs.addErrorMessage('Unexpected Error: ' + ex.message);
current.setAbortAction(true);
return;
}
}
})(current, previous);
0 REPLIES 0