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

(-)a/C4/Auth.pm (-2 / +2 lines)
Lines 1514-1520 sub getuserflags { Link Here
1514
            $userflags->{$flag} = 0;
1514
            $userflags->{$flag} = 0;
1515
        }
1515
        }
1516
    }
1516
    }
1517
1518
    # get subpermissions and merge with top-level permissions
1517
    # get subpermissions and merge with top-level permissions
1519
    my $user_subperms = get_user_subpermissions($userid);
1518
    my $user_subperms = get_user_subpermissions($userid);
1520
    foreach my $module (keys %$user_subperms) {
1519
    foreach my $module (keys %$user_subperms) {
Lines 1610-1616 sub haspermission { Link Here
1610
    my ($userid, $flagsrequired) = @_;
1609
    my ($userid, $flagsrequired) = @_;
1611
    my $sth = C4::Context->dbh->prepare("SELECT flags FROM borrowers WHERE userid=?");
1610
    my $sth = C4::Context->dbh->prepare("SELECT flags FROM borrowers WHERE userid=?");
1612
    $sth->execute($userid);
1611
    $sth->execute($userid);
1613
    my $flags = getuserflags($sth->fetchrow(), $userid);
1612
    my $row = $sth->fetchrow();
1613
    my $flags = getuserflags($row, $userid);
1614
    if ( $userid eq C4::Context->config('user') ) {
1614
    if ( $userid eq C4::Context->config('user') ) {
1615
        # Super User Account from /etc/koha.conf
1615
        # Super User Account from /etc/koha.conf
1616
        $flags->{'superlibrarian'} = 1;
1616
        $flags->{'superlibrarian'} = 1;
(-)a/C4/Serials.pm (-66 / +46 lines)
Lines 20-25 package C4::Serials; Link Here
20
20
21
use strict;
21
use strict;
22
use warnings;
22
use warnings;
23
use C4::Context;
23
use C4::Dates qw(format_date format_date_in_iso);
24
use C4::Dates qw(format_date format_date_in_iso);
24
use Date::Calc qw(:all);
25
use Date::Calc qw(:all);
25
use POSIX qw(strftime);
26
use POSIX qw(strftime);
Lines 206-220 sub GetSerialInformation { Link Here
206
    my ($serialid) = @_;
207
    my ($serialid) = @_;
207
    my $dbh        = C4::Context->dbh;
208
    my $dbh        = C4::Context->dbh;
208
    my $query      = qq|
209
    my $query      = qq|
209
        SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid |;
210
        SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid
210
    if (   C4::Context->preference('IndependantBranches')
211
        && C4::Context->userenv
212
        && C4::Context->userenv->{'flags'} != 1
213
        && C4::Context->userenv->{'branch'} ) {
214
        $query .= "
215
      , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit ";
216
    }
217
    $query .= qq|             
218
        FROM   serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid
211
        FROM   serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid
219
        WHERE  serialid = ?
212
        WHERE  serialid = ?
220
    |;
213
    |;
Lines 253-258 sub GetSerialInformation { Link Here
253
    $data->{ "status" . $data->{'serstatus'} } = 1;
246
    $data->{ "status" . $data->{'serstatus'} } = 1;
254
    $data->{'subscriptionexpired'} = HasSubscriptionExpired( $data->{'subscriptionid'} ) && $data->{'status'} == 1;
247
    $data->{'subscriptionexpired'} = HasSubscriptionExpired( $data->{'subscriptionid'} ) && $data->{'status'} == 1;
255
    $data->{'abouttoexpire'} = abouttoexpire( $data->{'subscriptionid'} );
248
    $data->{'abouttoexpire'} = abouttoexpire( $data->{'subscriptionid'} );
249
    $data->{cannotedit} = not can_edit_subscription( $data );
256
    return $data;
250
    return $data;
257
}
251
}
258
252
Lines 311-325 sub GetSubscription { Link Here
311
                subscriptionhistory.*,
305
                subscriptionhistory.*,
312
                aqbooksellers.name AS aqbooksellername,
306
                aqbooksellers.name AS aqbooksellername,
313
                biblio.title AS bibliotitle,
307
                biblio.title AS bibliotitle,
314
                subscription.biblionumber as bibnum);
308
                subscription.biblionumber as bibnum
315
    if (   C4::Context->preference('IndependantBranches')
316
        && C4::Context->userenv
317
        && C4::Context->userenv->{'flags'} != 1
318
        && C4::Context->userenv->{'branch'} ) {
319
        $query .= "
320
      , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit ";
321
    }
322
    $query .= qq(             
323
       FROM subscription
309
       FROM subscription
324
       LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid
310
       LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid
325
       LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id
311
       LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id
Lines 327-342 sub GetSubscription { Link Here
327
       WHERE subscription.subscriptionid = ?
313
       WHERE subscription.subscriptionid = ?
328
    );
314
    );
329
315
330
    #     if (C4::Context->preference('IndependantBranches') &&
331
    #         C4::Context->userenv &&
332
    #         C4::Context->userenv->{'flags'} != 1){
333
    # #       $debug and warn "flags: ".C4::Context->userenv->{'flags'};
334
    #       $query.=" AND subscription.branchcode IN ('".C4::Context->userenv->{'branch'}."',\"\")";
335
    #     }
336
    $debug and warn "query : $query\nsubsid :$subscriptionid";
316
    $debug and warn "query : $query\nsubsid :$subscriptionid";
337
    my $sth = $dbh->prepare($query);
317
    my $sth = $dbh->prepare($query);
338
    $sth->execute($subscriptionid);
318
    $sth->execute($subscriptionid);
339
    return $sth->fetchrow_hashref;
319
    my $subscription = $sth->fetchrow_hashref;
320
    $subscription->{cannotedit} = not can_edit_subscription( $subscription );
321
    return $subscription;
340
}
322
}
341
323
342
=head2 GetFullSubscription
324
=head2 GetFullSubscription
Lines 360-374 sub GetFullSubscription { Link Here
360
            aqbooksellers.name as aqbooksellername,
342
            aqbooksellers.name as aqbooksellername,
361
            biblio.title as bibliotitle,
343
            biblio.title as bibliotitle,
362
            subscription.branchcode AS branchcode,
344
            subscription.branchcode AS branchcode,
363
            subscription.subscriptionid AS subscriptionid |;
345
            subscription.subscriptionid AS subscriptionid
364
    if (   C4::Context->preference('IndependantBranches')
365
        && C4::Context->userenv
366
        && C4::Context->userenv->{'flags'} != 1
367
        && C4::Context->userenv->{'branch'} ) {
368
        $query .= "
369
      , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit ";
370
    }
371
    $query .= qq|
372
  FROM      serial 
346
  FROM      serial 
373
  LEFT JOIN subscription ON 
347
  LEFT JOIN subscription ON 
374
          (serial.subscriptionid=subscription.subscriptionid )
348
          (serial.subscriptionid=subscription.subscriptionid )
Lines 382-388 sub GetFullSubscription { Link Here
382
    $debug and warn "GetFullSubscription query: $query";
356
    $debug and warn "GetFullSubscription query: $query";
383
    my $sth = $dbh->prepare($query);
357
    my $sth = $dbh->prepare($query);
384
    $sth->execute($subscriptionid);
358
    $sth->execute($subscriptionid);
385
    return $sth->fetchall_arrayref( {} );
359
    my $subscriptions = $sth->fetchall_arrayref( {} );
360
    for my $subscription ( @$subscriptions ) {
361
        $subscription->{cannotedit} = not can_edit_subscription( $subscription );
362
    }
363
    return $subscriptions;
386
}
364
}
387
365
388
=head2 PrepareSerialsData
366
=head2 PrepareSerialsData
Lines 480-492 sub GetSubscriptionsFromBiblionumber { Link Here
480
        $subs->{ "periodicity" . $subs->{periodicity} }     = 1;
458
        $subs->{ "periodicity" . $subs->{periodicity} }     = 1;
481
        $subs->{ "numberpattern" . $subs->{numberpattern} } = 1;
459
        $subs->{ "numberpattern" . $subs->{numberpattern} } = 1;
482
        $subs->{ "status" . $subs->{'status'} }             = 1;
460
        $subs->{ "status" . $subs->{'status'} }             = 1;
483
        $subs->{'cannotedit'} =
484
          (      C4::Context->preference('IndependantBranches')
485
              && C4::Context->userenv
486
              && C4::Context->userenv->{flags} % 2 != 1
487
              && C4::Context->userenv->{branch}
488
              && $subs->{branchcode}
489
              && ( C4::Context->userenv->{branch} ne $subs->{branchcode} ) );
490
461
491
        if ( $subs->{enddate} eq '0000-00-00' ) {
462
        if ( $subs->{enddate} eq '0000-00-00' ) {
492
            $subs->{enddate} = '';
463
            $subs->{enddate} = '';
Lines 495-500 sub GetSubscriptionsFromBiblionumber { Link Here
495
        }
466
        }
496
        $subs->{'abouttoexpire'}       = abouttoexpire( $subs->{'subscriptionid'} );
467
        $subs->{'abouttoexpire'}       = abouttoexpire( $subs->{'subscriptionid'} );
497
        $subs->{'subscriptionexpired'} = HasSubscriptionExpired( $subs->{'subscriptionid'} );
468
        $subs->{'subscriptionexpired'} = HasSubscriptionExpired( $subs->{'subscriptionid'} );
469
        $subs->{cannotedit} = not can_edit_subscription( $subs );
498
        push @res, $subs;
470
        push @res, $subs;
499
    }
471
    }
500
    return \@res;
472
    return \@res;
Lines 520-535 sub GetFullSubscriptionsFromBiblionumber { Link Here
520
            year(IF(serial.publisheddate="00-00-0000",serial.planneddate,serial.publisheddate)) as year,
492
            year(IF(serial.publisheddate="00-00-0000",serial.planneddate,serial.publisheddate)) as year,
521
            biblio.title as bibliotitle,
493
            biblio.title as bibliotitle,
522
            subscription.branchcode AS branchcode,
494
            subscription.branchcode AS branchcode,
523
            subscription.subscriptionid AS subscriptionid|;
495
            subscription.subscriptionid AS subscriptionid
524
    if (   C4::Context->preference('IndependantBranches')
525
        && C4::Context->userenv
526
        && C4::Context->userenv->{'flags'} != 1
527
        && C4::Context->userenv->{'branch'} ) {
528
        $query .= "
529
      , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit ";
530
    }
531
532
    $query .= qq|      
533
  FROM      serial 
496
  FROM      serial 
534
  LEFT JOIN subscription ON 
497
  LEFT JOIN subscription ON 
535
          (serial.subscriptionid=subscription.subscriptionid)
498
          (serial.subscriptionid=subscription.subscriptionid)
Lines 542-548 sub GetFullSubscriptionsFromBiblionumber { Link Here
542
          |;
505
          |;
543
    my $sth = $dbh->prepare($query);
506
    my $sth = $dbh->prepare($query);
544
    $sth->execute($biblionumber);
507
    $sth->execute($biblionumber);
545
    return $sth->fetchall_arrayref( {} );
508
    my $subscriptions = $sth->fetchall_arrayref( {} );
509
    for my $subscription ( @$subscriptions ) {
510
        $subscription->{cannotedit} = not can_edit_subscription( $subscription );
511
    }
512
    return $subscriptions;
546
}
513
}
547
514
548
=head2 GetSubscriptions
515
=head2 GetSubscriptions
Lines 617-635 sub GetSubscriptions { Link Here
617
    $debug and warn "GetSubscriptions query: $sql params : ", join( " ", @bind_params );
584
    $debug and warn "GetSubscriptions query: $sql params : ", join( " ", @bind_params );
618
    $sth = $dbh->prepare($sql);
585
    $sth = $dbh->prepare($sql);
619
    $sth->execute(@bind_params);
586
    $sth->execute(@bind_params);
620
    my @results;
587
    my $subscriptions = $sth->fetchall_arrayref( {} );
621
588
    for my $subscription ( @$subscriptions ) {
622
    while ( my $line = $sth->fetchrow_hashref ) {
589
        $subscription->{cannotedit} = not can_edit_subscription( $subscription );
623
        $line->{'cannotedit'} =
590
    }
624
          (      C4::Context->preference('IndependantBranches')
591
    return @$subscriptions;
625
              && C4::Context->userenv
626
              && C4::Context->userenv->{flags} % 2 != 1
627
              && C4::Context->userenv->{branch}
628
              && $line->{branchcode}
629
              && ( C4::Context->userenv->{branch} ne $line->{branchcode} ) );
630
        push @results, $line;
631
    }
632
    return @results;
633
}
592
}
634
593
635
=head2 SearchSubscriptions
594
=head2 SearchSubscriptions
Lines 696-701 sub SearchSubscriptions { Link Here
696
    my $results = $sth->fetchall_arrayref( {} );
655
    my $results = $sth->fetchall_arrayref( {} );
697
    $sth->finish;
656
    $sth->finish;
698
657
658
    for my $subscription ( @$results ) {
659
        $subscription->{cannotedit} = not can_edit_subscription( $subscription );
660
    }
661
699
    return @$results;
662
    return @$results;
700
}
663
}
701
664
Lines 2465-2470 sub is_barcode_in_use { Link Here
2465
    return @{$occurences};
2428
    return @{$occurences};
2466
}
2429
}
2467
2430
2431
sub can_edit_subscription {
2432
    my ( $subscription, $userid ) = @_;
2433
    my $flags = C4::Context->userenv->{flags};
2434
    $userid ||= C4::Context->userenv->{'id'};
2435
    my $independant_branches = C4::Context->preference('IndependantBranches');
2436
    return 1 unless $independant_branches;
2437
    if( $flags % 2 == 1
2438
        or C4::Auth::haspermission( $userid, {serials => 'superserials'}),
2439
        or not defined $subscription->{branchcode}
2440
        or $subscription->{branchcode} eq ''
2441
        or $subscription->{branchcode} eq C4::Context->userenv->{'branch'}
2442
    ) {
2443
        return 1;
2444
    }
2445
     return 0;
2446
}
2447
2468
1;
2448
1;
2469
__END__
2449
__END__
2470
2450
(-)a/installer/data/mysql/de-DE/mandatory/userpermissions.sql (+1 lines)
Lines 50-55 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
50
   (15, 'receive_serials', 'Zugang von Heften'),
