Skip to content

Instantly share code, notes, and snippets.

@23maverick23
23maverick23 / array_object_sort.js
Created February 16, 2014 16:39
JavaScript: Array sort using object key:values
[
{ name: "Robin", age: 30 },
{ name: "Theo", age: 24 },
{ name: "Bacary", age: 28 }
].sort(function(obj1, obj2) {
// Ascending: first age less than the previous
return obj1.age - obj2.age;
});
// Returns:
@23maverick23
23maverick23 / updateProjectBudgetHours.js
Created February 20, 2014 23:38
NSOA: Update project.budget_time using budget transactions
/**
* Update the project total budget hours using
* the hours field on project budget transactions.
*
* Version Date Author Remarks
* 1.00 20 Feb 2014 Ryan Morrissey
*
*/
function updateProjectBudgetHours(type) {
@23maverick23
23maverick23 / validateURL.js
Created February 20, 2014 23:42
NSOA: Perform a simple URL validation on a custom field
/**
* Simple url validation for custom field.
*
* Version Date Author Remarks
* 1.00 20 Feb 2014 Ryan Morrissey
*
*/
function validateURL() {
var url = NSOA.form.getValue('custom_30'),
re = /^(ftp|http|https):\/\/[^ "]+$/,
@23maverick23
23maverick23 / createChangeOrderIssue.js
Created February 21, 2014 03:00
NSOA: Create issue from change order task
/**
* Create a project issue for a change order task if one
* isn't already created.
*
* Version Date Author Remarks
* 1.00 20 Feb 2014 Ryan Morrissey
*
*/
function createChangeOrderIssue(type) {
@23maverick23
23maverick23 / autoAppendNotes.js
Created March 14, 2014 02:49
NSOA: Append note to notes field
/**
* Copyright NetSuite, Inc. 2014 All rights reserved.
* The following code is a demo prototype. Due to time constraints of a demo,
* the code may contain bugs, may not accurately reflect user requirements
* and may not be the best approach. Actual implementation should not reuse
* this code without due verification.
*
* This script uses a custom field to append notes to the standard
* notes field on a record. It can be reused for multiple complex
* record types by modifying the variables at the start of the function.
@23maverick23
23maverick23 / task_status_icon.sql
Created March 20, 2014 19:49
NS: Project task overview status icon
/*
GREEN:WorkComplete=100||Status=Completed
BLUE:WorkComplete<>100;EndDate>today
ORANGE:WorkComplete<>100;EndDate=today
RED:WorkComplete<>100;EndDate<today
@green:#afc437;
@blue:#428bca;
@orange:#f89406;
@red:#bf340f;
@23maverick23
23maverick23 / milestone_status_icon.sql
Created March 20, 2014 19:51
NS: Milestone status icon
/*
GREEN:WorkComplete=100||Status=Completed
BLUE:WorkComplete<>100;StartDate>today
ORANGE:WorkComplete<>100;StartDate=today
RED:WorkComplete<>100;StartDate<today
@green:#afc437;
@blue:#428bca;
@orange:#f89406;
@red:#bf340f;
@23maverick23
23maverick23 / project_percent_time_complete.sql
Created March 20, 2014 20:01
NS: Project percent time complete
'<style>.progress{overflow:hidden;height:18px;background-color:#ccc;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);}.progress-bar{float:left;width:0;height:100%;font-size:11px;line-height:18px;color:#fff;text-align:center;background-color:#428bca;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease;-moz-transition:width .6s ease;}</style><div class="progress">' || '<div class="progress-bar" style="width:' || CASE WHEN ROUND({percenttimecomplete}*100, 1) >= 100.0 THEN 100 ELSE ROUND({percenttimecomplete}*100, 1) END || '%;"> ' || ROUND({percenttimecomplete}*100, 1) || '%</div></div>'
@23maverick23
23maverick23 / task_percent_work_complete.sql
Created March 20, 2014 20:01
NS: Task percent work complete
'<style>.progress{overflow:hidden;height:18px;background-color:#ccc;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);}.progress-bar{float:left;width:0;height:100%;font-size:11px;line-height:18px;color:#fff;text-align:center;background-color:#428bca;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease;-moz-transition:width .6s ease;}</style><div class="progress">' || '<div class="progress-bar" style="width:' || ROUND({percentworkcomplete}*100, 1) || '%;"> ' || ROUND({percentworkcomplete}*100, 1) || '%</div></div>'
@23maverick23
23maverick23 / project_task_duration.sql
Created May 1, 2014 15:19
NS: Project task duration
(TO_CHAR({enddate},'J') - TO_CHAR({startdate},'J'))+1 - ((((TRUNC({enddate},'D'))-(TRUNC({startdate},'D')))/7)*2) - (CASE WHEN TO_CHAR({startdate},'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END) - (CASE WHEN TO_CHAR({enddate},'DY','nls_date_language=english')='SAT' THEN 1 ELSE 0 END)