use CGI;
use C4::Auth;
use C4::Output;
-use C4::Interface::CGI::Output;
use C4::Biblio;
use C4::Search;
use C4::Context;
use MARC::Record;
use C4::Log;
use C4::Koha; # XXX subfield_is_koha_internal_p
+use Date::Calc qw(Today);
use MARC::File::USMARC;
use MARC::File::XML;
my ($file,$marc,$encoding) = $sth->fetchrow;
if ($marc) {
my $record = MARC::Record->new_from_usmarc($marc);
- if ($record->field('010')){
- foreach my $field ($record->field('010'))
- {
- foreach my $subfield ($field->subfield('a')){
- my $newisbn = $field->subfield('a');
- $newisbn =~ s/-//g;
- $field->update( 'a' => $newisbn );
-
-
- }
-# $record->insert_fields_ordered($record->field('010'));
- }
- }
-
- if ($record->subfield(100,'a')){
- my $f100a=$record->subfield(100,'a');
- my $f100 = $record->field(100);
- my $f100temp = $f100->as_string;
- $record->delete_field($f100);
- if (length($f100temp)>28){
- substr($f100temp,26,2,"50");
- $f100->update('a' => $f100temp);
- my $f100 = MARC::Field->new('100','','','a' => $f100temp);
- $record->insert_fields_ordered($f100);
- }
- }
+ if ($record->field('010')){
+ foreach my $field ($record->field('010'))
+ {
+ foreach my $subfield ($field->subfield('a')){
+ my $newisbn = $field->subfield('a');
+ $newisbn =~ s/-//g;
+ $field->update( 'a' => $newisbn );
+ }
+ # $record->insert_fields_ordered($record->field('010'));
+ }
+ }
+ if ($record->subfield(100,'a')) {
+ my $f100a=$record->subfield(100,'a');
+ my $f100 = $record->field(100);
+ my $f100temp = $f100->as_string;
+ $record->delete_field($f100);
+ if (length($f100temp)>28) {
+ substr($f100temp,26,2,"50");
+ $f100->update('a' => $f100temp);
+ my $f100 = MARC::Field->new('100','','','a' => $f100temp);
+ $record->insert_fields_ordered($f100);
+ }
+ }
if (ref($record) eq undef) {
return -1;
} else {
if (C4::Context->preference("z3950NormalizeAuthor") and C4::Context->preference("z3950AuthorAuthFields")){
- my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,"biblio.author");
+ my ($tag,$subfield) = GetMarcFromKohaField("biblio.author");
# my $summary = C4::Context->preference("z3950authortemplate");
my $auth_fields = C4::Context->preference("z3950AuthorAuthFields");
my @auth_fields= split /,/,$auth_fields;
#use Encode;
#$value = encode('utf-8', $value);
$value =~ s/"/"/g;
+ # if there is no value provided but a default value in parameters, get it
+ unless ($value) {
+ $value = $tagslib->{$tag}->{$subfield}->{defaultvalue};
+ # get today date & replace YYYY, MM, DD if provided in the default value
+ my ($year,$month,$day) = Today();
+ $month = sprintf("%02d",$month);
+ $day = sprintf("%02d",$day);
+ $value =~ s/YYYY/$year/g;
+ $value =~ s/MM/$month/g;
+ $value =~ s/DD/$day/g;
+
+ }
my $dbh = C4::Context->dbh;
my %subfield_data;
$subfield_data{tag}=$tag;
my $frameworkcode = $input->param('frameworkcode');
my $dbh = C4::Context->dbh;
-$frameworkcode = &MARCfind_frameworkcode($biblionumber) if ($biblionumber and not ($frameworkcode));
+$frameworkcode = &GetFrameworkCode($biblionumber) if ($biblionumber and not ($frameworkcode));
$frameworkcode='' if ($frameworkcode eq 'Default');
my ($template, $loggedinuser, $cookie)
-multiple => 0 );
$template->param( framework => $framework, breedingid => $breedingid);
-$tagslib = &MARCgettagslib($dbh,1,$frameworkcode);
+$tagslib = &GetMarcStructure(1,$frameworkcode);
my $record=-1;
my $encoding="";
$record = GetMarcBiblio( $biblionumber ) if ($biblionumber);
if ($biblionumber) {
$is_a_modif=1;
# if it's a modif, retrieve bibli and biblioitem numbers for the future modification of old-DB.
- ($biblionumtagfield,$biblionumtagsubfield) = &MARCfind_marc_from_kohafield($dbh,"biblio.biblionumber",$frameworkcode);
- ($biblioitemnumtagfield,$biblioitemnumtagsubfield) = &MARCfind_marc_from_kohafield($dbh,"biblioitems.biblioitemnumber",$frameworkcode);
+ ($biblionumtagfield,$biblionumtagsubfield) = &GetMarcFromKohaField("biblio.biblionumber",$frameworkcode);
+ ($biblioitemnumtagfield,$biblioitemnumtagsubfield) = &GetMarcFromKohaField("biblioitems.biblioitemnumber",$frameworkcode);
# search biblioitems value
my $sth=$dbh->prepare("select biblioitemnumber from biblioitems where biblionumber=?");
$sth->execute($biblionumber);
my @ind_tag = $input->param('ind_tag');
my @indicator = $input->param('indicator');
if (C4::Context->preference('TemplateEncoding') eq "iso-8859-1") {
- $record = MARChtml2marc($dbh,\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
+ $record = TransformHtmlToMarc($dbh,\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
} else {
- my $xml = MARChtml2xml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
+ my $xml = TransformHtmlToXml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
$record=MARC::Record->new_from_xml($xml,C4::Context->preference('TemplateEncoding'),C4::Context->preference('marcflavour'));
# warn "MARC :".$record->as_formatted;
# die;
($biblionumber,$oldbibitemnum) = AddBiblio($record,$frameworkcode);
}
# now, redirect to additem page
- print $input->redirect("additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode");
+ print $input->redirect("/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode");
exit;
} else {
# it may be a duplicate, warn the user and do nothing
# build indicator hash.
my @ind_tag = $input->param('ind_tag');
my @indicator = $input->param('indicator');
- my $xml = MARChtml2xml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
+ my $xml = TransformHtmlToXml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
my $record;
if (C4::Context->preference('TemplateEncoding') eq "iso-8859-1") {
my %indicators;
for (my $i=0;$i<=$#ind_tag;$i++) {
$indicators{$ind_tag[$i]} = $indicator[$i];
}
- $record = MARChtml2marc($dbh,\@tags,\@subfields,\@values,%indicators);
+ $record = TransformHtmlToMarc($dbh,\@tags,\@subfields,\@values,%indicators);
} else {
- my $xml = MARChtml2xml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
+ my $xml = TransformHtmlToXml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag);
$record=MARC::Record->new_from_xml($xml,C4::Context->preference('TemplateEncoding'),C4::Context->preference('marcflavour'));
}
for (my $i=1;$i<=$cntrepeatfield;$i++){