50
   (15, 'receive_serials', 'Zugang von Heften'),
51
   (15, 'renew_subscription', 'Abonnements verlängern'),
51
   (15, 'renew_subscription', 'Abonnements verlängern'),
52
   (15, 'routing', 'Umlauflisten verwalten'),
52
   (15, 'routing', 'Umlauflisten verwalten'),
53
   (15, 'superserials', 'Manage subscriptions from any branch'),
53
   (16, 'execute_reports', 'SQL-Reports ausführen'),
54
   (16, 'execute_reports', 'SQL-Reports ausführen'),
54
   (16, 'create_reports', 'SQL-Reports erstellen')
55
   (16, 'create_reports', 'SQL-Reports erstellen')
55
;
56
;
(-)a/installer/data/mysql/en/mandatory/userpermissions.sql (+1 lines)
Lines 50-55 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
50
   (15, 'receive_serials', 'Serials receiving'),
50
   (15, 'receive_serials', 'Serials receiving'),
51
   (15, 'renew_subscription', 'Renew a subscription'),
51
   (15, 'renew_subscription', 'Renew a subscription'),
52
   (15, 'routing', 'Routing'),
52
   (15, 'routing', 'Routing'),
53
   (15, 'superserials', 'Manage subscriptions from any branch'),
53
   (16, 'execute_reports', 'Execute SQL reports'),
