Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trigger PopulateAccount on Account (before insert, before update) {
- if(Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)){
- //Find Ownership according to the Salesperson_Code__c
- Set<Integer> SAPID = new set<Integer>();
- Set<String> SAPIDOwner = new set<String>();
- Map<Integer,User> userIdObj = new map<Integer,User>();
- Map<String,User> ownerIdObj = new map<String,User>();
- if (trigger.isBefore && trigger.isUpdate){
- for (Account acc:trigger.New){
- if((trigger.oldMap.get(acc.Id).ownerId != trigger.newMap.get(acc.Id).ownerId) && (acc.ownerId != null)){
- SAPIDOwner.add(acc.ownerId);
- } else {
- if(acc.Salesperson_Code__c != null){
- SAPID.add(acc.Salesperson_Code__c.intValue());
- }
- }
- }
- }else{
- for(Account acc:trigger.New){
- if(acc.Salesperson_Code__c == null){
- SAPIDOwner.add(acc.ownerId);//Admin?
- }else{
- if(acc.Salesperson_Code__c != null){
- SAPID.add(acc.Salesperson_Code__c.intValue());
- }
- }
- }
- }
- if(SAPID.size() > 0){
- for (User userSAP : [SELECT Id,Salesperson_Code__c FROM user WHERE Salesperson_Code__c =:SAPID]){
- userIdObj.put(userSAP.Salesperson_Code__c.intValue(),userSAP);
- }
- }
- if(SAPIDOwner.size() > 0){
- for (User ownerObj: [SELECT Id,Salesperson_Code__c FROM user WHERE Id =:SAPIDOwner]){
- ownerIdObj.put(ownerObj.Id,ownerObj);
- }
- if(ownerIdObj.size()>0){
- for(Account acc1:trigger.New){
- acc1.Salesperson_Code__c = ownerIdObj.get(acc1.ownerID).Salesperson_Code__c;
- }
- }
- }else{
- if(userIdObj.size() > 0){
- for(Account acc1:trigger.New){
- if(acc1.Salesperson_Code__c != null){
- if(userIdObj.get(acc1.Salesperson_Code__c.intValue()) != null){
- acc1.ownerID = userIdObj.get(acc1.Salesperson_Code__c.intValue()).Id;
- }
- }
- }
- }else{
- List<User> users = [SELECT Id,username FROM user];
- User SAPIntegration = new User();
- for (User SAP:users){
- if (SAP.username == 'admin@company.com'){
- SAPIntegration = SAP; break;
- }
- }
- if(SAPIntegration.username == 'manuele@aircobrands.com.au'){
- for (Account acc1:trigger.New){
- acc1.ownerId = SAPIntegration.Id;
- }
- }
- }
- }
- }
- //END Find Ownership according to the Salesperson_Code__c
- }//END of trigger
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement