View | Details | Raw Unified | Return to bug 3966
Collapse All | Expand All

(-)a/C4/Biblio.pm (-3 / +3 lines)
Lines 2343-2349 sub TransformMarcToKohaOneField { Link Here
2343
2343
2344
=head2 PrepareItemrecordDisplay
2344
=head2 PrepareItemrecordDisplay
2345
2345
2346
  PrepareItemrecordDisplay($itemrecord,$bibnum,$itemumber,$frameworkcode);
2346
  PrepareItemrecordDisplay($bibnum,$itemumber,$defaultvalues,$frameworkcode);
2347
2347
2348
Returns a hash with all the fields for Display a given item data in a template
2348
Returns a hash with all the fields for Display a given item data in a template
2349
2349
Lines 2522-2535 sub PrepareItemrecordDisplay { Link Here
2522
                            $subfield_data{random}     = int(rand(1000000));    # why do we need 2 different randoms?
2522
                            $subfield_data{random}     = int(rand(1000000));    # why do we need 2 different randoms?
2523
                            my $index_subfield = int(rand(1000000));
2523
                            my $index_subfield = int(rand(1000000));
2524
                            $subfield_data{id} = "tag_".$tag."_subfield_".$subfield."_".$index_subfield;
2524
                            $subfield_data{id} = "tag_".$tag."_subfield_".$subfield."_".$index_subfield;
2525
                            $subfield_data{marc_value} = qq[<input tabindex="1" id="$subfield_data{id}" name="field_value" class="input_marceditor" size="67" maxlength="255"
2525
                            $subfield_data{marc_value} = qq[<input tabindex="1" id="$subfield_data{id}" name="field_value" class="input_marceditor" size="67" maxlength="255" value="$defaultvalue"
2526
                                onfocus="Focus$function_name($subfield_data{random}, '$subfield_data{id}');"
2526
                                onfocus="Focus$function_name($subfield_data{random}, '$subfield_data{id}');"
2527
                                 onblur=" Blur$function_name($subfield_data{random}, '$subfield_data{id}');" />
2527
                                 onblur=" Blur$function_name($subfield_data{random}, '$subfield_data{id}');" />
2528
                                <a href="#" class="buttonDot" onclick="Clic$function_name('$subfield_data{id}'); return false;" title="Tag Editor">...</a>
2528
                                <a href="#" class="buttonDot" onclick="Clic$function_name('$subfield_data{id}'); return false;" title="Tag Editor">...</a>
2529
                                $javascript];
2529
                                $javascript];
2530
                        } else {
2530
                        } else {
2531
                            warn "Plugin Failed: $plugin";
2531
                            warn "Plugin Failed: $plugin";
2532
                            $subfield_data{marc_value} = qq(<input tabindex="1" id="$subfield_data{id}" name="field_value" class="input_marceditor" size="67" maxlength="255" />); # supply default input form
2532
                            $subfield_data{marc_value} = qq(<input tabindex="1" id="$subfield_data{id}" name="field_value" class="input_marceditor" size="67" maxlength="255" value="$defaultvalue" />); # supply default input form
2533
                        }
2533
                        }
2534
                }
2534
                }
2535
                elsif ( $tag eq '' ) {       # it's an hidden field
2535
                elsif ( $tag eq '' ) {       # it's an hidden field
(-)a/C4/ImportBatch.pm (-2 / +2 lines)
Lines 547-556 sub BatchCommitItems { Link Here
547
            $updsth->execute();
547
            $updsth->execute();
548
            $num_items_errored++;
548
            $num_items_errored++;
549
        } else {
549
        } else {
550
            my ($item_biblionumber, $biblioitemnumber, $itemnumber) = AddItemFromMarc($item_marc, $biblionumber);
550
            my $item = AddItemFromMarc($item_marc, $biblionumber);
551
            my $updsth = $dbh->prepare("UPDATE import_items SET status = ?, itemnumber = ? WHERE import_items_id = ?");
551
            my $updsth = $dbh->prepare("UPDATE import_items SET status = ?, itemnumber = ? WHERE import_items_id = ?");
552
            $updsth->bind_param(1, 'imported');
552
            $updsth->bind_param(1, 'imported');
553
            $updsth->bind_param(2, $itemnumber);
553
            $updsth->bind_param(2, $item->{itemnumber});
554
            $updsth->bind_param(3, $row->{'import_items_id'});
554
            $updsth->bind_param(3, $row->{'import_items_id'});
555
            $updsth->execute();
555
            $updsth->execute();
556
            $updsth->finish();
556
            $updsth->finish();
(-)a/C4/Items.pm (-7 / +12 lines)
Lines 190-200 sub CartToShelf { Link Here
190
190
191
=head2 AddItemFromMarc
191
=head2 AddItemFromMarc
192
192
193
  my ($biblionumber, $biblioitemnumber, $itemnumber) 
193
  my $item = AddItemFromMarc($source_item_marc, $biblionumber);
194
      = AddItemFromMarc($source_item_marc, $biblionumber);
195
194
196
Given a MARC::Record object containing an embedded item
195
Given a MARC::Record object containing an embedded item
197
record and a biblionumber, create a new item record.
196
record and a biblionumber, create a new item record or update
197
existing one.
198
198
199
=cut
199
=cut
200
200
Lines 210-222 sub AddItemFromMarc { Link Here
210
	$localitemmarc->append_fields($source_item_marc->field($itemtag));
210
	$localitemmarc->append_fields($source_item_marc->field($itemtag));
211
    my $item = &TransformMarcToKoha( $dbh, $localitemmarc, $frameworkcode ,'items');
211
    my $item = &TransformMarcToKoha( $dbh, $localitemmarc, $frameworkcode ,'items');
212
    my $unlinked_item_subfields = _get_unlinked_item_subfields($localitemmarc, $frameworkcode);
212
    my $unlinked_item_subfields = _get_unlinked_item_subfields($localitemmarc, $frameworkcode);
213
    if (my $itemnumber = $item->{itemnumber}) {
214
        return ModItem($item, $biblionumber, $itemnumber, $dbh, $frameworkcode, $unlinked_item_subfields);
215
    }
213
    return AddItem($item, $biblionumber, $dbh, $frameworkcode, $unlinked_item_subfields);
216
    return AddItem($item, $biblionumber, $dbh, $frameworkcode, $unlinked_item_subfields);
214
}
217
}
215
218
216
=head2 AddItem
219
=head2 AddItem
217
220
218
  my ($biblionumber, $biblioitemnumber, $itemnumber) 
221
  my $item = AddItem($item, $biblionumber[, $dbh, $frameworkcode, $unlinked_item_subfields]);
219
      = AddItem($item, $biblionumber[, $dbh, $frameworkcode, $unlinked_item_subfields]);
220
222
221
Given a hash containing item column names as keys,
223
Given a hash containing item column names as keys,
222
create a new Koha item record.
224
create a new Koha item record.
Lines 268-274 sub AddItem { Link Here
268
   
270
   
269
    logaction("CATALOGUING", "ADD", $itemnumber, "item") if C4::Context->preference("CataloguingLog");
271
    logaction("CATALOGUING", "ADD", $itemnumber, "item") if C4::Context->preference("CataloguingLog");
270
    
272
    
271
    return ($item->{biblionumber}, $item->{biblioitemnumber}, $itemnumber);
273
    return $item;
272
}
274
}
273
275
274
=head2 AddItemBatchFromMarc
276
=head2 AddItemBatchFromMarc
Lines 445-457 sub ModItemFromMarc { Link Here
445
        $item->{$item_field} = $default_values_for_mod_from_marc{$item_field} unless (exists $item->{$item_field});
447
        $item->{$item_field} = $default_values_for_mod_from_marc{$item_field} unless (exists $item->{$item_field});
446
    }
448
    }
447
    my $unlinked_item_subfields = _get_unlinked_item_subfields( $localitemmarc, $frameworkcode );
449
    my $unlinked_item_subfields = _get_unlinked_item_subfields( $localitemmarc, $frameworkcode );
450
    $itemnumber ||= $item->{itemnumber};
448
451
449
    return ModItem($item, $biblionumber, $itemnumber, $dbh, $frameworkcode, $unlinked_item_subfields); 
452
    return ModItem($item, $biblionumber, $itemnumber, $dbh, $frameworkcode, $unlinked_item_subfields); 
450
}
453
}
451
454
452
=head2 ModItem
455
=head2 ModItem
453
456
454
  ModItem({ column => $newvalue }, $biblionumber, 
457
  my $item = ModItem({ column => $newvalue }, $biblionumber, 
455
                  $itemnumber[, $original_item_marc]);
458
                  $itemnumber[, $original_item_marc]);
456
459
457
Change one or more columns in an item record and update
460
Change one or more columns in an item record and update
Lines 512-517 sub ModItem { Link Here
512
    ModZebra( $biblionumber, "specialUpdate", "biblioserver", undef, undef );
515
    ModZebra( $biblionumber, "specialUpdate", "biblioserver", undef, undef );
513
516
514
    logaction("CATALOGUING", "MODIFY", $itemnumber, Dumper($item)) if C4::Context->preference("CataloguingLog");
517
    logaction("CATALOGUING", "MODIFY", $itemnumber, Dumper($item)) if C4::Context->preference("CataloguingLog");
518
519
    return $item;
515
}
520
}
516
521
517
=head2 ModItemTransfer
522
=head2 ModItemTransfer
(-)a/acqui/addorder.pl (-3 / +2 lines)
Lines 260-268 if ( $orderinfo->{quantity} ne '0' ) { Link Here
260
                                    $itemhash{$item}->{'indicator'},
260
                                    $itemhash{$item}->{'indicator'},
261
                                    'ITEM');
261
                                    'ITEM');
262
            my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
262
            my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
263
            my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$$orderinfo{biblionumber});
263
            my $item = AddItemFromMarc($record,$$orderinfo{biblionumber});
264
            NewOrderItem($itemnumber, $$orderinfo{ordernumber});
264
            NewOrderItem($item->{itemnumber}, $$orderinfo{ordernumber});
265
266
        }
265
        }
267
    }
266
    }
268
267
(-)a/acqui/addorderiso2709.pl (-2 / +2 lines)
Lines 259-266 if ($op eq ""){ Link Here
259
            my $xml = TransformHtmlToXml( \@tags, \@subfields, \@field_values, \@ind_tag, \@indicator );
259
            my $xml = TransformHtmlToXml( \@tags, \@subfields, \@field_values, \@ind_tag, \@indicator );
260
            my $record = MARC::Record::new_from_xml( $xml, 'UTF-8' );
260
            my $record = MARC::Record::new_from_xml( $xml, 'UTF-8' );
261
            for (my $qtyloop=1;$qtyloop <=$quantity;$qtyloop++) {
261
            for (my $qtyloop=1;$qtyloop <=$quantity;$qtyloop++) {
262
                my ( $biblionumber, $bibitemnum, $itemnumber ) = AddItemFromMarc( $record, $biblionumber );
262
                my $item = AddItemFromMarc( $record, $biblionumber );
263
                NewOrderItem( $itemnumber, $ordernumber );
263
                NewOrderItem( $item->{itemnumber}, $ordernumber );
264
            }
264
            }
265
        }
265
        }
266
    }
266
    }