54
   (16, 'execute_reports', 'Execute SQL reports'),
54
   (16, 'create_reports', 'Create SQL Reports')
55
   (16, 'create_reports', 'Create SQL Reports')
55
;
56
;
(-)a/installer/data/mysql/es-ES/mandatory/userpermissions.sql (+1 lines)
Lines 50-55 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
50
   (15, 'receive_serials', 'Serials receiving'),
50
   (15, 'receive_serials', 'Serials receiving'),
51
   (15, 'renew_subscription', 'Renew a subscription'),
51
   (15, 'renew_subscription', 'Renew a subscription'),
52
   (15, 'routing', 'Routing'),
52
   (15, 'routing', 'Routing'),
53
   (15, 'superserials', 'Manage subscriptions from any branch'),
53
   (16, 'execute_reports', 'Execute SQL reports'),
54
   (16, 'execute_reports', 'Execute SQL reports'),
54
   (16, 'create_reports', 'Create SQL Reports')
55
   (16, 'create_reports', 'Create SQL Reports')
55
;
56
;
(-)a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql (+1 lines)
Lines 50-55 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
50
   (15, 'receive_serials', 'Bulletiner les périodiques'),
50
   (15, 'receive_serials', 'Bulletiner les périodiques'),
51
   (15, 'renew_subscription', 'Renouveler les abonnements'),
