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

(-)a/cataloguing/additem.pl (+14 lines)
Lines 32-37 use C4::Context; Link Here
32
use C4::Members;
32
use C4::Members;
33
use C4::Output qw( output_and_exit_if_error output_and_exit output_html_with_http_headers );
33
use C4::Output qw( output_and_exit_if_error output_and_exit output_html_with_http_headers );
34
use C4::Search qw( enabled_staff_search_views );
34
use C4::Search qw( enabled_staff_search_views );
35
use C4::Acquisition qw( GetOrderFromItemnumber );
35
use Koha::Biblios;
36
use Koha::Biblios;
36
use Koha::Item::Templates;
37
use Koha::Item::Templates;
37
use Koha::ItemTypes;
38
use Koha::ItemTypes;
Lines 42-47 use Koha::Patrons; Link Here
42
use Koha::SearchEngine::Indexer;
43
use Koha::SearchEngine::Indexer;
43
use Koha::UI::Form::Builder::Item;
44
use Koha::UI::Form::Builder::Item;
44
use Koha::Result::Boolean;
45
use Koha::Result::Boolean;
46
use Koha::Serial::Items;
47
use Koha::Subscriptions;
45
48
46
use Encode          qw( encode_utf8 );
49
use Encode          qw( encode_utf8 );
47
use List::MoreUtils qw( any uniq );
50
use List::MoreUtils qw( any uniq );
Lines 677-684 if ($op) { Link Here
677
# now, build existiing item list
680
# now, build existiing item list
678
681
679
my @items;
682
my @items;
683
my %warning_messages;
680
for my $item ( $biblio->items->as_list, $biblio->host_items->as_list ) {
684
for my $item ( $biblio->items->as_list, $biblio->host_items->as_list ) {
681
    my $i = $item->columns_to_str;
685
    my $i = $item->columns_to_str;
686
    my $i_order    = GetOrderFromItemnumber( $i->{itemnumber} );
687
    my $i_serialid = Koha::Serial::Items->find( { itemnumber => $i->{itemnumber} }, { prefetch => 'serialid' } );
688
    if ($i_order) {
689
        $warning_messages{ $i->{itemnumber} } =
690
            sprintf( 'There is an order (ordernumber %s) on this item', $i_order->{ordernumber} );
691
    }
692
    if ($i_serialid) {
693
        $warning_messages{ $i->{itemnumber} } = 'A subscription is linked to this item';
694
    }
682
    $i->{nomod} = 1 unless $patron->can_edit_items_from( $item->homebranch );
695
    $i->{nomod} = 1 unless $patron->can_edit_items_from( $item->homebranch );
683
    push @items, $i;
696
    push @items, $i;
684
}
697
}
Lines 804-809 $template->param( Link Here
804
    barcode          => $current_item->{barcode},
817
    barcode          => $current_item->{barcode},
805
    op               => $nextop,
818
    op               => $nextop,
806
    popup            => scalar $input->param('popup') ? 1 : 0,
819
    popup            => scalar $input->param('popup') ? 1 : 0,
820
    warning_messages => \%warning_messages,
807
    C4::Search::enabled_staff_search_views,
821
    C4::Search::enabled_staff_search_views,
808
);
822
);
809
$template->{'VARS'}->{'searchid'} = $searchid;
823
$template->{'VARS'}->{'searchid'} = $searchid;
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers.inc (-1 / +9 lines)
Lines 336-342 Link Here
336
            <tbody>
336
            <tbody>
337
                [% FOREACH item IN items %]
337
                [% FOREACH item IN items %]
338
                    [% SET can_be_edited = !item.nomod && !( Koha.Preference('IndependentBranches') && ! logged_in_user && item.homebranch != Branches.GetLoggedInBranchname() ) %]
338
                    [% SET can_be_edited = !item.nomod && !( Koha.Preference('IndependentBranches') && ! logged_in_user && item.homebranch != Branches.GetLoggedInBranchname() ) %]
339
339
                    [% SET current_itemnumber = item.itemnumber %]
340
                    [% SET linked_order = linked_orders_subscriptions.$current_itemnumber %]
