• Pratyush Anand
  • NEWBIE
  • -1 Points
  • Member since 2015

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 1
    Replies

There is a reservation that has a speaker and his collaborators. a collaborator can not be speaker in another reservation while he is teaching at the same time.

The purpose is to block the enrollment of the collaborator if he or she is already a speaker in another reservation with the same time and date.


For that I created a triger. The problem is that he does not point out any mistakes but it does not work.



-------------------------------------------------------------------------------------

trigger RegraDeInscricao on Contactos_inscritos__c (before insert) {

    
    
    List<Reserva__c> lista=new List<Reserva__c>([Select ID,Data_de_terminio__c,Data_de_inicio__c,sala__c,Orador__c from Reserva__c LIMIT 25000]);
    List<Contactos_inscritos__c> lista2=new List<Contactos_inscritos__c>([Select ID,Colaborador__c, Reserva__c, Reserva__r.Data_De_Inicio__c, Reserva__r.Data_De_terminio__c,Reserva__r.Orador__c from Contactos_inscritos__c WHERE Reserva__c IN :lista LIMIT 25000]);
    
    for(Contactos_inscritos__c a:Trigger.new){

        
        for(Contactos_inscritos__c CI : lista2){
           
            
             if( a.Colaborador__c == CI.reserva__r.Orador__c && a.reserva__r.Data_de_inicio__c >= CI.reserva__r.Data_De_Inicio__c &&

               a.reserva__r.Data_de_terminio__c <= CI.reserva__r.Data_de_terminio__c) {

                a.adderror('Error the COLABORADOR__C is already a ORADOR__C at this time.');

            }

             

            if( a.Colaborador__c == CI.reserva__r.Orador__c && a.reserva__r.Data_de_inicio__c <=CI.reserva__r.Data_De_Inicio__c &&

               a.reserva__r.Data_de_terminio__c <= CI.reserva__r.Data_de_terminio__c && a.reserva__r.Data_de_terminio__c >= CI.reserva__r.Data_De_Inicio__c ) {

                a.adderror('Error the COLABORADOR__C is already a ORADOR__C at this time.');

            }

 

            if( a.Colaborador__c == CI.reserva__r.Orador__c && a.reserva__r.Data_de_inicio__c >= CI.reserva__r.Data_De_Inicio__c &&

               a.reserva__r.Data_de_terminio__c >= CI.reserva__r.Data_de_terminio__c && a.reserva__r.Data_de_inicio__c <= CI.reserva__r.Data_de_terminio__c) {

                a.adderror('Error the COLABORADOR__C is already a ORADOR__C at this time.');

            }

            

            if(a.Colaborador__c == CI.reserva__r.Orador__c && a.reserva__r.Data_de_inicio__c <= CI.reserva__r.Data_De_Inicio__c &&

              a.reserva__r.Data_de_terminio__c >= CI.reserva__r.Data_de_terminio__c ) {

                a.adderror('Error the COLABORADOR__C is already a ORADOR__C at this time.');

                            

            }
            
        }
        
        

    }


}

-----------------------------------------------------------------------------------------