Lines 84-89
my $deleted_items = 0; # Number of deleted items
Link Here
|
84 |
my $deleted_records = 0; # Number of deleted records ( with no items attached ) |
84 |
my $deleted_records = 0; # Number of deleted records ( with no items attached ) |
85 |
my $not_deleted_items = 0; # Number of items that could not be deleted |
85 |
my $not_deleted_items = 0; # Number of items that could not be deleted |
86 |
my @not_deleted; # List of the itemnumbers that could not be deleted |
86 |
my @not_deleted; # List of the itemnumbers that could not be deleted |
|
|
87 |
my $modified_items = 0; # Numbers of modified items |
88 |
my $modified_fields = 0; # Numbers of modified fields |
87 |
|
89 |
|
88 |
my %cookies = parse CGI::Cookie($cookie); |
90 |
my %cookies = parse CGI::Cookie($cookie); |
89 |
my $sessionID = $cookies{'CGISESSID'}->value; |
91 |
my $sessionID = $cookies{'CGISESSID'}->value; |
Lines 160-166
if ($op eq "action") {
Link Here
|
160 |
|
162 |
|
161 |
$job->progress($i) if $runinbackground; |
163 |
$job->progress($i) if $runinbackground; |
162 |
my $itemdata = GetItem($itemnumber); |
164 |
my $itemdata = GetItem($itemnumber); |
163 |
if ($input->param("del")){ |
165 |
if ( $del ){ |
164 |
my $return = DelItemCheck(C4::Context->dbh, $itemdata->{'biblionumber'}, $itemdata->{'itemnumber'}); |
166 |
my $return = DelItemCheck(C4::Context->dbh, $itemdata->{'biblionumber'}, $itemdata->{'itemnumber'}); |
165 |
if ($return == 1) { |
167 |
if ($return == 1) { |
166 |
$deleted_items++; |
168 |
$deleted_items++; |
Lines 184-197
if ($op eq "action") {
Link Here
|
184 |
} |
186 |
} |
185 |
} |
187 |
} |
186 |
} else { |
188 |
} else { |
187 |
if ($values_to_modify || $values_to_blank) { |
189 |
if ($values_to_modify || $values_to_blank) { |
188 |
my $localmarcitem = Item2Marc($itemdata); |
190 |
my $localmarcitem = Item2Marc($itemdata); |
189 |
UpdateMarcWith( $marcitem, $localmarcitem ); |
191 |
|
190 |
eval{ |
192 |
my $modified = UpdateMarcWith( $marcitem, $localmarcitem ); |
191 |
if ( my $item = ModItemFromMarc( $localmarcitem, $itemdata->{biblionumber}, $itemnumber ) ) { |
193 |
if ( $modified ) { |
192 |
LostItem($itemnumber, 'MARK RETURNED', 'CHARGE FEE') if $item->{itemlost}; |
194 |
eval { |
193 |
} |
195 |
if ( my $item = ModItemFromMarc( $localmarcitem, $itemdata->{biblionumber}, $itemnumber ) ) { |
194 |
}; |
196 |
LostItem($itemnumber, 'MARK RETURNED', 'CHARGE FEE') if $item->{itemlost}; |
|
|
197 |
} |
198 |
}; |
199 |
} |
200 |
if ( $runinbackground ) { |
201 |
$modified_items++ if $modified; |
202 |
$modified_fields += $modified; |
203 |
$job->set({ |
204 |
modified_items => $modified_items, |
205 |
modified_fields => $modified_fields, |
206 |
}); |
207 |
} |
195 |
} |
208 |
} |
196 |
} |
209 |
} |
197 |
$i++; |
210 |
$i++; |
Lines 559-579
sub BuildItemsData{
Link Here
|
559 |
# And $tag>10 |
572 |
# And $tag>10 |
560 |
sub UpdateMarcWith { |
573 |
sub UpdateMarcWith { |
561 |
my ($marcfrom,$marcto)=@_; |
574 |
my ($marcfrom,$marcto)=@_; |
562 |
#warn "FROM :",$marcfrom->as_formatted; |
575 |
my ( $itemtag, $itemtagsubfield) = &GetMarcFromKohaField("items.itemnumber", ""); |
563 |
my ( $itemtag, $itemtagsubfield) = &GetMarcFromKohaField("items.itemnumber", ""); |
576 |
my $fieldfrom=$marcfrom->field($itemtag); |
564 |
my $fieldfrom=$marcfrom->field($itemtag); |
577 |
my @fields_to=$marcto->field($itemtag); |
565 |
my @fields_to=$marcto->field($itemtag); |
578 |
my $modified = 0; |
566 |
foreach my $subfield ($fieldfrom->subfields()){ |
579 |
foreach my $subfield ( $fieldfrom->subfields() ) { |
567 |
foreach my $field_to_update (@fields_to){ |
580 |
foreach my $field_to_update ( @fields_to ) { |
568 |
if ($subfield->[1]){ |
581 |
if ( $subfield->[1] ) { |
569 |
$field_to_update->update($subfield->[0]=>$subfield->[1]); |
582 |
unless ( $field_to_update->subfield($subfield->[0]) ~~ $subfield->[1] ) { |
570 |
} |
583 |
$modified++; |
571 |
else { |
584 |
$field_to_update->update( $subfield->[0] => $subfield->[1] ); |
572 |
$field_to_update->delete_subfield(code=> $subfield->[0]); |
585 |
} |
573 |
} |
586 |
} |
574 |
} |
587 |
else { |
|
|
588 |
$modified++; |
589 |
$field_to_update->delete_subfield( code => $subfield->[0] ); |
590 |
} |
591 |
} |
575 |
} |
592 |
} |
576 |
#warn "TO edited:",$marcto->as_formatted; |
593 |
return $modified; |
577 |
} |
594 |
} |
578 |
|
595 |
|
579 |
sub find_value { |
596 |
sub find_value { |
Lines 608-613
sub add_saved_job_results_to_template {
Link Here
|
608 |
my $job = C4::BackgroundJob->fetch($sessionID, $completedJobID); |
625 |
my $job = C4::BackgroundJob->fetch($sessionID, $completedJobID); |
609 |
my $results = $job->results(); |
626 |
my $results = $job->results(); |
610 |
add_results_to_template($template, $results); |
627 |
add_results_to_template($template, $results); |
|
|
628 |
|
629 |
my $fields = $job->get("modified_fields"); |
630 |
my $items = $job->get("modified_items"); |
631 |
$template->param( |
632 |
modified_items => $items, |
633 |
modified_fields => $fields, |
634 |
); |
611 |
} |
635 |
} |
612 |
|
636 |
|
613 |
sub put_in_background { |
637 |
sub put_in_background { |
614 |
- |
|
|