function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
TaskTask 

problem with trigger while trying to update record

Bid__c Object record values does not getting updated when I exectute this trigger. But I didn't receive any error in this trigger. The Bid__c object values alone not getting updated

 

trigger UpdateRFQBid on RFQ__c (after update)
{
  List<Bid__c> lstBid = new List<Bid__c>();
   for(RFQ__c r : Trigger.new)
  {
   if(r.Mode_s__c != null)
    {
      // split out the multi-select picklist using the semicolon delimiter
     for(String modes: r.Mode_s__c.split(';'))
    {
        if (modes == 'Private Fleet' && r.Bid_Private_Fleet__c == true)
        {
          // Check for EXISTING Record:
          Bid__c[] Old_Bid =
          [ SELECT Id FROM Bid__c WHERE Modes__c='Private Fleet' AND RFQ__c=:r.id];
          System.debug('Old_Bid.Size()=' + Old_Bid.Size());
          if(Old_Bid.Size()==0) // If NONE then Add
          {
             {
                Bid__c b               = new Bid__c();
                b.RFQ__C               = r.id;
                b.RecordTypeId         = '012Z00000004XEsIAM';
                b.Modes__c             = 'Private Fleet';
                b.Apex_trigger__c      = true;
                lstBid.add(b);
             }
          }     
         }
       
       {
        if (modes == 'Dry Van')
        {
         // Check for EXISTING Record:
          Bid__c[] Old_Bid =
          [ SELECT Id FROM Bid__c WHERE Modes__c='Dry Van' AND RFQ__c=:r.id];
          System.debug('Old_Bid.Size()=' + Old_Bid.Size());
          if(Old_Bid.Size()==0) // If NONE then Add
         {
            Bid__c b               = new Bid__c();
            b.RFQ__C               = r.id;
            b.RecordTypeId         = '012Z00000004XExIAM';
            b.Modes__c             = 'Dry Van';
            b.Apex_trigger__c      = true;
            lstBid.add(b);
          }
        }
       }
       
       {
          if (modes == 'Flatbed')
        {
          // Check for EXISTING Record:
           system.debug('&&&&&&');
          Bid__c[] Old_Bid =
          [ SELECT Id FROM Bid__c WHERE Modes__c='Flatbed' AND RFQ__c=:r.id];
          System.debug('Old_Bid.Size()=' + Old_Bid.Size());
          if(Old_Bid.Size()==0) // If NONE then Add
          {
            Bid__c b               = new Bid__c();
            b.RFQ__C               = r.id;
            b.RecordTypeId         = '012Z00000004XFqIAM';
            b.Modes__c             = 'Flatbed';
            b.Apex_trigger__c      = true;
            lstBid.add(b);
          }
          }
       }
       
       {
          if (modes == 'IMDL')
        {
          // Check for EXISTING Record:
          Bid__c[] Old_Bid =
          [ SELECT Id FROM Bid__c WHERE Modes__c='IMDL' AND RFQ__c=:r.id];
          System.debug('Old_Bid.Size()=' + Old_Bid.Size());
          if(Old_Bid.Size()==0) // If NONE then Add
          {
            Bid__c b               = new Bid__c();
            b.RFQ__C               = r.id;
            b.RecordTypeId         = '012Z00000004XG5IAM';
            b.Modes__c             = 'IMDL';
            b.Apex_trigger__c      = true;
            lstBid.add(b);
          }
          }
       }
       
       {
         if (modes == 'LTL')
        {
          // Check for EXISTING Record:
          Bid__c[] Old_Bid =
          [ SELECT Id FROM Bid__c WHERE Modes__c='LTL' AND RFQ__c=:r.id];
          System.debug('Old_Bid.Size()=' + Old_Bid.Size());
          if(Old_Bid.Size()==0) // If NONE then Add
          {
            Bid__c b               = new Bid__c();
            b.RFQ__C               = r.id;
            b.RecordTypeId         = '012Z00000004XG0IAM';
            b.Modes__c             = 'LTL';
            b.Apex_trigger__c      = true;
            lstBid.add(b);
          }
        }
        }
        
       {
         if (modes == 'Reefer')
        {
          // Check for EXISTING Record:
          Bid__c[] Old_Bid =
          [ SELECT Id FROM Bid__c WHERE Modes__c='Reefer' AND RFQ__c=:r.id];
          System.debug('Old_Bid.Size()=' + Old_Bid.Size());
          if(Old_Bid.Size()==0) // If NONE then Add
          {
            Bid__c b               = new Bid__c();
            b.RFQ__C               = r.id;
            b.RecordTypeId         = '012Z00000004XFlIAM';
            b.Modes__c             = 'Reefer';
            b.Apex_trigger__c      = true;
            lstBid.add(b);
          }
        }
        }
       
      {
         if (modes == 'RFI')
        {
          // Check for EXISTING Record:
          Bid__c[] Old_Bid =
          [ SELECT Id FROM Bid__c WHERE Modes__c='RFI' AND RFQ__c=:r.id];
          System.debug('Old_Bid.Size()=' + Old_Bid.Size());
          if(Old_Bid.Size()==0) // If NONE then Add
          {
            Bid__c b               = new Bid__c();
            b.RFQ__C               = r.id;
            b.RecordTypeId         = '012Z00000004XFvIAM';
            b.Modes__c             = 'RFI';
            b.Apex_trigger__c      = true;
            lstBid.add(b);
          }
        }
      }
     }
   }
    }
   upsert lstBid;
 }

dhelmerdhelmer
What tests do you have written for this code?

Also why don't you break this down into smaller chunks. And try to make this query once instead of for each mode:
[ SELECT Id FROM Bid__c WHERE Modes__c='RFI' AND RFQ__c=:r.id];