51
   (15, 'renew_subscription', 'Renouveler les abonnements'),
52
   (15, 'routing', 'Mettre en circulation'),
52
   (15, 'routing', 'Mettre en circulation'),
53
   (15, 'superserials', 'Manage subscriptions from any branch'),
53
   (16, 'execute_reports', 'Lancer les rapports SQL'),
54
   (16, 'execute_reports', 'Lancer les rapports SQL'),
54
   (16, 'create_reports', 'Créer les rapports SQL Reports')
55
   (16, 'create_reports', 'Créer les rapports SQL Reports')
55
56
(-)a/installer/data/mysql/it-IT/necessari/userpermissions.sql (+1 lines)
Lines 52-57 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
52
   (15, 'receive_serials', 'Ricevi fascicoli'),
52
   (15, 'receive_serials', 'Ricevi fascicoli'),
53
   (15, 'renew_subscription', 'Rinnova un abbonamento'),
53
   (15, 'renew_subscription', 'Rinnova un abbonamento'),
54
   (15, 'routing', 'Crea/Manipola liste di distribuzione dei fascicoli ( routing list)'),
54
   (15, 'routing', 'Crea/Manipola liste di distribuzione dei fascicoli ( routing list)'),
55
   (15, 'superserials', 'Manage subscriptions from any branch'),
