You are here

function commerce_pricelist_form_commerce_product_ui_product_form_alter in Commerce Pricelist 7

Add price list fieldgroup to product form. Implements hook_form_BASE_FORM_ID_alter().

File

./commerce_pricelist.module, line 604
Implements the basic functionality required for price lists

Code

function commerce_pricelist_form_commerce_product_ui_product_form_alter(&$form, &$form_state, $form_id) {
  if (user_access('view any commerce_pricelist_list entity') && ($sku = $form['sku']['#default_value'])) {
    module_load_include('inc', 'commerce_pricelist', 'includes/commerce_pricelist.admin');
    $pricelists = commerce_pricelist_list_load_multiple();
    $prices = array();
    foreach ($pricelists as $pricelist) {
      $table = commerce_pricelist_item_list_entities($pricelist->list_id, $sku);
      if (isset($table['entity_table'])) {
        $table['entity_table']['#prefix'] = check_plain($pricelist->title);
        $prices[$pricelist->list_id] = $table;
      }
    }
    $prices['actions'] = array(
      '#type' => 'container',
      '#attributes' => array(
        'class' => array(
          'form-actions',
          'container-inline',
        ),
      ),
      '#weight' => 100,
    );
    $options = array(
      'attributes' => array(
        'class' => array(
          'button',
        ),
      ),
    );
    $prices['actions']['administer'] = array(
      '#type' => 'item',
      '#markup' => l(t('Administer price lists'), 'admin/commerce/pricelist/commerce_pricelist_list', $options),
      '#weight' => 50,
    );
    $product = $form['#entity'];
    $product_id = $product->product_id;
    if ($product_id) {
      $prices['actions']['add'] = array(
        '#type' => 'item',
        '#markup' => l(t('Add price'), 'admin/commerce/products/' . $product_id . '/add_price', $options + array(
          'query' => array(
            'destination' => current_path(),
          ),
        )),
        '#weight' => 49,
      );
    }
    $form['commerce_pricelists'] = array(
      '#type' => 'fieldset',
      '#title' => t('Price lists'),
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      '#weight' => 100,
      'prices' => $prices,
    );
  }
}