Sales Order Approval Workflow Proposal

Proposal Summary 

One Source IML would like to implement a solution for their Approval Workflow as per the following scope and plan. 

Requirement 

One Source IML would like to implement a solution for approval workflow in the sales order record. The approvers for their store were inaccessible to NetSuite. So, they are looking for an automated Approval that can access from outside the NetSuite. 

SCENARIO 

  • Store is allowed to spend $200 per month (Maximum Allowed per Month). 
  • Store places a Sales Order and the SO is marked as “HOLD” in NetSuite because this SO would cause them to exceed their Maximum Allowed per Month. 
  • Maximum Allowed per Month is determined by  
  • The sum of this month’s “Month-to-Date” Invoices plus  
  • the sum of amount remaining / unbilled /outstanding Sales Orders. 

Approvers need to approve without login to NetSuite. 

Store is allowed to spend $200 per month (Maximum Allowed per Month) should be manually change through NetSuite. 

Our Solution 

Prerequisite: 

  • New sales orders to be generated in the NetSuite must be in the “Pending Approval” status. 
  • The custom list for the field which showing the status HOLD in NetSuite account will be updated to add the data shown below: 
  1. Pending Approval 
  1. Rejected 
  1. Approved 
  1. Hold 
  • We will be able to identify the sales order status, according to this status we are Approving, Rejecting, Hold and the alert message shown to the users. 

Description 

We can implement a script to execute on the creation of sales orders. If the sales order has been created under the scenario will sent an email to the approver: 

Approval Scenario 

  • Store is allowed to spend $200 per month (Maximum Allowed per Month). 
  • Store places a Sales Order and the SO is marked as “HOLD” in NetSuite because this SO would cause them to exceed their Maximum Allowed per Month. 
  • Maximum Allowed per Month is determined by  
  • The sum of this month’s “Month-to-Date” Invoices plus  
  • the sum of amount remaining / unbilled /outstanding Sales Orders. 

Approvers need to approve without login to NetSuite. 

Store is allowed to spend $200 per month (Maximum Allowed per Month) should be manually change through NetSuite.  

  • Only when the fulfilment customer (custom field) is CRW. 
  • Customer Parent is CRW B. 
  • Memo should not contain ‘ref’ sales order will be taken for approval. 
  • The custom field order comments do not contain 12 pcs and not considering the closed sales order for approval. 
  • order comments does not contain “STEIN” 
  • order comments does not contain “PLATE” – this was added new today to the saved search 
  • order comments does not contain “CORP” – this was added new today to the saved search 
  • Customer/Job : Dept./Store# (Custom) is not “CORP” 
  • Customer/Job : Is Individual is “FALSE” 

Email Contents 

  • The details of the HOLD Sales Order. 
  • A Summary of the Month to Date Invoices.  
  • Open Sales Orders. 
  • Link to Approve the sales order and Reject 

Store is allowed to spend $200 per month (Maximum Allowed per Month). The maximum allowed per month can be changed by the client through NetSuite. We will be developing a script parameter field in script page in NetSuite. 

With the email that is delivered to the Approver, we will also include the Approve link and Reject Link to email. 

Upon clicking Approve/ Reject link will update the Sales order status in NetSuite. 

Global Parameter Setup 

We will be creating a script parameter field in the NetSuite script record. By creating this field, it will give the user the flexibility to change the maximum allowed amount any time for a store they want. 

 Then the script will fetch the data from the field and perform the execution for an approval workflow. If the field gets empty by the user will affect the script and will only run with the given criteria. The script will set an empty value as no limit and work accordingly to the script functionalities. 

This saved search will be used in the script to check the conditions and search can be edited by user manually 

Script for Check Approval Scenario 

We will be creating a script to trigger every time when a sales order created. The script will check the maximum amount scenario and if the sales order satisfies the criteria will send an email to the approver if not, there is no email will send. The script also will change the status to HOLD in the custom field. After the approver gets an email and does the approval will change the status from Hold. 

Email contents setup (Template) 

The email contains the details as below: 

  • The details of the HOLD Sales Order. 
  • A Summary of the Month to Date Invoices.  
  • Open Sales Orders. 
  • Link to Approve the sales order / Email Id provided by NetSuite 

Email contents will be created as per the mock-up attached below. 

Provided sample mock-up attached below: 

Approval /Reject Link in email 

We will be creating a custom suite let page that can provide an external link accessible to any users.  

When Approver clicks the approve link from the email, the related sales order shown in the email will be approved in NetSuite and upon clicking the Reject link will reject the sales order shown in the email in NetSuite. 

Approver will be notified through an alert message. 

We will be creating a custom suite let page for showing the alert notification to the user 

Custom Suitelet for error message in sales order 

We will be creating a custom page for showing an alert message to the user about the status of approval. 

  • Already Approved the sales order. 
  • Already Rejected the sales order. 
  • Approved the Sales order. 
  • Rejected the Sales order. 
  • No Sales order found in NetSuite. 

Assumptions 

  • If the custom field is empty, then the script will not do anything in the Sales Order approval status 
  • All orders creating through the B2B portal will be in “Pending Approval” status 
  • Once email has been sent for approval of order and order has been deleted in NetSuite, the link in the email sent to client will be invalid. 
  • Once approved the sales order through link from email and approver again tries to approve/reject the sales order through will not affect any changes in NetSuite. 

Risk 

  • If the user edits the sales order after approval, the email will not be sent to approver 

Estimated Effort 

Total: 28 Hours   

Leave a comment

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