Conga Product Documentation

Welcome to the new doc site. Some of your old bookmarks will no longer work. Please use the search bar to find your desired topic.

Unpost From Accounts Payable Line

crmc.require(['sfdc', 'KendoPopup'], function (sfdc, popup) {
 crmc.addCustomAction({
 "itemID": "UnPost_AP_Batch_From_Account_Payable_Line",
 "isAvailable": function (context) {
 // This function is called before the action item is displayed and returns a boolean if the item should be displayed
 // By default determine availability based on Feature Security for this action
 var isEnabled = this.featureSecurity.getSetting(context.objectDescribe.name, this.itemID) !== false;
 // Only allow batch adding from Accounts object for now
 var isVisible = context.objectDescribe.name == ("AcctSeed__Account_Payable_Line__c");
 var multipleSelected = context.selectedRows && context.selectedRows.length > 0;
 return isVisible && isEnabled && multipleSelected;
 },
 "getLabel": function (context) {
 // This function returns the display label of the action item and is called before the item is shown
 return "UnPost Accounts Payable";
 },
 "createSubmenuItems": function (context) {
 // If this function returns additional action item objects, they will appear as submenu items
 return [];
 },
 "click": function (context) {
 //https://acctseed.cs7.visual.force.com/apex/AccountPayablePayBatch?retURL=%2Fa0H%3Ffcf%3D00BF0000006rihU%26rolodexIndex%3D-1%26page%3D1&wrapMassAction=1&scontrolCaching=1
 // Include static resource from managed namespace pre-creates session and allows us to safely POST data without redirect issue
 var head = document.getElementsByTagName('HEAD').item(0);
 var script = document.createElement("script");
 script.type = "text/javascript";
 head.appendChild(script);
 var domains = window.location.hostname.split(".");
 if (domains.length == 3) {
 instance = domains[0];
 }
 else {
 instance = domains[1];
 }
 script.src = "https://AcctSeed." + instance + ".visual.force.com/resource/AcctSeed__ButtonJSFunctions?ts=" + new Date().getTime();
 script.onerror = function() {
 // Couldn't load app script, assume not installed
 popup.popup("Could not obtain session for Accounting Seed Financial Suite is the app installed?");
 };
 script.onload = function() {
 if (context.selectedRows.length > 0) {
 var selectedIds = [];
 Object.each(context.selectedRows, function (item) {
 var id = item["AcctSeed__Account_Payable__c"];
 if(id === undefined || id === null){
 //Do nothing if empty.
 } else if(!checkIds(id, selectedIds)){
 selectedIds.push({name: "ids", value: id}); 
 }
 });

 if(selectedIds.length > 0) {
 var parameters = {
 retURL: context.actionGrid.settings.pageURL,
 };
 sfdc.postToVFPage("acctseed", "AccountPayableBatchUnpost", parameters, selectedIds);
 } else {
 popup.popup('No IDs to POST', 'Make sure that Accounts Payable is loaded on the grid and that the fields are not empty');
 }
 }
 else {
 popup.popup('Please select records', 'Select at least one record to add to a post to accounts payable.');
 }
 };

 //Does the ID already exist within the array?
 function checkIds(id, arr){
 for (var i = 0; i < arr.length; i++) {
 if(arr[i].value === id){
 return true;
 }
 };
 return false;
 }
 }
 });
});