Lines 1827-1843
sub GetFrameworkCode {
Link Here
|
1827 |
This function builds partial MARC::Record from a hash |
1827 |
This function builds partial MARC::Record from a hash |
1828 |
Hash entries can be from biblio or biblioitems. |
1828 |
Hash entries can be from biblio or biblioitems. |
1829 |
|
1829 |
|
1830 |
This function is called in acquisition module, to create a basic catalogue entry from user entry |
1830 |
This function is called in acquisition module, to create a basic catalogue |
|
|
1831 |
entry from user entry |
1831 |
|
1832 |
|
1832 |
=cut |
1833 |
=cut |
1833 |
|
1834 |
|
|
|
1835 |
|
1834 |
sub TransformKohaToMarc { |
1836 |
sub TransformKohaToMarc { |
1835 |
my ($hash) = @_; |
1837 |
my $hash = shift; |
1836 |
my $sth = C4::Context->dbh->prepare( "SELECT tagfield,tagsubfield FROM marc_subfield_structure WHERE frameworkcode=? AND kohafield=?" ); |
|
|
1837 |
my $record = MARC::Record->new(); |
1838 |
my $record = MARC::Record->new(); |
1838 |
SetMarcUnicodeFlag( $record, C4::Context->preference("marcflavour") ); |
1839 |
SetMarcUnicodeFlag( $record, C4::Context->preference("marcflavour") ); |
1839 |
foreach ( keys %{$hash} ) { |
1840 |
my $db_to_marc = C4::Context->marcfromkohafield; |
1840 |
&TransformKohaToMarcOneField( $sth, $record, $_, $hash->{$_}, '' ); |
1841 |
while ( my ($name, $value) = each %$hash ) { |
|
|
1842 |
next unless my $dtm = $db_to_marc->{''}->{$name}; |
1843 |
my ($tag, $letter) = @$dtm; |
1844 |
foreach my $value ( split(/\s?\|\s?/, $value, -1) ) { |
1845 |
if ( my $field = $record->field($tag) ) { |
1846 |
$field->add_subfields( $letter => $value ); |
1847 |
} |
1848 |
else { |
1849 |
$record->insert_fields_ordered( MARC::Field->new( |
1850 |
$tag, " ", " ", $letter => $value ) ); |
1851 |
} |
1852 |
} |
1853 |
|
1841 |
} |
1854 |
} |
1842 |
return $record; |
1855 |
return $record; |
1843 |
} |
1856 |
} |
Lines 1928-1961
sub PrepHostMarcField {
Link Here
|
1928 |
|
1941 |
|
1929 |
=cut |
1942 |
=cut |
1930 |
|
1943 |
|
1931 |
sub TransformKohaToMarcOneField { |
|
|
1932 |
my ( $sth, $record, $kohafieldname, $value, $frameworkcode ) = @_; |
1933 |
$frameworkcode = '' unless $frameworkcode; |
1934 |
my $tagfield; |
1935 |
my $tagsubfield; |
1936 |
|
1937 |
if ( !defined $sth ) { |
1938 |
my $dbh = C4::Context->dbh; |
1939 |
$sth = $dbh->prepare( "SELECT tagfield,tagsubfield FROM marc_subfield_structure WHERE frameworkcode=? AND kohafield=?" ); |
1940 |
} |
1941 |
$sth->execute( $frameworkcode, $kohafieldname ); |
1942 |
if ( ( $tagfield, $tagsubfield ) = $sth->fetchrow ) { |
1943 |
my @values = split(/\s?\|\s?/, $value, -1); |
1944 |
|
1945 |
foreach my $itemvalue (@values){ |
1946 |
my $tag = $record->field($tagfield); |
1947 |
if ($tag) { |
1948 |
$tag->add_subfields( $tagsubfield => $itemvalue ); |
1949 |
$record->delete_field($tag); |
1950 |
$record->insert_fields_ordered($tag); |
1951 |
} |
1952 |
else { |
1953 |
$record->add_fields( $tagfield, " ", " ", $tagsubfield => $itemvalue ); |
1954 |
} |
1955 |
} |
1956 |
} |
1957 |
return $record; |
1958 |
} |
1959 |
|
1944 |
|
1960 |
=head2 TransformHtmlToXml |
1945 |
=head2 TransformHtmlToXml |
1961 |
|
1946 |
|
1962 |
- |
|
|