341
                    [% SET linked_subscription = linked_orders_subscriptions.$current_itemnumber.subscription %]
340
                    <tr>
342
                    <tr>
341
                        <td>[% item.index + 1 | html %]</td>
343
                        <td>[% item.index + 1 | html %]</td>
342
                        [% IF checkboxes_edit %]
344
                        [% IF checkboxes_edit %]
Lines 357-362 Link Here
357
                            [% ELSE %]
359
                            [% ELSE %]
358
                                [% IF item.safe_to_delete %]
360
                                [% IF item.safe_to_delete %]
359
                                    <td><input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" checked="checked" /></td>
361
                                    <td><input type="checkbox" name="itemnumber" value="[% item.itemnumber | html %]" id="row[% item.itemnumber | html %]" checked="checked" /></td>
362
                                    [% IF linked_order.ordernumber %]
363
                                        <i class="fa fa-warning warn" Title="There is an order (ordernumber [% linked_order.ordernumber | html %]) on this item"></i>
364
                                    [% END %]
365
                                    [% IF linked_subscription %]
366
                                        <i class="fa fa-warning warn" Title="There is a subscription linked (subscription id [% linked_subscription | html %])"></i>
367
                                    [% END %]                               
360
                                [% ELSE %]
368
                                [% ELSE %]
361
                                    [% SET messages = item.safe_to_delete.messages %]
369
                                    [% SET messages = item.safe_to_delete.messages %]
362
                                    [% FOR m IN messages %]
