Author: mcantelon
Date: Wed Jan 18 15:37:45 2012
New Revision: 10717

Log:
Added import handling for the 17 received extent units-related fields.

Modified:
   trunk/lib/task/import/csvAccessionImportTask.class.php

Modified: trunk/lib/task/import/csvAccessionImportTask.class.php
==============================================================================
--- trunk/lib/task/import/csvAccessionImportTask.class.php      Wed Jan 18 
13:23:46 2012        (r10716)
+++ trunk/lib/task/import/csvAccessionImportTask.class.php      Wed Jan 18 
15:37:45 2012        (r10717)
@@ -119,7 +119,7 @@
       {
         $accessionNumber =  $self->rowStatusVars['ACCESSION NUMBER'];
 
-        // look up Qubit ID of accession using keymap
+        // look up Qubit ID of pre-created accession
         $statement = $self->sqlQuery(
           "SELECT id FROM accession WHERE identifier=?",
           $params = array($accessionNumber)
@@ -140,6 +140,13 @@
       /* import logic to execute before saving accession */
       'preSaveLogic' => function(&$self)
       {
+        if ($self->object)
+        {
+          if (isset($self->rowStatusVars['extents']))
+          {
+            $self->object->receivedExtentUnits = 
$self->rowStatusVars['extents'];
+          }
+        }
       },
 
       /* import logic to save accession */
@@ -153,50 +160,104 @@
       }
     ));
 
-    $import->addColumnHandler('ACQUISITION METHOD', function(&$self, $data)
+    $this->setUpExtentColumnHandling($import);
+
+    $import->addColumnHandler('TYPE', function(&$self, $data)
     {
       if ($data)
       {
         $cvaToQubit = array(
-          'Copy Loan'          => 'Deposit', // is this correct?
-          'Donation'           => 'Gift',
-          'Direct Transfer'    => 'Transfer',
-          'Scheduled Transfer' => 'Transfer'
+          'Private records' => 'Private transfer',
+          'Public records'  => 'Public transfer'
         );
 
         if (isset($self->object) && is_object($self->object))
         {
           $self->object->resourceTypeId = $self->translateNameToTermId(
-            'acquisition type',
+            'transfer type',
             $data,
             $cvaToQubit,
-            $self->getStatus('acquisitionTypes')
+            $self->getStatus('resourceTypes')
           );
         }
       }
     });
 
-    $import->addColumnHandler('TYPE', function(&$self, $data)
+    $import->csv($fh, $skipRows);
+  }
+
+  protected function setUpExtentColumnHandling(&$import)
+  {
+    // map of extent-related column names to their corresponding prefixes
+    $extentColumnsAndPrefixes = array(
+      'INARCHITECTURALPLAN' => "Plans (count): ",
+      'INAUDIOCASSETTE'     => "Audio Cassettes (count): ",
+      'INAUDIOREEL'         => "Audio Reels (count): ",
+      'INCOMPACTDISC'       => "CDs (count): ",
+      'INDIGITALPHOTO'      => "Digital Photos (count): ",
+      'INDOCUMENTARYART'    => "Doc Art (count): ",
+      'INDVD'               => "DVDs (count): ",
+      'INFILMREEL'          => "Film Reels (count): ",
+      'INMAP'               => "Maps (count): ",
+      'INMICROFICHE'        => "Microfiche (count): ",
+      'INMICROFILM'         => "Microfilm Reels (count): ",
+      'INNEGATIVE'          => "Photo Negs (count): ",
+      'INOTHER MATERIALS'   => "Other Materials (count): ",
+      'INPHOTOGRAPHICPRINT' => "Photo Prints (count): ",
+      'INSLIDE'             => "Slides (count): ",
+      'INTEXTUALRECORDS'    => "Textual (m): ",
+      'INVIDEOCASSETTE'     => "Video Cassettes (count): "
+    );
+
+    $import->setStatus('extentColumnsAndPrefixes', $extentColumnsAndPrefixes);
+
+    // handling logic for extent columns
+    $extentColumnHandler = function(&$self, $data)
+    {
+      if ($data)
+      {
+        if (strpos($self->status['currentColumn'], 'IN') === 0)
+        {
+          $self->rowStatusVars['extents'] = 
(isset($self->rowStatusVars['extents']))
+            ? $self->rowStatusVars['extents']
+            : '';
+             
+          $extentColumnsAndPrefixes = 
$self->getStatus('extentColumnsAndPrefixes');
+          $self->rowStatusVars['extents'] = $self->appendWithLineBreakIfNeeded(
+            $self->rowStatusVars['extents'],
+            $extentColumnsAndPrefixes[($self->status['currentColumn'])] . $data
+          );
+        }
+      }
+    };
+
+    // add handler for each extent-related column
+    foreach($extentColumnsAndPrefixes as $column => $junk)
+    {
+      $import->addColumnHandler($column, $extentColumnHandler);
+    }
+
+    $import->addColumnHandler('ACQUISITION METHOD', function(&$self, $data)
     {
       if ($data)
       {
         $cvaToQubit = array(
-          'Private records' => 'Private transfer',
-          'Public records'  => 'Public transfer'
+          'Copy Loan'          => 'Deposit', // is this correct?
+          'Donation'           => 'Gift',
+          'Direct Transfer'    => 'Transfer',
+          'Scheduled Transfer' => 'Transfer'
         );
 
         if (isset($self->object) && is_object($self->object))
         {
           $self->object->resourceTypeId = $self->translateNameToTermId(
-            'transfer type',
+            'acquisition type',
             $data,
             $cvaToQubit,
-            $self->getStatus('resourceTypes')
+            $self->getStatus('acquisitionTypes')
           );
         }
       }
     });
-
-    $import->csv($fh, $skipRows);
   }
 }

-- 
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/qubit-commits?hl=en.

Reply via email to