(-)a/acqui/finishreceive.pl (-41 / +52 lines)
Lines 50-56 my $gst=$input->param('gst'); Link Here
50
my $freight=$input->param('freight');
50
my $freight=$input->param('freight');
51
my $supplierid = $input->param('supplierid');
51
my $supplierid = $input->param('supplierid');
52
my $cnt=0;
52
my $cnt=0;
53
my $error_url_str;
53
my $error_url_str = '';
54
my $ecost = $input->param('ecost');
54
my $ecost = $input->param('ecost');
55
my $note = $input->param("note");
55
my $note = $input->param("note");
56
56
Lines 73-117 if ( any { $order->{$_} ne $tplorder{$_} } qw(quantity quantityreceived notes rr Link Here
73
}
73
}
74
74
75
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
75
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
76
if ($quantityrec > $origquantityrec ) {
76
77
    # now, add items if applicable
77
# now, add or update items if applicable
78
    if (C4::Context->preference('AcqCreateItem') eq 'receiving') {
78
my @tags         = $input->param('tag');
79
        my @tags         = $input->param('tag');
79
my @subfields    = $input->param('subfield');
80
        my @subfields    = $input->param('subfield');
80
my @field_values = $input->param('field_value');
81
        my @field_values = $input->param('field_value');
81
my @serials      = $input->param('serial');
82
        my @serials      = $input->param('serial');
82
my @itemid       = $input->param('itemid');
83
        my @itemid       = $input->param('itemid');
83
my @ind_tag      = $input->param('ind_tag');
84
        my @ind_tag      = $input->param('ind_tag');
84
my @indicator    = $input->param('indicator');
85
        my @indicator    = $input->param('indicator');
85
#Rebuilding ALL the data for items into a hash
86
        #Rebuilding ALL the data for items into a hash
86
# parting them on $itemid.
87
        # parting them on $itemid.
87
my %itemhash;
88
        my %itemhash;
88
my $countdistinct;
89
        my $countdistinct;
89
my $range=scalar(@itemid);
90
        my $range=scalar(@itemid);
90
for (my $i=0; $i<$range; $i++){
91
        for (my $i=0; $i<$range; $i++){
91
    unless ($itemhash{$itemid[$i]}){
92
            unless ($itemhash{$itemid[$i]}){
92
        $countdistinct++;
93
            $countdistinct++;
93
    }
94
            }
94
    push @{$itemhash{$itemid[$i]}->{'tags'}},$tags[$i];
95
            push @{$itemhash{$itemid[$i]}->{'tags'}},$tags[$i];
95
    push @{$itemhash{$itemid[$i]}->{'subfields'}},$subfields[$i];
96
            push @{$itemhash{$itemid[$i]}->{'subfields'}},$subfields[$i];
96
    push @{$itemhash{$itemid[$i]}->{'field_values'}},$field_values[$i];
97
            push @{$itemhash{$itemid[$i]}->{'field_values'}},$field_values[$i];
97
    push @{$itemhash{$itemid[$i]}->{'ind_tag'}},$ind_tag[$i];
98
            push @{$itemhash{$itemid[$i]}->{'ind_tag'}},$ind_tag[$i];
98
    push @{$itemhash{$itemid[$i]}->{'indicator'}},$indicator[$i];
99
            push @{$itemhash{$itemid[$i]}->{'indicator'}},$indicator[$i];
99
}
100
        }
100
my $error;
101
        foreach my $item (keys %itemhash){
101
my %itemnumbers = map { $_ => 1 } GetItemnumbersFromOrder($ordernumber);
102
            my $xml = TransformHtmlToXml( $itemhash{$item}->{'tags'},
102
foreach my $item (keys %itemhash){
103
                                    $itemhash{$item}->{'subfields'},
103
    my $xml = TransformHtmlToXml( $itemhash{$item}->{'tags'},
104
                                    $itemhash{$item}->{'field_values'},
104
                                  $itemhash{$item}->{'subfields'},
105
                                    $itemhash{$item}->{'ind_tag'},
105
                                  $itemhash{$item}->{'field_values'},
106
                                    $itemhash{$item}->{'indicator'},'ITEM');
106
                                  $itemhash{$item}->{'ind_tag'},
107
            my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
107
                                  $itemhash{$item}->{'indicator'},'ITEM');
108
            my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$biblionumber);
108
    my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
109
        }
109
    my $item = AddItemFromMarc($record,$biblionumber);
110
    my $itemnumber = $item ? $item->{itemnumber} : undef;
111
    if ($itemnumber) {
112
        NewOrderItem($itemnumber, $ordernumber) unless $itemnumbers{$itemnumber};
113
    } else {
114
        $error++;
115
    }
116
}
117
118
if ($error) {
119
    $error_url_str = "&error=Datbase+write+error";
120
}
121
else {
122
    if ($quantityrec != $origquantityrec ) {
123
        # save the quantity received.
124
        $datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
110
    }
125
    }
111
    
112
    # save the quantity received.
113
	if( $quantityrec > 0 ) {
114
    	$datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
115
	}
116
}
126
}
117
    print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");