370
                                    [% FOR m IN messages %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt (-1 / +8 lines)
Lines 115-120 Link Here
115
                    <tbody>
115
                    <tbody>
116
                        [% FOREACH item IN items %]
116
                        [% FOREACH item IN items %]
117
                            [% SET can_be_edited = ! ( Koha.Preference('IndependentBranches') && ! logged_in_user.is_superlibrarian && item.homebranch != Branches.GetLoggedInBranchname() ) %]
117
                            [% SET can_be_edited = ! ( Koha.Preference('IndependentBranches') && ! logged_in_user.is_superlibrarian && item.homebranch != Branches.GetLoggedInBranchname() ) %]
118
                            [% SET current_itemnumber = item.itemnumber %]
119
                            [% SET warn_message = warning_messages.$current_itemnumber %]
118
                            [% SET tr_class = '' %]
120
                            [% SET tr_class = '' %]
119
                            [% IF item.itemnumber == itemnumber AND op == 'cud-saveitem' %]
121
                            [% IF item.itemnumber == itemnumber AND op == 'cud-saveitem' %]
120
                                [% UNLESS can_be_edited %]
122
                                [% UNLESS can_be_edited %]
Lines 183-189 Link Here
183
                                                                <input type="hidden" name="itemnumber" value="[% item.itemnumber | html %]" />
185
                                                                <input type="hidden" name="itemnumber" value="[% item.itemnumber | html %]" />
184
                                                                <input type="hidden" name="searchid" value="[% searchid | html %]" />
186
                                                                <input type="hidden" name="searchid" value="[% searchid | html %]" />
185
                                                            </form>
187
                                                            </form>
186
                                                            <a class="dropdown-item delete" data-item="[% item.itemnumber | html %]" href="#">Delete</a>
188
                                                            <a class="dropdown-item delete" data-item="[% item.itemnumber | html %]" href="#">
189
                                                                Delete
190
                                                                [% IF warn_message %]
191
                                                                    <i class="fa fa-warning warn" Title="[% warn_message | html %]"></i>
192
                                                                [% END %]
193
                                                            </a>
187
                                                        </li>
194
                                                        </li>
188
                                                    [% END %]
195
                                                    [% END %]
189
                                                [% END %]
196
                                                [% END %]
(-)a/tools/batchMod.pl (-5 / +24 lines)
Lines 25-30 use C4::Auth qw( get_template_and_user haspermission ); Link Here
25
use C4::Output      qw( output_html_with_http_headers );
25
use C4::Output      qw( output_html_with_http_headers );
26
use C4::Circulation qw( barcodedecode );
26
use C4::Circulation qw( barcodedecode );
27
use C4::Context;
27
use C4::Context;
28
use C4::Acquisition qw( GetOrderFromItemnumber );
28
use MARC::File::XML;
29
use MARC::File::XML;
29
use List::MoreUtils qw( uniq );
30
use List::MoreUtils qw( uniq );
30
use Encode          qw( encode_utf8 );
31
use Encode          qw( encode_utf8 );
Lines 39-44 use Koha::BackgroundJob::BatchDeleteItem; Link Here
39
use Koha::BackgroundJob::BatchUpdateItem;
40
use Koha::BackgroundJob::BatchUpdateItem;
40
use Koha::UI::Form::Builder::Item;
41
use Koha::UI::Form::Builder::Item;
41
use Koha::UI::Table::Builder::Items;
42
use Koha::UI::Table::Builder::Items;
43
use Koha::Serial::Items;
44
use Koha::Serials;
42
45
43
my $input                             = CGI->new;
46
my $input                             = CGI->new;
44
my $dbh                               = C4::Context->dbh;
47
my $dbh                               = C4::Context->dbh;
Lines 87-92 my $nextop = ""; Link Here
87
my $display_items;
90
my $display_items;
88
91
89
my @messages;
92
my @messages;
93
my %linked_orders_subscriptions;
90
94
91
if ( $op eq "cud-action" ) {
95
if ( $op eq "cud-action" ) {
92
96
Lines 231-237 if ( $op eq "cud-show" || $op eq "show" ) { Link Here
231
    } else {
235
    } else {
232
        if ( defined $biblionumber && !@itemnumbers ) {
236
        if ( defined $biblionumber && !@itemnumbers ) {
233
            my $biblio = Koha::Biblios->find($biblionumber);
237
            my $biblio = Koha::Biblios->find($biblionumber);
234
            @itemnumbers = $biblio ? $biblio->items->get_column('itemnumber') : ();
238
            if(!@itemnumbers) {
239
                @itemnumbers = $biblio ? $biblio->items->get_column('itemnumber') : ();
240
            }
241
            foreach my $itemnumber (@itemnumbers) {
242
                $linked_orders_subscriptions{$itemnumber} = [];
243
                my $order     = GetOrderFromItemnumber($itemnumber);
244
                my $serial_id = Koha::Serial::Items->search( { itemnumber => $itemnumber } )->get_column('serialid');
245
                if ($order) {
246
                    $linked_orders_subscriptions{$itemnumber} =
247
                        { ordernumber => $order->{ordernumber}, basket => $order->{basketno} };
248
                }
249
                if ($serial_id) {
250
                    my $subscription_id = Koha::Serials->search( { serialid => $serial_id } )->get_column('subscriptionid');
251
                    $linked_orders_subscriptions{$itemnumber} = { subscription => $subscription_id };
252
                }
253
            }
235
        }
254
        }
236
        if ( my $list = $input->param('barcodelist') ) {
255
        if ( my $list = $input->param('barcodelist') ) {
237
            my @barcodelist = grep /\S/, ( split /[$split_chars]/, $list );
256
            my @barcodelist = grep /\S/, ( split /[$split_chars]/, $list );
Lines 295-303 if ( $op eq "cud-show" || $op eq "show" ) { Link Here
295
314
296
    # what's the next op ? it's what we are not in : an add if we're editing, otherwise, and edit.
315
    # what's the next op ? it's what we are not in : an add if we're editing, otherwise, and edit.
297
    $template->param(
316
    $template->param(
298
        subfields           => $subfields,
317
        subfields                   => $subfields,
299
        notfoundbarcodes    => \@notfoundbarcodes,
318
        notfoundbarcodes            => \@notfoundbarcodes,
300
        notfounditemnumbers => \@notfounditemnumbers
319
        notfounditemnumbers         => \@notfounditemnumbers,
320
        linked_orders_subscriptions => \%linked_orders_subscriptions,
301
    );
321
    );
302
    $nextop = "cud-action";
322
    $nextop = "cud-action";
303
    $template->param( show => 1 );
323
    $template->param( show => 1 );
304
- 

Return to bug 13870