You are here

function farm_quantity_log_delete_measurement_by_label in farmOS 7

Helper function for deleting a quantity measurement from a log, based on its label.

Parameters

\Log $log: A log entity.

string $label: The label of the quantity measurement that should be deleted.

File

modules/farm/farm_quantity/farm_quantity_log/farm_quantity_log.module, line 503
Farm quantity log module.

Code

function farm_quantity_log_delete_measurement_by_label($log, $label) {

  // Load the log entity metadata wrapper.
  $log_wrapper = entity_metadata_wrapper('log', $log);

  // If there are no quantities, bail.
  if (empty($log_wrapper->field_farm_quantity)) {
    return;
  }

  // Iterate over the quantities.
  foreach ($log_wrapper->field_farm_quantity as $key => $quantity) {

    // If the label matches, delete it.
    if ($quantity->field_farm_quantity_label
      ->value() == $label) {
      entity_delete('field_collection_item', $quantity->item_id
        ->value());
      unset($log->field_farm_quantity[LANGUAGE_NONE][$key]);
      log_save($log);
    }
  }
}