55
   (16, 'execute_reports', 'Esegui reports SQL'),
56
   (16, 'execute_reports', 'Esegui reports SQL'),
56
   (16, 'create_reports', 'Crea reports SQL')
57
   (16, 'create_reports', 'Crea reports SQL')
57
;
58
;
(-)a/installer/data/mysql/nb-NO/1-Obligatorisk/userpermissions.sql (+1 lines)
Lines 71-76 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
71
   (15, 'receive_serials', 'Heftemottak'),
71
   (15, 'receive_serials', 'Heftemottak'),
72
   (15, 'renew_subscription', 'Fornye abonnementer'),
72
   (15, 'renew_subscription', 'Fornye abonnementer'),
73
   (15, 'routing', 'Sirkulasjon'),
73
   (15, 'routing', 'Sirkulasjon'),
74
   (15, 'superserials', 'Manage subscriptions from any branch'),
74
   (16, 'execute_reports', 'Kjøre SQL-rapporter'),
75
   (16, 'execute_reports', 'Kjøre SQL-rapporter'),
75
   (16, 'create_reports', 'Opprette SQL-rapporter')
76
   (16, 'create_reports', 'Opprette SQL-rapporter')
76
;
77
;
(-)a/installer/data/mysql/pl-PL/mandatory/userpermissions.sql (+1 lines)
Lines 51-56 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
51
   (15, 'receive_serials', 'Serials receiving'),
51
   (15, 'receive_serials', 'Serials receiving'),
52
   (15, 'renew_subscription', 'Renew a subscription'),
52
   (15, 'renew_subscription', 'Renew a subscription'),
53
   (15, 'routing', 'Routing'),
53
   (15, 'routing', 'Routing'),
54
   (15, 'superserials', 'Manage subscriptions from any branch'),
54
   (16, 'execute_reports', 'Execute SQL reports'),
55
   (16, 'execute_reports', 'Execute SQL reports'),
55
   (16, 'create_reports', 'Create SQL Reports')
56
   (16, 'create_reports', 'Create SQL Reports')
