diff --git a/acqui.simple/addbiblio.pl b/acqui.simple/addbiblio.pl
index 1f980327f8..a34c10acd8 100755
--- a/acqui.simple/addbiblio.pl
+++ b/acqui.simple/addbiblio.pl
@@ -29,73 +29,235 @@
use CGI;
use strict;
use C4::Output;
+use C4::Biblio;
+use C4::Context;
+use HTML::Template;
+use MARC::File::USMARC;
+sub find_value {
+ my ($tagfield,$subfield,$record) = @_;
+ my $result;
+ foreach my $field ($record->field($tagfield)) {
+ my @subfields = $field->subfields();
+ foreach my $subfield (@subfields) {
+ if (@$subfield[0] eq $subfield) {
+ $result .= @$subfield[1];
+ }
+ }
+ }
+}
+sub MARCfindbreeding {
+ my ($dbh,$isbn) = @_;
+ my $sth = $dbh->prepare("select file,marc from marc_breeding where isbn=?");
+ $sth->execute($isbn);
+ my ($file,$marc) = $sth->fetchrow;
+ if ($marc) {
+ my $record = MARC::File::USMARC::decode($marc);
+ if (ref($record) eq undef) {
+ warn "not a MARC record !";
+ return -1;
+ } else {
+ return $record;
+ }
+ }
+ warn "not MARC";
+ return -1;
+
+}
my $input = new CGI;
my $error = $input->param('error');
+my $oldbiblionumber=$input->param('bib'); # if bib exists, it's a modif, not a new biblio.
+my $isbn = $input->param('isbn');
+my $op = $input->param('op');
+my $dbh = C4::Context->dbh;
+my $bibid;
+if ($oldbiblionumber) {;
+ $bibid = &MARCfind_MARCbibid_from_oldbiblionumber($dbh,$oldbiblionumber)
+}else {
+ $bibid = $input->param('bibid');
+}
+my $template;
-print $input->header;
-print startpage();
-print startmenu('acquisitions');
+my $tagslib = &MARCgettagslib($dbh,1);
-print << "EOF";
-Adding a new Biblio
+my $record = MARCgetbiblio($dbh,$bibid) if ($oldbiblionumber);
+#my $record = MARCfindbreeding($dbh,$isbn) if ($isbn);
-
-
-
Section One: Copyright Information
-
-
-EOF
+#------------------------------------------------------------------------------------------------------------------------------
+if ($op eq "addbiblio") {
+#------------------------------------------------------------------------------------------------------------------------------
+ # rebuild
+ my @tags = $input->param('tag[]');
+ my @subfields = $input->param('subfield[]');
+ my @values = $input->param('value[]');
+ my $record = MARChtml2marc($dbh,\@tags,\@subfields,\@values);
+# MARC::Record builded => now, record in DB
+ my ($bibid,$oldbibnum,$oldbibitemnum) = NEWnewbiblio($dbh,$record);
+# build item screen. There is no item for instance.
+ my @loop_data =();
+ my $i=0;
+ foreach my $tag (keys %{$tagslib}) {
+ my $previous_tag = '';
+ # loop through each subfield
+ foreach my $subfield (keys %{$tagslib->{$tag}}) {
+ next if ($subfield eq 'lib');
+ next if ($subfield eq 'tab');
+ next if ($tagslib->{$tag}->{$subfield}->{'tab'} ne "10");
+ my %subfield_data;
+ $subfield_data{tag}=$tag;
+ $subfield_data{subfield}=$subfield;
+ $subfield_data{marc_lib}=$tagslib->{$tag}->{$subfield}->{lib};
+ $subfield_data{marc_mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
+ $subfield_data{marc_repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
+ $subfield_data{marc_value}="";
+ push(@loop_data, \%subfield_data);
+ $i++
+ }
+ }
+ $template = gettemplate("acqui.simple/addbiblio2.tmpl");
+ $template->param(bibid => $bibid,
+ item => \@loop_data);
+#------------------------------------------------------------------------------------------------------------------------------
+} elsif ($op eq "additem") {
+#------------------------------------------------------------------------------------------------------------------------------
+ my @tags = $input->param('tag[]');
+ my @subfields = $input->param('subfield[]');
+ my @values = $input->param('value[]');
+ my $record = MARChtml2marc($dbh,\@tags,\@subfields,\@values);
+ my ($bibid,$oldbibnum,$oldbibitemnum) = NEWnewitem($dbh,$record,$bibid);
+ # now, build existiing item list
+ my $temp = MARCgetbiblio($dbh,$bibid);
+ my @fields = $temp->fields();
+ my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code
+ my @big_array;
+ foreach my $field (@fields) {
+ my @subf=$field->subfields;
+ my %this_row;
+ # loop through each subfield
+ for my $i (0..$#subf) {
+ next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab} ne 10);
+ $witness{$subf[$i][0]} = $tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
+ $this_row{$subf[$i][0]} =$subf[$i][1];
+ }
+ if (%this_row) {
+ push(@big_array, \%this_row);
+ }
+ }
+ #fill big_row with missing datas
+ foreach my $subfield_code (keys(%witness)) {
+ for (my $i=0;$i<=$#big_array;$i++) {
+ $big_array[$i]{$subfield_code}=" " unless ($big_array[$i]{$subfield_code});
+ }
+ }
+ # now, construct template !
+ my @item_value_loop;
+ my @header_value_loop;
+ for (my $i=0;$i<=$#big_array; $i++) {
+ my $items_data;
+ foreach my $subfield_code (keys(%witness)) {
+ $items_data .="