Standing
Datatables
by Alex Yhap
HTML
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css">
<apex:page id="StandingOrdersPage" controller="StandingOrdersController" sidebar="false" doctype="html-5.0">
<head>
<title>Standing Orders</title>
<!-- jQuery -->
<apex:includescript value="//code.jquery.com/jquery-1.12.0.min.js" / >
<!-- DataTables -->
<apex:includescript value="//cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js" />
<apex:stylesheet value="//cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css" />
<!-- Table Tools -->
<apex:includescript value="//datatables.net/release-datatables/extensions/TableTools/js/dataTables.tableTools.js" />
<apex:stylesheet value="//datatables.net/release-datatables/extensions/TableTools/css/dataTables.tableTools.css" />
<!-- DataTables Select -->
<!-- https://datatables.net/extensions/select/examples/ -->
<apex:includescript value="//cdn.datatables.net/select/1.1.2/js/dataTables.select.min.js" />
<apex:stylesheet value="//cdn.datatables.net/select/1.1.2/css/select.dataTables.min.css" />
<!-- DataTables Select -->
<apex:includescript value="//cdn.datatables.net/buttons/1.1.2/js/dataTables.buttons.min.js" />
<apex:stylesheet value="//cdn.datatables.net/buttons/1.1.2/css/buttons.dataTables.min.css" />
<!-- Fixed Header -->
<apex:includescript value="//cdn.datatables.net/fixedheader/3.1.1/js/dataTables.fixedHeader.min.js" />
<apex:stylesheet value="//cdn.datatables.net/fixedheader/3.1.1/css/fixedHeader.dataTables.min.css" />
<!-- SweetAlert 2 -->
<apex:includescript value="//cdn.jsdelivr.net/sweetalert2/3.0.1/sweetalert2.min.js" />
<apex:stylesheet...
JavaScript
public class StandingOrdersController {
//http://blog.jeffdouglas.com/2011/03/02/dynamically-group-display-query-results/
//http://bobbuzzard.blogspot.ca/2011/06/grouping-records-and-children-in.html
Public List<selectoption> RecurringOptions {get;set;}
Public String RecurringType {get;set;}
Public Date PaymentDate {get;set;}
Public List<Gift__c> giftList {get;set;}
Public List<Payment__c> paymentList {get;set;}
Public List<TransactionObj> TransactionObjList
{get{
if ( TransactionObjList == null ){
TransactionObjList = new List<TransactionObj>();
for (Gift__c g:giftList){TransactionObjList.add( new TransactionObj( g ) );}
}
return TransactionObjList;
}
private set;
}
Public StandingOrdersController(){
init();
}
Private void init(){
RecurringOptions = initializeRecurringOptions();
RecurringType = 'Monthly'; //Set Default Value
searchTransaction();
}
Public void searchTransaction(){
giftList = new List<Gift__c>();
giftList = [SELECT ID, Name, Recurring_Donation__c, Recurring_Donation__r.Name, Recurring_Frequency__c, Constituent__c, Constituent__r.Name, Gift_Type__c, causeview__Expected_Amount__c
FROM Gift__c
WHERE Recurring_Frequency__c =:RecurringType
ORDER BY CreatedDate DESC];
TransactionObjList = null;
System.debug('After: '+giftList);
System.debug('RecurringType: '+RecurringType);
}
Public void createPayments(){
paymentList = new List<Payment__c>();
Id standardPaymentRecordTypeId =[SELECT Id FROM RecordType WHERE Name ='Standard' AND SobjectType ='causeview__Payment__c' Limit 1].Id;
for(Gift__c t:giftList)
{
System.debug(t);
Payment__c payment = new causeview__Payment__c();
...