Sunday 30 October 2011

Salesforce DEV 401 Preparation - Day 1

I start with building accounting application without coding.

1. Chart of Accounts
Create forms for adding/editing chart of accounts.

Create Account object with following fields:
+ Code: Text(20)
+ Name: Text(80)
+ Kind: Picklist(Assets, Liabilities, Owner's Equity, Operating Revenues, Operating Expenses, 
Non-operating Revenues and Gains, Non-operating Expenses and Losses)

Use data loader to insert data: http://www.megaupload.com/?d=MXVL8LB1

2. Transactions
Create forms which record transactions.

Create Period object:
+ Name: Text(80)
+ Start: Date
+ End: Date
+ Previous: Lookup(Period)

Create Journal object:
+ Name: Text(80)
+ Account: Lookup(Account)
+ Period: Lookup(Period)
+ Credit: Roll-Up Summary(Sum Transaction.Credit)
+ Debit: Roll-Up Summary(Sum Transaction.Debit)
+ Amount: Formula(Credit - Debit)

Create Transaction object:
+ Name: Text(80)
+ Date: Date
+ No.: Number
+ Journal: Master-Detail(Journal)
+ Credit: Currency
+ Debit: Currency
+ Amount: Currency

Create workflow rules that update fields: 
+ Journal.Name = Journal.Period.Name & Journal.Account.Name
+ Transaction.Credit = IF( ISPICKVAL( Journal__r.Account__r.Kind__c , "Operating Revenues" ) ||  ISPICKVAL( Journal__r.Account__r.Kind__c , "Non-operating Revenues and Gains" ), ABS( Amount__c ) , IF( ISPICKVAL( Journal__r.Account__r.Kind__c , "Assets" ) && Amount__c < 0, ABS( Amount__c ) ,  IF( (ISPICKVAL( Journal__r.Account__r.Kind__c , "Liabilities" ) || ISPICKVAL( Journal__r.Account__r.Kind__c , "Owner's Equity" ) ) && Amount__c > 0 , ABS( Amount__c ) , 0  )  ) )
+ Transaction.Debit = IF( ISPICKVAL( Journal__r.Account__r.Kind__c , "Operating Expenses" ) ||  ISPICKVAL( Journal__r.Account__r.Kind__c , "Non-operating Expenses and Losses" ), ABS( Amount__c ) , IF( ISPICKVAL( Journal__r.Account__r.Kind__c , "Assets" ) && Amount__c > 0, ABS( Amount__c ) ,  IF( (ISPICKVAL( Journal__r.Account__r.Kind__c , "Liabilities" ) || ISPICKVAL( Journal__r.Account__r.Kind__c , "Owner's Equity" ) ) && Amount__c < 0 , ABS( Amount__c ) , 0  )  ) )

No comments:

Post a Comment