Grima  2018-08
Whispering into Alma's ear
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Holding Class Reference

class Holding More...

Inheritance diagram for Holding:
AlmaObjectWithMARC AlmaObject

Public Member Functions

 offsetSet ($offset, $value)
 
 offsetGet ($offset)
 
 loadFromAlma ($mms_id, $holding_id)
 populates the record from Alma More...
 
 getMmsIfNeeded ()
 populates the MMS ID if not already known More...
 
 loadFromAlmaX ($holding_id)
 populates the record from Alma - only requires holding_id More...
 
 addToAlmaBib ($mms_id)
 adds a new holding record to the specified bib More...
 
 updateAlma ()
 update holding record in Alma More...
 
 deleteFromAlma ()
 delete the holding record from Alma More...
 
 setCallNumber ($h, $i, $ind1)
 
 moveToBib ($mms_id)
 moves the holding from one bib to another – only for empty holdings! More...
 
 getItems ()
 populate items property with Items objects ## XXX TEST More...
 
 getItemList ()
 populates itemList property from Alma More...
 
 deleteTreeFromAlma ()
 delete the holding and all of its items More...
 
- Public Member Functions inherited from AlmaObjectWithMARC
 appendField ($tag, $ind1, $ind2, $subfields)
 add a field to the MARC record More...
 
 getFields ($tag)
 get fields for the given MARC tag More...
 
 getSubfieldValues ($tag, $code)
 get subfield value More...
 
 deleteField ($tag)
 delete all $tag fields from the MARC record More...
 
 deleteSubfieldMatching ($tag, $code, $regex)
 delete subfields matching a regex More...
 
 replaceOrAddSubfield ($tag, $code, $value)
 replace or add subfield value in marc More...
 
- Public Member Functions inherited from AlmaObject
 __construct ()
 create new blank Alma Object More...
 
 offsetExists ($offset)
 
 offsetGet ($offset)
 
 offsetSet ($offset, $value)
 
 offsetUnset ($offset)
 

Static Public Member Functions

static getMmsFromHoldingID ($holding_id)
 populates the MMS ID More...
 

Public Attributes

 $itemList
 
 $items = array()
 
 $xml
 
 $el_address
 
- Public Attributes inherited from AlmaObject
 $el_access = array()
 
 $xml
 
 $templateDir = __DIR__ . "/templates"
 

Detailed Description

class Holding

Definition at line 2176 of file grima-lib.php.

Member Function Documentation

◆ addToAlmaBib()

Holding::addToAlmaBib (   $mms_id)

adds a new holding record to the specified bib

Parameters
string$mms_idbib record to add the holdings record

Definition at line 2299 of file grima-lib.php.

References $grima.

Referenced by moveToBib().

2299  {
2300  global $grima;
2301  $this->xml = $grima->postHolding($mms_id,$this->xml);
2302  $this['mms_id'] = $mms_id;
2303  }
$grima
Definition: grima-lib.php:1166

◆ deleteFromAlma()

Holding::deleteFromAlma ( )

delete the holding record from Alma

Definition at line 2320 of file grima-lib.php.

References $grima.

Referenced by deleteTreeFromAlma(), and moveToBib().

2320  {
2321  global $grima;
2322  $grima->deleteHolding($this['mms_id'],$this['holding_id']);
2323  }
$grima
Definition: grima-lib.php:1166

◆ deleteTreeFromAlma()

Holding::deleteTreeFromAlma ( )

delete the holding and all of its items

Definition at line 2396 of file grima-lib.php.

References $grima, deleteFromAlma(), and getItemList().

2396  {
2397  global $grima;
2398  $this->getItemList();
2399  foreach ($this->itemList->items as $item) {
2400  $item->deleteFromAlma("true");
2401  }
2402  $this->deleteFromAlma();
2403  }
getItemList()
populates itemList property from Alma
Definition: grima-lib.php:2385
deleteFromAlma()
delete the holding record from Alma
Definition: grima-lib.php:2320
$grima
Definition: grima-lib.php:1166

◆ getItemList()

Holding::getItemList ( )

populates itemList property from Alma

Definition at line 2385 of file grima-lib.php.

