simplify a few exports and add one for itemtypes
authorRogan Hamby <rhamby@equinoxinitiative.org>
Wed, 22 Apr 2020 19:10:20 +0000 (15:10 -0400)
committerRogan Hamby <rhamby@equinoxinitiative.org>
Wed, 22 Apr 2020 19:10:20 +0000 (15:10 -0400)
kmig.d/bin/mig-export

index c603c84..4b0cb19 100755 (executable)
@@ -24,7 +24,7 @@ my $dbh = KMig::db_connect();
 
 my @taglist = @ARGV;
 my $arg_list_length = scalar @taglist;
-if($arg_list_length < 1) { @taglist = ("preferences","authorisedvalues","libraries","borrowerattributes"); } 
+if($arg_list_length < 1) { @taglist = ("preferences","authorisedvalues","libraries","borrowerattributes","itemtypes"); } 
 $MIGGITDIR =~ s/\/\//\//;
 
 my $timestamp = create_timestamp();
@@ -38,21 +38,19 @@ foreach my $backup (@taglist) {
     if ($backup eq 'authorisedvalues') {
         $backupfile = $MIGGITDIR . 'authorised_values' . '.' . $timestamp . '.xml';
         backup_authorised_values($dbh,$backupfile);
-        $backupfile = $MIGGITDIR . 'authorised_value_categories' . '.' . $timestamp . '.xml';
-        backup_authorised_value_categories($dbh,$backupfile);
     }
     if ($backup eq 'borrowerattributes') {
-        $backupfile = $MIGGITDIR . 'borrower_attribute_types' . '.' . $timestamp . '.xml';
-        backup_borrower_attribute_types($dbh,$backupfile);
-        $backupfile = $MIGGITDIR . 'authorised_values_by_bat' . '.' . $timestamp . '.xml';
-        backup_authorised_values_by_bat($dbh,$backupfile);
-        $backupfile = $MIGGITDIR . 'authorised_value_categories_by_bat' . '.' . $timestamp . '.xml';
-        backup_authorised_value_categories_by_bat($dbh,$backupfile);
+        $backupfile = $MIGGITDIR . 'borrower_attributes' . '.' . $timestamp . '.xml';
+        backup_borrower_attributes($dbh,$backupfile);
     }
     if ($backup eq 'libraries') {
         $backupfile = $MIGGITDIR . 'libraries' . '.' . $timestamp . '.xml';
         backup_libraries($dbh,$backupfile);
     }
+    if ($backup eq 'itemtypes') {
+        $backupfile = $MIGGITDIR . 'itemtypes' . '.' . $timestamp . '.xml'; 
+        backup_itemtypes($dbh,$backupfile);
+    }
 }
 
 sub backup_authorised_values {
@@ -81,97 +79,114 @@ sub backup_authorised_values {
     return;
 }
 
-sub backup_authorised_values_by_bat {
+sub backup_borrower_attributes {
     my $dbh = shift;
     my $backupfile = shift;
 
     open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
     my $xml = XML::Writer->new(OUTPUT => $fh, DATA_MODE => 1, DATA_INDENT => 2, );
     $xml->xmlDecl('UTF-8');
-    $xml->startTag('authorised_values');
-    my $query = "SELECT category,authorised_value,lib,lib_opac,imageurl FROM authorised_values where category in (select category_code from borrower_attribute_types);";
+    $xml->startTag('document');
+
+    $xml->startTag('borrower_attribute_types');
+    my $query = "SELECT code,description,repeatable,opac_display,opac_editable,staff_searchable,authorised_value_category,display_checkout,category_code,class FROM borrower_attribute_types";
     my $sth = $dbh->prepare($query);
     $sth->execute();
     while (my @row = $sth->fetchrow_array) {
         $xml->startTag('value');
-        $xml->dataElement('category', $row[0]);
-        $xml->dataElement('authvalue', $row[1]);
-        $xml->dataElement('lib', $row[2]);
-        $xml->dataElement('lib_opac', $row[3]);
-        $xml->dataElement('image_url', $row[4]);
+        $xml->dataElement('code', $row[0]);
+        $xml->dataElement('description', $row[1]);
+        $xml->dataElement('repeat', $row[2]);
+        $xml->dataElement('opac_display', $row[3]);
+        $xml->dataElement('staff_searchable', $row[4]);
+        $xml->dataElement('auth_value_cat', $row[5]);
+        $xml->dataElement('display_checkout', $row[6]);
+        $xml->dataElement('category_code', $row[7]);
+        $xml->dataElement('class', $row[8]);
         $xml->endTag('value');
     }
-    $xml->endTag('authorised_values');
-    $xml->end();
-    close $fh;
-    return;
-}
-
-sub backup_authorised_value_categories {
-    my $dbh = shift;
-    my $backupfile = shift;
+    $xml->endTag('borrower_attribute_types');
 
-    open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
-    my $xml = XML::Writer->new(OUTPUT => $fh, DATA_MODE => 1, DATA_INDENT => 2, );
-    $xml->xmlDecl('UTF-8');
     $xml->startTag('authorised_value_categories');
-    my $query = "SELECT category_name FROM authorised_value_categories";
-    my $sth = $dbh->prepare($query);
+    $query = "SELECT category_name FROM authorised_value_categories WHERE category_name IN (select category_name from borrower_attribute_types)";
+    $sth = $dbh->prepare($query);
     $sth->execute();
     while (my @row = $sth->fetchrow_array) {
         $xml->dataElement('value', $row[0]);
     }
     $xml->endTag('authorised_value_categories');
-    $xml->end();
-    close $fh;
-    return;
-}
 
-sub backup_authorised_value_categories_by_bat {
-    my $dbh = shift;
-    my $backupfile = shift;
-
-    open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
-    my $xml = XML::Writer->new(OUTPUT => $fh, DATA_MODE => 1, DATA_INDENT => 2, );
-    $xml->xmlDecl('UTF-8');
-    $xml->startTag('authorised_value_categories');
-    my $query = "SELECT category_name FROM authorised_value_categories WHERE category_name IN (select category_name from borrower_attribute_types)";
-    my $sth = $dbh->prepare($query);
+    $xml->startTag('authorised_values');
+    $query = "SELECT category,authorised_value,lib,lib_opac,imageurl FROM authorised_values where category in (select category_code from borrower_attribute_types);";
+    $sth = $dbh->prepare($query);
     $sth->execute();
     while (my @row = $sth->fetchrow_array) {
-        $xml->dataElement('value', $row[0]);
+        $xml->startTag('value');
+        $xml->dataElement('category', $row[0]);
+        $xml->dataElement('authvalue', $row[1]);
+        $xml->dataElement('lib', $row[2]);
+        $xml->dataElement('lib_opac', $row[3]);
+        $xml->dataElement('image_url', $row[4]);
+        $xml->endTag('value');
     }
-    $xml->endTag('authorised_value_categories');
+    $xml->endTag('authorised_values');
+
+    $xml->endTag('document');
     $xml->end();
     close $fh;
     return;
 }
 
-sub backup_borrower_attribute_types {
+sub backup_itemtypes {
     my $dbh = shift;
     my $backupfile = shift;
 
     open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
     my $xml = XML::Writer->new(OUTPUT => $fh, DATA_MODE => 1, DATA_INDENT => 2, );
     $xml->xmlDecl('UTF-8');
-    $xml->startTag('borrower_attribute_types');
-    my $query = "SELECT code,description,repeatable,opac_display,opac_editable,staff_searchable,authorised_value_category,display_checkout,category_code,class FROM borrower_attribute_types";
+    $xml->startTag('document');
+
+    $xml->startTag('itemtypes');
+    my $query = "SELECT itemtype, description, rentalcharge, rentalcharge_daily, rentalcharge_hourly, defaultreplacecost, processfee, notforloan, imageurl, summary, checkinmsg, checkinmsgtype, sip_media_type, hideinopac, searchcategory FROM itemtypes";
     my $sth = $dbh->prepare($query);
     $sth->execute();
     while (my @row = $sth->fetchrow_array) {
         $xml->startTag('value');
-        $xml->dataElement('code', $row[0]);
+        $xml->dataElement('itemtype', $row[0]);
         $xml->dataElement('description', $row[1]);
-        $xml->dataElement('repeat', $row[2]);
-        $xml->dataElement('opac_display', $row[3]);
-        $xml->dataElement('staff_searchable', $row[4]);
-        $xml->dataElement('auth_value_cat', $row[5]);
-        $xml->dataElement('display_checkout', $row[6]);
-        $xml->dataElement('category_code', $row[7]);
-        $xml->dataElement('class', $row[8]);
+        $xml->dataElement('rentalcharge', $row[2]);
+        $xml->dataElement('rentalcharge_daily', $row[3]);
+        $xml->dataElement('rentalcharge_hourly', $row[4]);
+        $xml->dataElement('defaultreplacementcost', $row[5]);
+        $xml->dataElement('processfee', $row[6]);
+        $xml->dataElement('notforloan', $row[7]);
+        $xml->dataElement('imageurl', $row[8]);
+        $xml->dataElement('summary', $row[9]);
+        $xml->dataElement('checkinmsg', $row[10]);
+        $xml->dataElement('checkinmsgtype', $row[11]);
+        $xml->dataElement('sip_media_type', $row[12]);
+        $xml->dataElement('hideinopac', $row[13]);
+        $xml->dataElement('searchcategory', $row[14]);
         $xml->endTag('value');
     }
-    $xml->endTag('borrower_attribute_types');
+    $xml->endTag('itemtypes');
+
+    $xml->startTag('authorised_values');
+    $query = "SELECT category,authorised_value,lib,lib_opac,imageurl FROM authorised_values where category = 'ITEMTYPECAT';";
+    $sth = $dbh->prepare($query);
+    $sth->execute();
+    while (my @row = $sth->fetchrow_array) {
+        $xml->startTag('value');
+        $xml->dataElement('category', $row[0]);
+        $xml->dataElement('authvalue', $row[1]);
+        $xml->dataElement('lib', $row[2]);
+        $xml->dataElement('lib_opac', $row[3]);
+        $xml->dataElement('image_url', $row[4]);
+        $xml->endTag('value');
+    }
+    $xml->endTag('authorised_values');
+
+    $xml->endTag('document');
     $xml->end();
     close $fh;
     return;