timing within a loop

hope this is beter

const int heatbutton     = 2 ;
const int ignition_fan_2 = 10;
const int saleswitch     = 4 ;
const int solenoid       = 12;
const int photo_pressure = 3 ;
const int lockoutled     = 8 ;
const int heatbutton_feed= 5 ;
const int fan            = 9 ;
const int relay230_24    = 11;
const int ionisation_in  = 7 ;
int ionisation     = 5 ;   

void setup()
{
  pinMode(heatbutton,       INPUT );    
  pinMode(ignition_fan_2,   OUTPUT);
  pinMode(saleswitch,       INPUT );
  pinMode(solenoid,         OUTPUT);
  pinMode(photo_pressure,   INPUT );
  pinMode(lockoutled,       OUTPUT);
  pinMode(heatbutton_feed,  OUTPUT);
  pinMode(fan,              OUTPUT);
  pinMode(relay230_24,      OUTPUT);
  pinMode(ionisation_in,    INPUT );
  //------------------------------------------- 
  digitalWrite(heatbutton_feed, HIGH);
}

void loop() {
  int val = analogRead(ionisation);
  //--------------------------------------------------------------------

  if (digitalRead(heatbutton)==        HIGH) {
    //                                                  ** from here need's to just run once **

    if (digitalRead(ionisation_in)==   HIGH) {       // if ionisation swith HIGH 
      if (val >900)  {
        digitalWrite(solenoid,              LOW);                                       
        digitalWrite(lockoutled,            HIGH); 
        digitalWrite(heatbutton_feed,       LOW); 
      } 
    }   
    else {
      if (digitalRead(photo_pressure)==     HIGH) {         // if photo swith HIGH 
        digitalWrite(lockoutled,            HIGH);                                        
        digitalWrite(solenoid,              LOW); 
        digitalWrite(heatbutton_feed,       LOW); 
      } 
    } 
    digitalWrite(relay230_24,            HIGH);        // 230V out put to ignition
    digitalWrite(fan,                    HIGH); 
    digitalWrite(ignition_fan_2,         HIGH); 
    delay(2000);        
    //                                                           ** to this point **

    //---------------------------------------------------------------------
    if (digitalRead(saleswitch)==HIGH) {           // sale switch if HIGH
      digitalWrite(solenoid,     HIGH); 
    }
    //---------------------------------------------------------------------
    else {                                            // sale switch if LOW
      digitalWrite(lockoutled,      HIGH); 
      digitalWrite(ignition_fan_2,  LOW);
      digitalWrite(solenoid,        LOW);
      digitalWrite(fan,             LOW); 
      digitalWrite(heatbutton_feed, LOW);
    }
    //---------------------------------------------------------------------
    delay(2000);
    if (digitalRead(ionisation_in)== HIGH) {
      if (val >900)                         {            // ionisation if LOW
        digitalWrite(solenoid,        LOW);
        digitalWrite(ignition_fan_2,  LOW);
        digitalWrite(lockoutled,      HIGH); 
        digitalWrite(heatbutton_feed, LOW);
        digitalWrite(heatbutton_feed, LOW);
      } 
    }

    if (digitalRead(photo_pressure)==LOW)  {          // photo if LOW
      digitalWrite(solenoid,         LOW);
      digitalWrite(ignition_fan_2,   LOW);
      digitalWrite(lockoutled,       HIGH); 
      digitalWrite(heatbutton_feed,  LOW);
    }
    //---------------------------------------------------------------------
    else {
      digitalWrite(ignition_fan_2, LOW); 
    }
    //---------------------------------------------------------------------
  }
  else {                                          // switching off
    digitalWrite(solenoid,       LOW);
    digitalWrite(ignition_fan_2, LOW);
    digitalWrite(relay230_24,    LOW);
    delay(30000);
    digitalWrite(fan,            LOW); 
  }
  //---------------------------------------------------------------------

}