References $grima, and getMmsIfNeeded().

Referenced by deleteTreeFromAlma(), and getItems().

2385  {
2386  global $grima;
2387  $this->getMmsIfNeeded();
2388  $this->itemList = new ItemList($this['mms_id'],$this['holding_id']);
2389  }
$grima
Definition: grima-lib.php:1166
getMmsIfNeeded()
populates the MMS ID if not already known
Definition: grima-lib.php:2269
class ItemList
Definition: grima-lib.php:2134

◆ getItems()

Holding::getItems ( )

populate items property with Items objects ## XXX TEST

Definition at line 2375 of file grima-lib.php.

References getItemList().

2375  {
2376  $this->getItemList();
2377  $this->items =& $this->itemList->items;
2378  }
getItemList()
populates itemList property from Alma
Definition: grima-lib.php:2385

◆ getMmsFromHoldingID()

static Holding::getMmsFromHoldingID (   $holding_id)
static

populates the MMS ID

Definition at line 2243 of file grima-lib.php.

References $grima.

Referenced by getMmsIfNeeded(), and loadFromAlmaX().

2243  {
2244  global $grima;
2245 
2246  $report = new AnalyticsReport();
2247  $report->path = "/shared/UK Libraries- University of Kentucky (UKY)/Reports/Kathryn/HoldingToMMS";
2248  $report->filter = '
2249 <sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1"
2250 xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2251 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
2252  <sawx:expr xsi:type="sawx:sqlExpression">"Holding Details"."Holding Id"</sawx:expr><sawx:expr xsi:type="xsd:string">{holding_id}</sawx:expr>
2253 </sawx:expr>';
2254 
2255  $report->runReport(array('holding_id' => $holding_id), 1);
2256  if (count($report->rows) == 1) {
2257  return $report->rows[0][1];
2258  } else {
2259  return null;
2260  }
2261  }
$grima
Definition: grima-lib.php:1166
class AnalyticsReport
Definition: grima-lib.php:3060

◆ getMmsIfNeeded()

Holding::getMmsIfNeeded ( )

populates the MMS ID if not already known

Definition at line 2269 of file grima-lib.php.

References $grima, and getMmsFromHoldingID().

Referenced by getItemList().

2269  {
2270  global $grima;
2271 
2272  if (!isset($this['mms_id']) or (!$this['mms_id'])) {
2273  $this['mms_id'] = Holding::getMmsFromHoldingID($this['holding_id']);
2274  }
2275  }
$grima
Definition: grima-lib.php:1166
static getMmsFromHoldingID($holding_id)
populates the MMS ID
Definition: grima-lib.php:2243

◆ loadFromAlma()

Holding::loadFromAlma (   $mms_id,
  $holding_id 
)

populates the record from Alma

Parameters
$mms_idMMS ID of bib record
$holding_idHolding ID of holding

Definition at line 2231 of file grima-lib.php.

References $grima.

2231  {
2232  global $grima;
2233  $this->xml = $grima->getHolding($mms_id,$holding_id);
2234  $this['mms_id'] = $mms_id;
2235  }
$grima
Definition: grima-lib.php:1166

◆ loadFromAlmaX()

Holding::loadFromAlmaX (   $holding_id)

populates the record from Alma - only requires holding_id

Parameters
$holding_idHolding ID of holding

Definition at line 2284 of file grima-lib.php.

References $grima, and getMmsFromHoldingID().

2284  {
2285  global $grima;
2286 
2287  $mms_id = Holding::getMmsFromHoldingID($holding_id);
2288  $this->xml = $grima->getHolding($mms_id,$holding_id);
2289  $this['mms_id'] = $mms_id;
2290  }
$grima
Definition: grima-lib.php:1166
static getMmsFromHoldingID($holding_id)
populates the MMS ID
Definition: grima-lib.php:2243

◆ moveToBib()

Holding::moveToBib (   $mms_id)

moves the holding from one bib to another – only for empty holdings!

Definition at line 2365 of file grima-lib.php.

References addToAlmaBib(), and deleteFromAlma().