56
;
57
;
(-)a/installer/data/mysql/updatedatabase.pl (+7 lines)
Lines 6049-6054 if (C4::Context->preference("Version") < TransformToNum($DBversion)) { Link Here
6049
}
6049
}
6050
6050
6051
6051
6052
$DBversion = "3.09.00.XXX";
6053
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
6054
    $dbh->do("INSERT INTO permissions (module_bit, code, description) VALUES(15, 'superserials', 'Manage subscriptions from any branch')");
6055
    print "Upgrade to $DBversion done (Add superserials permission)\n";
6056
    SetVersion($DBversion);
6057
}
6058
6052
=head1 FUNCTIONS
6059
=head1 FUNCTIONS
6053
6060
6054
=head2 TableExists($table)
6061
=head2 TableExists($table)
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc (-3 / +3 lines)
Lines 18-30 Link Here
18
    [% IF ( subscriptionid ) %]
18
    [% IF ( subscriptionid ) %]
19
	    var editmenu = [
19
	    var editmenu = [
20
	        [% IF ( CAN_user_serials_edit_subscription ) %]
20
	        [% IF ( CAN_user_serials_edit_subscription ) %]
21
            { text: _("Edit subscription"),  [% IF ( cannotedit ) %]disabled: true, [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=modify&amp;subscriptionid=[% subscriptionid %]" },
21
            { text: _("Edit subscription"),  [% IF ( cannotedit ) %]id:'disabled', [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=modify&amp;subscriptionid=[% subscriptionid %]" },
22
		[% END %]
22
		[% END %]
23
	        [% IF ( CAN_user_serials_create_subscription ) %]
23
	        [% IF ( CAN_user_serials_create_subscription ) %]
24
            { text: _("Edit as new (duplicate)"), [% IF ( cannotedit ) %]disabled: true, [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=dup&amp;subscriptionid=[% subscriptionid %]" },
24
            { text: _("Edit as new (duplicate)"), [% IF ( cannotedit ) %]id:'disabled', [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=dup&amp;subscriptionid=[% subscriptionid %]" },
25
		[% END %]
25
		[% END %]
26
	        [% IF ( CAN_user_serials_delete_subscription ) %]
26
	        [% IF ( CAN_user_serials_delete_subscription ) %]
27
            { text: _("Delete subscription"), [% IF ( cannotedit ) %]disabled: true, [% END %] onclick: {fn: confirm_deletion }}
27
            { text: _("Delete subscription"), [% IF ( cannotedit ) %]id:'disabled', [% END %] onclick: {fn: confirm_deletion }}
28
		[% END %]
28
		[% END %]
29
	    ];
29
	    ];
30
	 [% END %]
30
	 [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt (-5 / +5 lines)
Lines 85-91 Link Here
85
      </div>
85
      </div>
86
      [% END %]
86
      [% END %]
87
      [% IF ( done_searched ) %]
87
      [% IF ( done_searched ) %]
88
        [% IF ( subscriptions ) %]
88
        [% IF ( subscriptions and size ) %]
89
          <table id="srlt">
89
          <table id="srlt">
90
            <thead>
90
            <thead>
91
              <tr>
91
              <tr>
Lines 117-122 Link Here
117
            </tfoot>
117
            </tfoot>
118
            <tbody>
118
            <tbody>
119
              [% FOREACH subscription IN subscriptions %]
119
              [% FOREACH subscription IN subscriptions %]
120
              [% UNLESS subscription.cannotedit %]
120
                <tr>
121
                <tr>
121
                  <td>
122
                  <td>
122
                  [% IF ( subscription.issn ) %][% subscription.issn %]
123
                  [% IF ( subscription.issn ) %][% subscription.issn %]
Lines 153-166 Link Here
153
                  <td><a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]">Issue history</a>
154
                  <td><a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]">Issue history</a>
154
                  </td>
155
                  </td>
155
                  <td>
156
                  <td>
156
                  [% IF ( subscription.cannotedit ) %]
157
                  [% IF ( CAN_user_serials_receive_serials ) %]
157
                    &nbsp;
158
                    <a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&amp;serstatus=1,3,7">Serial receive</a>
158
                  [% ELSE %]
159
                    [% IF ( CAN_user_serials_receive_serials ) %]<a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&amp;serstatus=1,3,7">Serial receive</a>[% END %]
160
                  [% END %]
159
                  [% END %]
161
                  </td>
160
                  </td>
162
                </tr>
161
                </tr>
163
              [% END %]
162
              [% END %]
163
              [% END %]
164
            </tbody>
164
            </tbody>
165
          </table>
165
          </table>
166
        [% ELSE %]
166
        [% ELSE %]
(-)a/serials/serials-collection.pl (-2 / +2 lines)
Lines 37-44 my $op = $query->param('op') || q{}; Link Here
37
my $nbissues=$query->param('nbissues');
37
my $nbissues=$query->param('nbissues');
38
my $dbh = C4::Context->dbh;
38
my $dbh = C4::Context->dbh;
39
39
40
my ($template, $loggedinuser, $cookie);
40
my ($template, $loggedinuser, $cookie)
41
($template, $loggedinuser, $cookie)
42
  = get_template_and_user({template_name => "serials/serials-collection.tmpl",
41
  = get_template_and_user({template_name => "serials/serials-collection.tmpl",
43
                            query => $query,
42
                            query => $query,
44
                            type => "intranet",
43
                            type => "intranet",
Lines 103-108 if (@subscriptionid){ Link Here
103
   my @subscriptioninformation=();
102
   my @subscriptioninformation=();
104
   foreach my $subscriptionid (@subscriptionid){
103
   foreach my $subscriptionid (@subscriptionid){
105
    my $subs= GetSubscription($subscriptionid);
104
    my $subs= GetSubscription($subscriptionid);
105
106
    $subs->{opacnote}     =~ s/\n/\<br\/\>/g;
106
    $subs->{opacnote}     =~ s/\n/\<br\/\>/g;
107
    $subs->{missinglist}  =~ s/\n/\<br\/\>/g;
107
    $subs->{missinglist}  =~ s/\n/\<br\/\>/g;
108
    $subs->{recievedlist} =~ s/\n/\<br\/\>/g;
108
    $subs->{recievedlist} =~ s/\n/\<br\/\>/g;
(-)a/serials/serials-edit.pl (+1 lines)
Lines 134-139 foreach my $serialid (@serialids) { Link Here
134
        && !$processedserialid{$serialid} )
134
        && !$processedserialid{$serialid} )
135
    {
135
    {
136
        my $serinfo = GetSerialInformation($serialid); #TODO duplicates work done by GetSerials2 above
136
        my $serinfo = GetSerialInformation($serialid); #TODO duplicates work done by GetSerials2 above
137
137
        for my $d ( qw( publisheddate planneddate )){
138
        for my $d ( qw( publisheddate planneddate )){
138
            if ( $serinfo->{$d} =~m/^00/ ) {
139
            if ( $serinfo->{$d} =~m/^00/ ) {
139
                $serinfo->{$d} = q{};
140
                $serinfo->{$d} = q{};
(-)a/serials/serials-search.pl (+1 lines)
Lines 104-109 $template->param( Link Here
104
    branches_loop => \@branches_loop,
104
    branches_loop => \@branches_loop,
105
    done_searched => $searched,
105
    done_searched => $searched,
106
    routing       => $routing,
106
    routing       => $routing,
107
    size          => scalar ( map {$_->{cannotedit} ? () : 1} @subscriptions ),
107
    marcflavour   => (uc(C4::Context->preference("marcflavour")))
108
    marcflavour   => (uc(C4::Context->preference("marcflavour")))
108
);
109
);
109
110
(-)a/serials/subscription-add.pl (-1 / +2 lines)
Lines 69-75 if ($op eq 'modify' || $op eq 'dup' || $op eq 'modsubscription') { Link Here
69
69
70
    my $subscriptionid = $query->param('subscriptionid');
70
    my $subscriptionid = $query->param('subscriptionid');
71
    $subs = GetSubscription($subscriptionid);
71
    $subs = GetSubscription($subscriptionid);
72
## FIXME : Check rights to edit if mod. Could/Should display an error message.
72
73
    ## FIXME : Check rights to edit if mod. Could/Should display an error message.
73
    if ($subs->{'cannotedit'} && $op eq 'modify'){
74
    if ($subs->{'cannotedit'} && $op eq 'modify'){
74
      carp "Attempt to modify subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed";
75
      carp "Attempt to modify subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed";
75
      print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
76
      print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
(-)a/serials/subscription-detail.pl (-25 / +8 lines)
Lines 32-62 my $query = new CGI; Link Here
32
my $op = $query->param('op') || q{};
32
my $op = $query->param('op') || q{};
33
my $issueconfirmed = $query->param('issueconfirmed');
33
my $issueconfirmed = $query->param('issueconfirmed');
34
my $dbh = C4::Context->dbh;
34
my $dbh = C4::Context->dbh;
35
my ($template, $loggedinuser, $cookie, $hemisphere);
36
my $subscriptionid = $query->param('subscriptionid');
35
my $subscriptionid = $query->param('subscriptionid');
37
my $subs = GetSubscription($subscriptionid);
38
39
$subs->{enddate} = GetExpirationDate($subscriptionid);
40
41
if ($op && $op eq 'del') {
42
	if ($subs->{'cannotedit'}){
43
		carp "Attempt to delete subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed";
44
		print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
45
	}
46
	DelSubscription($subscriptionid);
47
	print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=serials-home.pl\"></html>";
48
	exit;
49
}
50
36
51
my ($totalissues,@serialslist) = GetSerials($subscriptionid);
52
$totalissues-- if $totalissues; # the -1 is to have 0 if this is a new subscription (only 1 issue)
53
# the subscription must be deletable if there is NO issues for a reason or another (should not happend, but...)
37
# the subscription must be deletable if there is NO issues for a reason or another (should not happend, but...)
54
38
55
# Permission needed if it is a deletion (del) : delete_subscription
39
# Permission needed if it is a deletion (del) : delete_subscription
56
# Permission needed otherwise : *
40
# Permission needed otherwise : *
57
my $permission = ($op eq "del") ? "delete_subscription" : "*";
41
my $permission = ($op eq "del") ? "delete_subscription" : "*";
58
42
59
($template, $loggedinuser, $cookie)
43
my ($template, $loggedinuser, $cookie)
60
= get_template_and_user({template_name => "serials/subscription-detail.tmpl",
44
= get_template_and_user({template_name => "serials/subscription-detail.tmpl",
61
                query => $query,
45
                query => $query,
62
                type => "intranet",
46
                type => "intranet",
Lines 65-71 my $permission = ($op eq "del") ? "delete_subscription" : "*"; Link Here
65
                debug => 1,
49
                debug => 1,
66
                });
50
                });
67
51
68
$$subs{enddate} ||= GetExpirationDate($subscriptionid);
52
53
my $subs = GetSubscription($subscriptionid);
54
$subs->{enddate} ||= GetExpirationDate($subscriptionid);
55
56
my ($totalissues,@serialslist) = GetSerials($subscriptionid);
57
$totalissues-- if $totalissues; # the -1 is to have 0 if this is a new subscription (only 1 issue)
69
58
70
if ($op eq 'del') {
59
if ($op eq 'del') {
71
	if ($$subs{'cannotedit'}){
60
	if ($$subs{'cannotedit'}){
Lines 153-164 $template->param( Link Here
153
    hasRouting  => $hasRouting,
142
    hasRouting  => $hasRouting,
154
    routing => C4::Context->preference("RoutingSerials"),
143
    routing => C4::Context->preference("RoutingSerials"),
155
    totalissues => $totalissues,
144
    totalissues => $totalissues,
156
    hemisphere => $hemisphere,
145
    cannotedit => (not C4::Serials::can_edit_subscription( $subs )),
157
    cannotedit =>(C4::Context->preference('IndependantBranches') &&
158
                C4::Context->userenv &&
159
                C4::Context->userenv->{flags} % 2 !=1  &&
160
                C4::Context->userenv->{branch} && $subs->{branchcode} &&
161
                (C4::Context->userenv->{branch} ne $subs->{branchcode})),
162
    'periodicity' . $subs->{periodicity} => 1,
146
    'periodicity' . $subs->{periodicity} => 1,
163
    'arrival' . $subs->{dow} => 1,
147
    'arrival' . $subs->{dow} => 1,
164
    'numberpattern' . $subs->{numberpattern} => 1,
148
    'numberpattern' . $subs->{numberpattern} => 1,
165
- 

Return to bug 8435