127
128
print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");
(-)a/acqui/orderreceive.pl (-34 / +29 lines)
Lines 85-105 my $search = $input->param('receive'); Link Here
85
my $invoice      = $input->param('invoice');
85
my $invoice      = $input->param('invoice');
86
my $freight      = $input->param('freight');
86
my $freight      = $input->param('freight');
87
my $datereceived = $input->param('datereceived');
87
my $datereceived = $input->param('datereceived');
88
89
90
$datereceived = $datereceived ? C4::Dates->new($datereceived, 'iso') : C4::Dates->new();
88
$datereceived = $datereceived ? C4::Dates->new($datereceived, 'iso') : C4::Dates->new();
91
89
92
my $bookseller = GetBookSellerFromId($supplierid);
90
my $bookseller = GetBookSellerFromId($supplierid);
93
my $input_gst = ($input->param('gst') eq '' ? undef : $input->param('gst'));
91
my $input_gst = ($input->param('gst') eq '' ? undef : $input->param('gst'));
94
my $gst= $input_gst // $bookseller->{gstrate} // C4::Context->preference("gist") // 0;
92
my $gst= $input_gst // $bookseller->{gstrate} // C4::Context->preference("gist") // 0;
95
my $results = SearchOrder($ordernumber,$search);
93
my $results = SearchOrder($ordernumber,$search);
96
97
98
my $count   = scalar @$results;
94
my $count   = scalar @$results;
99
my $order 	= GetOrder($ordernumber);
100
101
102
my $date = @$results[0]->{'entrydate'};
103
95
104
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
96
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
105
    {
97
    {
Lines 114-160 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
114
106
115
# prepare the form for receiving
107
# prepare the form for receiving
116
if ( $count == 1 ) {
108
if ( $count == 1 ) {
117
    if (C4::Context->preference('AcqCreateItem') eq 'receiving') {
109
    my $order 	= GetOrder($results->[0]->{ordernumber});
110
    my $biblionumber = $order->{biblionumber};
111
112
    my @itemloop;
113
    if ( my @itemnumbers = GetItemnumbersFromOrder($ordernumber) ) {
114
        @itemloop = map PrepareItemrecordDisplay($biblionumber,$_), @itemnumbers;
115
    }
116
    elsif (C4::Context->preference('AcqCreateItem') eq 'receiving') {
118
        # prepare empty item form
117
        # prepare empty item form
119
        my $cell = PrepareItemrecordDisplay('','','','ACQ');
118
        my $cell = PrepareItemrecordDisplay('','','','ACQ');
120
        unless ($cell) {
119
        unless ($cell) {
121
            $cell = PrepareItemrecordDisplay('','','','');
120
            $cell = PrepareItemrecordDisplay('','','','');
122
            $template->param('NoACQframework' => 1);
121
            $template->param('NoACQframework' => 1);
123
        }
122
        }
124
        my @itemloop;
125
        push @itemloop,$cell;
123
        push @itemloop,$cell;
126
        
127
        $template->param(items => \@itemloop);
128
    }
124
    }
125
        
126
    $template->param(items => \@itemloop) if @itemloop;
129
127
130
    if ( @$results[0]->{'quantityreceived'} == 0 ) {
128
    if ( $order->{'unitprice'} == 0 ) {
131
        @$results[0]->{'quantityreceived'} = '';
129
        $order->{'unitprice'} = '';
132
    }
133
    if ( @$results[0]->{'unitprice'} == 0 ) {
134
        @$results[0]->{'unitprice'} = '';
135
    }
130
    }
136
    $template->param(
131
    $template->param(
137
        count                 => 1,
132
        count                 => 1,
138
        biblionumber          => @$results[0]->{'biblionumber'},
133
        biblionumber          => $biblionumber,
139
        ordernumber           => @$results[0]->{'ordernumber'},
134
        ordernumber           => $order->{'ordernumber'},
140
        biblioitemnumber      => @$results[0]->{'biblioitemnumber'},
135
        biblioitemnumber      => $order->{'biblioitemnumber'},
141
        supplierid            => @$results[0]->{'booksellerid'},
136
        supplierid            => $supplierid,
142
        freight               => $freight,
137
        freight               => $freight,
143
        gst                   => $gst,
138
        gst                   => $gst,
144
        name                  => $bookseller->{'name'},
139
        name                  => $bookseller->{'name'},
145
        date                  => format_date($date),
140
        date                  => format_date($order->{'entrydate'}),
146
        title                 => @$results[0]->{'title'},
141
        title                 => $order->{'title'},
147
        author                => @$results[0]->{'author'},
142
        author                => $order->{'author'},
148
        copyrightdate         => @$results[0]->{'copyrightdate'},
143
        copyrightdate         => $order->{'copyrightdate'},
149
        isbn                  => @$results[0]->{'isbn'},
144
        isbn                  => $order->{'isbn'},
150
        seriestitle           => @$results[0]->{'seriestitle'},
145
        seriestitle           => $order->{'seriestitle'},
151
        bookfund              => @$results[0]->{'bookfundid'},
146
        bookfund              => $order->{'bookfundid'},
152
        quantity              => @$results[0]->{'quantity'},
147
        quantity              => $order->{'quantity'},
153
        quantityreceivedplus1 => @$results[0]->{'quantityreceived'} + 1,
148
        quantityreceived      => scalar(@itemloop) || 1,
154
        quantityreceived      => @$results[0]->{'quantityreceived'},
149
        origquantityrec       => $order->{'quantityreceived'},
155
        rrp                   => @$results[0]->{'rrp'},
150
        rrp                   => $order->{'rrp'},
156
        ecost                 => @$results[0]->{'ecost'},
151
        ecost                 => $order->{'ecost'},
157
        unitprice             => @$results[0]->{'unitprice'},
152
        unitprice             => $order->{'unitprice'},
158
        invoice               => $invoice,
153
        invoice               => $invoice,
159
        datereceived          => $datereceived->output(),
154
        datereceived          => $datereceived->output(),
160
        datereceived_iso          => $datereceived->output('iso'),
155
        datereceived_iso          => $datereceived->output('iso'),
(-)a/cataloguing/additem.pl (-5 / +5 lines)
Lines 340-347 if ($op eq "additem") { Link Here
340
	push @errors,"barcode_not_unique" if($exist_itemnumber);
340
	push @errors,"barcode_not_unique" if($exist_itemnumber);
341
	# if barcode exists, don't create, but report The problem.
341
	# if barcode exists, don't create, but report The problem.
342
    unless ($exist_itemnumber) {
342
    unless ($exist_itemnumber) {
343
	    my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = AddItemFromMarc($record,$biblionumber);
343
	    my $item = AddItemFromMarc($record,$biblionumber);
344
        set_item_default_location($oldbibitemnum);
344
        set_item_default_location($item->{biblioitemnumber});
345
    }
345
    }
346
	$nextop = "additem";
346
	$nextop = "additem";
347
	if ($exist_itemnumber) {
347
	if ($exist_itemnumber) {
Lines 407-414 if ($op eq "additem") { Link Here
407
407
408
		# Adding the item
408
		# Adding the item
409
        if (!$exist_itemnumber) {
409
        if (!$exist_itemnumber) {
410
            my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = AddItemFromMarc($record,$biblionumber);
410
	        my $item = AddItemFromMarc($record,$biblionumber);
411
            set_item_default_location($oldbibitemnum);
411
            set_item_default_location($item->{biblioitemnumber});
412
412
413
            # We count the item only if it was really added
413
            # We count the item only if it was really added
414
            # That way, all items are added, even if there was some already existing barcodes
414
            # That way, all items are added, even if there was some already existing barcodes
Lines 498-504 if ($op eq "additem") { Link Here
498
    if ($exist_itemnumber && $exist_itemnumber != $itemnumber) {
498
    if ($exist_itemnumber && $exist_itemnumber != $itemnumber) {
499
        push @errors,"barcode_not_unique";
499
        push @errors,"barcode_not_unique";
500
    } else {
500
    } else {
501
        my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = ModItemFromMarc($itemtosave,$biblionumber,$itemnumber);
501
        ModItemFromMarc($itemtosave,$biblionumber,$itemnumber);
502
        $itemnumber="";
502
        $itemnumber="";
503
    }
503
    }
504
    $nextop="additem";
504
    $nextop="additem";
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt (-7 / +7 lines)
Lines 42-47 Link Here
42
            <p class="required">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</p>
42
            <p class="required">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</p>
43
        [% END %]
43
        [% END %]
44
44
45
        [% itemid = 1 %]
45
        [% FOREACH item IN items %]
46
        [% FOREACH item IN items %]
46
        <div id="outeritemblock">
47
        <div id="outeritemblock">
47
        <div id="itemblock">
48
        <div id="itemblock">
Lines 50-56 Link Here
50
                                
51
                                
51
                    <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
52
                    <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
52
                    [% iteminformatio.marc_value %]
53
                    [% iteminformatio.marc_value %]
53
                    <input type="hidden" name="itemid" value="1" />
54
                    <input type="hidden" name="itemid" value="[% itemid %]" />
54
                    <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield %]" />
55
                    <input type="hidden" name="kohafield" value="[% iteminformatio.kohafield %]" />
55
                    <input type="hidden" name="tag" value="[% iteminformatio.tag %]" />
56
                    <input type="hidden" name="tag" value="[% iteminformatio.tag %]" />
56
                    <input type="hidden" name="subfield" value="[% iteminformatio.subfield %]" />
57
                    <input type="hidden" name="subfield" value="[% iteminformatio.subfield %]" />
Lines 72-79 Link Here
72
        <input type="hidden" name="subfield" value="[% item.itemtagsubfield %]" />
73
        <input type="hidden" name="subfield" value="[% item.itemtagsubfield %]" />
73
        <input type="hidden" name="serial" value="[% item.serialid %]" />
74
        <input type="hidden" name="serial" value="[% item.serialid %]" />
74
        <input type="hidden" name="bibnum" value="[% item.biblionumber %]" />
75
        <input type="hidden" name="bibnum" value="[% item.biblionumber %]" />
75
        <input type="hidden" name="itemid" value="1" />
76
        <input type="hidden" name="itemid" value="[% itemid %]" />
76
        <input type="hidden" name="field_value" value="[% item.itemnumber %]" />
77
        <input type="hidden" name="field_value" value="[% item.itemnumber %]" />
78
        [% itemid = itemid + 1 %]
77
        [% END %] <!-- /items -->
79
        [% END %] <!-- /items -->
78
    </fieldset>
80
    </fieldset>
79
    [% END %] <!-- items -->
81
    [% END %] <!-- items -->
Lines 101-114 Link Here
101
            [% IF ( quantityreceived ) %]
103
            [% IF ( quantityreceived ) %]
102
                [% IF ( edit ) %]
104
                [% IF ( edit ) %]
103
                    <input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
105
                    <input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
104
                    <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
105
                [% ELSE %]
106
                [% ELSE %]
106
                [% IF ( items ) %]
107
                [% IF ( items ) %]
107
                    <input READONLY type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
108
                    <input READONLY type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
108
                [% ELSE %]
109
                [% ELSE %]
109
                    <input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceivedplus1 %]" />
110
                    <input type="text" size="20" name="quantityrec" id="quantity" value="[% quantityreceived %]" />
110
                [% END %]
111
                [% END %]
111
                <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="[% quantityreceived %]" />
112
                [% END %]
112
                [% END %]
113
            [% ELSE %]
113
            [% ELSE %]
114
                [% IF ( items ) %]
114
                [% IF ( items ) %]
Lines 116-123 Link Here
116
                [% ELSE %]
116
                [% ELSE %]
117
                    <input type="text" size="20" id="quantity" name="quantityrec" value="1" />
117
                    <input type="text" size="20" id="quantity" name="quantityrec" value="1" />
118
                [% END %]
118
                [% END %]
119
                <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
120
            [% END %]
119
            [% END %]
120
            <input id="origquantityrec" type="hidden" name="origquantityrec" value="[% origquantityrec %]" />
121
		</li>
121
		</li>
122
        <li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
122
        <li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
123
        <li><label for="ecost">Budgeted cost: </label><input type="text" size="20" name="ecost" id="ecost" value="[% ecost %]" /></li>
123
        <li><label for="ecost">Budgeted cost: </label><input type="text" size="20" name="ecost" id="ecost" value="[% ecost %]" /></li>
(-)a/t/db_dependent/lib/KohaTest.pm (-10 / +6 lines)
Lines 572-587 sub add_biblios { Link Here
572
        ok( $biblionumber, "the biblionumber is $biblionumber" );
572
        ok( $biblionumber, "the biblionumber is $biblionumber" );
573
        ok( $biblioitemnumber, "the biblioitemnumber is $biblioitemnumber" );
573
        ok( $biblioitemnumber, "the biblioitemnumber is $biblioitemnumber" );
574
        if ( $param{'add_items'} ) {
574
        if ( $param{'add_items'} ) {
575
            # my @iteminfo = AddItem( {}, $biblionumber );
575
            # my $item = AddItem( {}, $biblionumber );
576
            my @iteminfo = AddItemFromMarc( $marcrecord, $biblionumber );
576
            my $item = AddItemFromMarc( $marcrecord, $biblionumber );
577
            is( $iteminfo[0], $biblionumber,     "biblionumber is $biblionumber" );
577
            is( $item->{biblionumber},     "biblionumber is $biblionumber" );
578
            is( $iteminfo[1], $biblioitemnumber, "biblioitemnumber is $biblioitemnumber" );
578
            is( $item->{biblioitemnumber}, "biblioitemnumber is $biblioitemnumber" );
579
            ok( $iteminfo[2], "itemnumber is $iteminfo[2]" );
579
            ok( $item->{itemnumber}, "itemnumber is $item->{itemnumber}" );
580
        push @{ $self->{'items'} },
580
            push @{ $self->{'items'} }, $item;
581
          { biblionumber     => $iteminfo[0],
582
            biblioitemnumber => $iteminfo[1],
583
            itemnumber       => $iteminfo[2],
584
          };
585
        }
581
        }
586
        push @{$self->{'biblios'}}, $biblionumber;
582
        push @{$self->{'biblios'}}, $biblionumber;
587
    }
583
    }
(-)a/t/db_dependent/lib/KohaTest/Biblio/ModBiblio.pm (-3 / +3 lines)
Lines 31-40 sub add_bib_to_modify : Test( startup => 3 ) { Link Here
31
    $self->{'bib_to_modify'} = $bibnum;
31
    $self->{'bib_to_modify'} = $bibnum;
32
32
33
    # add an item
33
    # add an item
34
    my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum);
34
    my $item = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum);
35
35
36
    cmp_ok($item_bibnum, '==', $bibnum, "new item is linked to correct biblionumber"); 
36
    cmp_ok($item->{biblionumber}, '==', $bibnum, "new item is linked to correct biblionumber"); 
37
    cmp_ok($item_bibitemnum, '==', $bibitemnum, "new item is linked to correct biblioitemnumber"); 
37
    cmp_ok($item->{biblioitemnumber}, '==', $bibitemnum, "new item is linked to correct biblioitemnumber"); 
38
38
39
    $self->reindex_marc(); 
39
    $self->reindex_marc(); 
40
40
(-)a/tools/batchMod.pl (-2 / +1 lines)
Lines 173-179 if ($op eq "action") { Link Here
173
		    if ($values_to_modify || $values_to_blank) {
173
		    if ($values_to_modify || $values_to_blank) {
174
			my $localmarcitem = Item2Marc($itemdata);
174
			my $localmarcitem = Item2Marc($itemdata);
175
			UpdateMarcWith( $marcitem, $localmarcitem );
175
			UpdateMarcWith( $marcitem, $localmarcitem );
176
			eval{ my ( $oldbiblionumber, $oldbibnum, $oldbibitemnum ) = ModItemFromMarc( $localmarcitem, $itemdata->{biblionumber}, $itemnumber ) };
176
			eval{ ModItemFromMarc( $localmarcitem, $itemdata->{biblionumber}, $itemnumber ) };
177
		    }
177
		    }
178
		}
178
		}
179
		$i++;
179
		$i++;
180
- 

Return to bug 3966