2365  {
2366  $this->deleteFromAlma();
2367  $this->addToAlmaBib($mms_id);
2368  }
addToAlmaBib($mms_id)
adds a new holding record to the specified bib
Definition: grima-lib.php:2299
deleteFromAlma()
delete the holding record from Alma
Definition: grima-lib.php:2320

◆ offsetGet()

Holding::offsetGet (   $offset)

Definition at line 2189 of file grima-lib.php.

References AlmaObjectWithMARC\getSubfieldValues().

2189  { #XXX TEST
2190  if ($offset == "library") {
2191  $lib = new Library();
2192  $lib->loadFromAlma($this['library_code']);
2193  return $lib['name'];
2194  }
2195  if ($offset == "location") {
2196  $loc = new Location();
2197  $loc->loadFromAlma($this['library_code'],$this['location_code']);
2198  return $loc['name'];
2199  }
2200  if ($offset == "call_number") {
2201  $Hs = $this->getSubfieldValues("852","h");
2202  $Is = $this->getSubfieldValues("852","i");
2203  $acc = "";
2204  foreach ($Hs as $h) {
2205  $acc .= "$h ";
2206  }
2207  foreach ($Is as $i) {
2208  $acc .= "$i ";
2209  }
2210  return rtrim($acc);
2211  }
2212  return parent::offsetGet($offset);
2213  }
class Library
Definition: grima-lib.php:3010
getSubfieldValues($tag, $code)
get subfield value
Definition: grima-lib.php:1685
class Location
Definition: grima-lib.php:3036

◆ offsetSet()

Holding::offsetSet (   $offset,
  $value 
)

Definition at line 2181 of file grima-lib.php.

2181  {
2182  if ($offset == "mms_id") {
2183  $this->el_override['mms_id'] = $value;
2184  } else {
2185  parent::offsetSet($offset,$value);
2186  }
2187  }

◆ setCallNumber()

Holding::setCallNumber (   $h,
  $i,
  $ind1 
)

Definition at line 2341 of file grima-lib.php.

References appendInnerXML().

2341  {
2342  $xpath = new DomXpath($this->xml);
2343  $xpath->query("//record/datafield[@tag='852']")->item(0)->setAttribute("ind1",$ind1);
2344 
2345  $field852 = $xpath->query("//record/datafield[@tag='852']")->item(0);
2346  $subfieldHs = $xpath->query("subfield[@code='h']",$field852);
2347  foreach ($subfieldHs as $subfieldH) {
2348  $subfieldH->parentNode->removeChild($subfieldH);
2349  }
2350  $subfieldIs = $xpath->query("subfield[@code='i']",$field852);
2351  foreach ($subfieldIs as $subfieldI) {
2352  $subfieldI->parentNode->removeChild($subfieldI);
2353  }
2354 
2355  appendInnerXML($field852,"<subfield code=\"h\">$h</subfield>");
2356  if ($i) {
2357  appendInnerXML($field852,"<subfield code=\"i\">$i</subfield>");
2358  }
2359  }
appendInnerXML( $elt, $xmlString)
Definition: grima-util.php:20

◆ updateAlma()

Holding::updateAlma ( )

update holding record in Alma

Definition at line 2310 of file grima-lib.php.

References $grima.

2310  {
2311  global $grima;
2312  $grima->putHolding($this['mms_id'],$this['holding_id'],$this->xml);
2313  }
$grima
Definition: grima-lib.php:1166

Member Data Documentation

◆ $el_address

Holding::$el_address
Initial value:
= array(
'holding_id' => '//holding_id',
'inst_code' => "/holding/record/datafield[@tag='852']/subfield[@code='a']",
'library_code' => "/holding/record/datafield[@tag='852']/subfield[@code='b']",
'location_code' => "/holding/record/datafield[@tag='852']/subfield[@code='c']",
)

Definition at line 2216 of file grima-lib.php.

◆ $itemList

Holding::$itemList

Definition at line 2177 of file grima-lib.php.

◆ $items

Holding::$items = array()

Definition at line 2178 of file grima-lib.php.

◆ $xml

Holding::$xml

Definition at line 2179 of file grima-lib.php.


The documentation for this class was generated from the following file: