import tweaks
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 24 Aug 2006 23:42:49 +0000 (23:42 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 24 Aug 2006 23:42:49 +0000 (23:42 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5666 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/src/extras/import/load_legacy.sql
Open-ILS/src/extras/import/marc2bre.pl
Open-ILS/src/sql/Pg/005.schema.actors.sql
Open-ILS/src/sql/Pg/040.schema.asset.sql

index 9adcbec..eb8d7b7 100644 (file)
@@ -118,6 +118,8 @@ CREATE TABLE joined_legacy AS
          FROM  legacy_item i
                JOIN legacy_callnum c USING (cat_key,call_key);
 
+CREATE INDEX lj_cat_call_idx ON joined_legacy (cat_key,call_key);
+
 -- Import the call numbers
 -- Getting the owning lib from the first available copy on the CN
 INSERT INTO asset.call_number (creator,editor,record,label,owning_lib)
@@ -129,7 +131,7 @@ INSERT INTO asset.call_number (creator,editor,record,label,owning_lib)
 
 
 -- Import base copy data
-INSERT INTO asset.copy (circ_lib,creator,editor,create_date,barcode,status,location,loan_duration,fine_level,opac_visible,price,circ_modifier,call_number)
+INSERT INTO asset.copy (circ_lib,creator,editor,create_date,barcode,status,location,loan_duration,fine_level,opac_visible,price,circ_modifier,call_number, alert_message)
        SELECT  DISTINCT ou.id AS circ_lib,
                1 AS creator,
                1 AS editor,
@@ -143,7 +145,7 @@ INSERT INTO asset.copy (circ_lib,creator,editor,create_date,barcode,status,locat
                (l.price/100::numeric)::numeric(8,2) AS price,
                l.item_type AS circ_modifier,
                cn.id AS call_number,
-               pc.cnt || " pieces" as alert_message
+               pc.cnt || ' pieces' as alert_message
          FROM  joined_legacy l
                JOIN legacy_copy_status_map s_map
                        ON (s_map.name = l.current_location)
index 1e84ab1..579cc1c 100755 (executable)
@@ -77,6 +77,8 @@ my $batch = new MARC::Batch ( 'USMARC', @files );
 $batch->strict_off();
 $batch->warnings_off();
 
+my %seen;
+
 my $starttime = time;
 my $rec;
 while ( try { $rec = $batch->next } otherwise { $rec = -1 } ) {
@@ -111,13 +113,17 @@ while ( try { $rec = $batch->next } otherwise { $rec = -1 } ) {
        }
 
        $rec = preprocess($rec);
+       $rec->delete_field( $_ ) for ($rec->field($id_field));
 
        if (!$rec) {
                next;
        }
 
-       my $tcn_value = $rec->subfield($id_field => 'a');
-       my $tcn_source = $rec->subfield($id_field => 'b');
+       my $tcn_value = $rec->subfield('901' => 'a');
+       my $tcn_source = $rec->subfield('901' => 'b');
+
+       next if ($seen{$tcn_value});
+       $seen{$tcn_value} = 1;
 
        (my $xml = $rec->as_xml_record()) =~ s/\n//sog;
        $xml =~ s/^<\?xml.+\?\s*>//go;
@@ -207,10 +213,9 @@ sub preprocess {
        }
 
        my $tcn = MARC::Field->new(
-               $id_field,
-               '', '',
-               'a', $id,
-               'b', do { $source_map{$source} || 'System' },
+               '901' => ('', ''),
+               a => $id,
+               b => do { $source_map{$source} || 'System' },
        );
 
        $rec->append_fields($tcn);
index 4b3ce83..d42ffc4 100644 (file)
@@ -246,7 +246,7 @@ CREATE TABLE actor.stat_cat_entry (
        stat_cat        INT     NOT NULL,
        owner           INT     NOT NULL,
        value           TEXT    NOT NULL,
-       CONSTRAINT sce_once_per_owner UNIQUE (owner,value)
+       CONSTRAINT sce_once_per_owner UNIQUE (stat_cat,owner,value)
 );
 COMMENT ON TABLE actor.stat_cat_entry IS $$
 /*
index 8722c4e..6d8b479 100644 (file)
@@ -93,7 +93,7 @@ CREATE TABLE asset.stat_cat_entry (
         stat_cat        INT     NOT NULL,
        owner           INT     NOT NULL,
        value           TEXT    NOT NULL,
-       CONSTRAINT sce_once_per_owner UNIQUE (owner,value)
+       CONSTRAINT sce_once_per_owner UNIQUE (stat_cat,owner,value)
 );
 
 CREATE TABLE asset.stat_cat_entry_copy_map (