Proposal For Product consumption update

Proposal summary 

This proposal describes the Product consumption updates in NetSuite.  

Requirement 

The Arab Malaysia Company for Vegetable Oil Products Ltd-KSA-NS would like to do the following updates on the working of Consumed products and the Inventory Adjustment creation process. 

  1. Change the custom record name from “Consumed Products” to “Material Request- Consumables” 
  1. The values in the Employee field will be filtered based on the subordinates of the current user. Also, the current User needs to list in the employee field. 
  1. Add a Supervisor field in the custom record and set the supervisor of the selected employee. 
  1. Add a department field in the custom record and Once the employee is selected, the department needs to be populated from the employee’s assignment. 
  1. Subsidiary values need to auto-populate based on the subsidiary of the employee assignment. And list items under this subsidiary on the item field on the sub list. 
  1. Add a new item sub list in the custom record and show fields Item, item description, Requested Quantity, Issued Quantity, lot number, and status. 
  1. Requested Quantity: This field is used by the requester through the “Material Request- Consumables” form. 
  1. Issued Quantity: This field is used by the storekeeper. The requested quantity may differ from the Issued quantity based on the item’s availability. The storekeeper must enter the actual issued quantity before approving the transaction. The Issued Quantity is the quantity used in the Inventory Adjustment. 
  1. There will be 3 categories in the item record named MRO, BOM, and MRO&BOM. List all items under MRO & MRO/BOM category. 
  1. Regarding the quantity setup in the consumed location, set the adjust qty by 0 for consumed location. Also, the inventory adjustment should have a GL impact. 
  1. They need to add two level approvals for the custom records. The first approval is from the requester’s supervisor. The second approval is the storekeeper. Also need rejection reason and email sending for both approvals. 
  1. They want to create an inventory adjustment record in real-time once the second approval is approved by the Storekeeper or administrator roles. 

Prerequisites 

  • We have to send the pending approval email to the user roles AMMP Storekeeper, AMVOP Storekeeper, when user click the “Submit for 2nd level approval” Button. We can’t choose the roles in the recipient field of emails. So AMVOP needs to provide the employee list to send the pending approval emails.  

Our Solution 

The requirement can be achieved by deploying scripts, workflow and creating custom records. 

We have to update the custom record and deploy client script and user event script to do following changes: 

  1. Will change the name to “Material Request- Consumables”.  
  1. Will  filter values in employee field based on the subordinates of the current user and also will show the current user in the field. This filtering will be done by the user event script. 
  1. We will add fields supervisor and department in the custom record and set values in these fields from employee assignment records when selecting employees. 
  1. Subsidiary values will auto-populate based on the subsidiary of the current user. And items under this subsidiary will be listed on the item field on the sub list. 
  1. We will create a new child custom record to add item sub list in custom record and show fields Item, item description, Requested Quantity, Issued Quantity, lot number, status, Related Inventory Adjustment, and Error Message.When creating an Inventory Adjustment record, the Issued Quantity will be set on the “ADJUST QTY. BY” field.  
  1. There will be 3 categories in the item record named MRO, BOM, and MRO&BOM. We can choose only inventory and assembly items in inventory adjustment. So we will list all inventory and assembly items under MRO & MRO/BOM category in the item sublist. And the script will show an alert if the user selects items in other subsidiaries not from the selected subsidiary. 
  1. Regarding the quantity setup in consumed location, we will set the adjust qty by 0 for consumed location. 

Approval Setup 

We will deploy one workflow for the approval process in custom record. 

First level approval 

  • On creation of the custom record, the approval status is set as “Pending approval”. And the “Approval Status” field will be disabled for all users and roles.  
    The users can view the “Submit for Approval” button to submit the custom record for approval. 
  • After clicking the submit for approval button, this record will be locked for all users except the administrator and supervisor of the employee. And workflow will send a pending approval email to the supervisor of the employee. And will set the Approval status as “Submitted for Approval”.  The administrator and supervisor will have two options Reject and Approve  
  • If the approver clicks the Reject button, then the Reject reason record will open.  
  • Approver has to enter value Reason for Rejection field and save.  
  • After rejecting the custom record, the Custom approval status will be set as “Approver 1-Rejected” and the reject reason record will display under the custom tab. A reject email will send to the owner of the custom record. The record will be editable to the created user to make necessary changes to the custom record. 
  • Again the user can submit the record by clicking on the “Resubmit for approval” button. When user clicks the  “Resubmit for approval” button, approval status will set to “Submitted for Approval” and it goes to first level of approval. 
  • Approver can Click the Approve button to approve the custom record. 

Second level approval 

  • When the 1st approver clicks the approve button, then status will set to “Awaiting Approval 2 “. An email is sent to the created user to let him know that the 1st approval is done and is waiting for the 2nd approval. And another email is sent to the user roles AMMP Storekeeper, AMVOP Storekeeper to notify him that a custom record is waiting for his approval. 
  • These users can view the Approve and Reject button in the custom record.  And any users can approve or reject the record if they log in using these roles. We will not add user restrictions to the workflow. 
  • If the approver clicks reject, then the Reject reason record will open.  
  • Approver has to enter the value in Reason for Rejection field and save.  
  • After rejecting the custom record, the Custom approval status will be set as “Approver 2-Rejected” and the reject reason record will display under the custom tab. An email is sent to the created user to let him know that the 2nd approver has rejected the custom record. The record will be editable to the created user to make necessary changes to the custom record. 
  • Again the user can submit the record by clicking on the “Resubmit for  Approval” button.  
  • When the created user clicks on the “Resubmit for approval” button it goes to the 1st level of approval again and the entire process repeats until the Approval Status is set as “Approved”.  
  • Approver can Click the Approve button to approve the custom record.  
  • When clicking on the approve button the Custom Approval status will be set as Approved if the approver sets value in the “Issued Quantity” field, and approve email will be sent to the owner of the custom record . And the custom record will be locked for all users. 
  • If the approver doesn’t set the value in the Issued Quantity field, then an error message will show and the custom record will not be approved.  
  • All sent emails will be displayed under the Mail merge field in the custom 

Inventory adjustment creation 

  • When the approver approves the custom record and the approver has entered value in the “Issued Quantity” field, then the script will create inventory adjustment in real-time. The script will create separate inventory adjustments for items having different COGS accounts. And it will dynamically set the adjustment account using the COGS account of the item. If the custom record contains more than 15 items which having different COGS accounts, then the script can’t create inventory adjustment because of the governance issue. So the script will set an error message in the custom record. 

Note 

  • The script will check the employee assignment record by searching the current user in the field “Employee (custrecord_az_ea_employee)”. If there is no employee assignment record for the current user and the user selects current user in the employee field, then the supervisor and department will be blank on custom record.  
  • And if the  Supervisor/ department of the current user is blank in employee assignment, and the user selects the current user in the employee field, then the supervisor/department field in the custom record will be blank.  

Assumptions 

  • If the 2nd approver rejects the custom record the approval process can be start from the 1st approver again. 

Risk 

  • If the custom record contains more than 15 items which having different COGS accounts, the script will not create the inventory adjustments due to the governance issue. We are not considering the scheduled process for this case as you said there will not be a chance for 15 different COGS account items in a single customer record.  If this issue happens, the script will set the error message in the custom record. The count 15 is our assumption. It may vary during our development. 

Leave a comment

Your email address will not be published. Required fields are marked *