You are here

function commerce_billy_admin_form_submit in Commerce Billy 7

Submit handler for Commerce Billy admin form.

File

./commerce_billy.admin.inc, line 120
Settings for Commerce Billy.

Code

function commerce_billy_admin_form_submit($form, &$form_state) {
  form_state_values_clean($form_state);

  // Prepare confirmation form for invoice number override.
  if (isset($form_state['values']['commerce_billy_invoice_nr_method'])) {
    $override = $form_state['values']['commerce_billy_invoice_nr_override'];
    $last_number = commerce_billy_query_variable('commerce_billy_invoice_nr_last');
    $last_number['id'] = isset($last_number['id']) ? $last_number['id'] : 0;
    if ($override && $override != $last_number['id'] && $override > $last_number['id']) {
      $form_state['rebuild'] = TRUE;
      $form_state['confirm_nr_change'] = TRUE;
    }
  }
  elseif (isset($form_state['values']['nr_override']) && isset($form_state['values']['confirm']) && !empty($form_state['values']['confirm'])) {
    $last_number = commerce_billy_query_variable('commerce_billy_invoice_nr_last');
    $last_number['id'] = $form_state['values']['nr_override'];
    variable_set('commerce_billy_invoice_nr_last', $last_number);
    drupal_set_message('Your invoice number has successfully been overridden.');
    return;
  }

  // Save all relevant settings.
  foreach ($form_state['values'] as $key => $value) {
    if ($key != 'commerce_billy_invoice_nr_override') {
      variable_set($key, $value);
    }
  }
  if (!isset($form_state['confirm_nr_change'])) {

    // No number override, default success message.
    drupal_set_message(t('The configuration options for Commerce Billy have been saved.'));
  }
  else {

    // Number override -> confirm form.
    drupal_set_message(t('Basic configuration options for Commerce Billy have been saved. Change of invoice number requires confirmation.'));
  }
}