|
Lines 31-36
use C4::Log; # logaction
Link Here
|
| 31 |
use C4::Debug; |
31 |
use C4::Debug; |
| 32 |
use C4::Serials::Frequency; |
32 |
use C4::Serials::Frequency; |
| 33 |
use C4::Serials::Numberpattern; |
33 |
use C4::Serials::Numberpattern; |
|
|
34 |
use C4::Branch qw(GetIndependentGroupModificationRights); |
| 34 |
|
35 |
|
| 35 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
36 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
| 36 |
|
37 |
|
|
Lines 231-237
sub GetSerialInformation {
Link Here
|
| 231 |
my ($serialid) = @_; |
232 |
my ($serialid) = @_; |
| 232 |
my $dbh = C4::Context->dbh; |
233 |
my $dbh = C4::Context->dbh; |
| 233 |
my $query = qq| |
234 |
my $query = qq| |
| 234 |
SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid |
235 |
SELECT serial.*, |
|
|
236 |
serial.notes as sernotes, |
| 237 |
serial.status as serstatus, |
| 238 |
subscription.*, |
| 239 |
subscription.subscriptionid as subsid |
| 240 |
|; |
| 241 |
if ( C4::Context->preference('IndependentBranches') |
| 242 |
&& C4::Context->userenv |
| 243 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 244 |
&& C4::Context->userenv->{'branch'} ) { |
| 245 |
my $branches = GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 246 |
$query .= qq| |
| 247 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 248 |
|; |
| 249 |
} |
| 250 |
$query .= qq| |
| 235 |
FROM serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid |
251 |
FROM serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid |
| 236 |
WHERE serialid = ? |
252 |
WHERE serialid = ? |
| 237 |
|; |
253 |
|; |
|
Lines 330-347
subscription, subscriptionhistory, aqbooksellers.name, biblio.title
Link Here
|
| 330 |
sub GetSubscription { |
346 |
sub GetSubscription { |
| 331 |
my ($subscriptionid) = @_; |
347 |
my ($subscriptionid) = @_; |
| 332 |
my $dbh = C4::Context->dbh; |
348 |
my $dbh = C4::Context->dbh; |
| 333 |
my $query = qq( |
349 |
|
|
|
350 |
my $query = qq| |
| 334 |
SELECT subscription.*, |
351 |
SELECT subscription.*, |
| 335 |
subscriptionhistory.*, |
352 |
subscriptionhistory.*, |
| 336 |
aqbooksellers.name AS aqbooksellername, |
353 |
aqbooksellers.name AS aqbooksellername, |
| 337 |
biblio.title AS bibliotitle, |
354 |
biblio.title AS bibliotitle, |
| 338 |
subscription.biblionumber as bibnum |
355 |
subscription.biblionumber as bibnum |
|
|
356 |
|; |
| 357 |
|
| 358 |
if ( C4::Context->preference('IndependentBranches') |
| 359 |
&& C4::Context->userenv |
| 360 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 361 |
&& C4::Context->userenv->{'branch'} ) |
| 362 |
{ |
| 363 |
my $branches = |
| 364 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 365 |
|
| 366 |
$query .= qq| |
| 367 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 368 |
|; |
| 369 |
} |
| 370 |
|
| 371 |
$query .= qq| |
| 339 |
FROM subscription |
372 |
FROM subscription |
| 340 |
LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid |
373 |
LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid |
| 341 |
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id |
374 |
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id |
| 342 |
LEFT JOIN biblio ON biblio.biblionumber=subscription.biblionumber |
375 |
LEFT JOIN biblio ON biblio.biblionumber=subscription.biblionumber |
| 343 |
WHERE subscription.subscriptionid = ? |
376 |
WHERE subscription.subscriptionid = ? |
| 344 |
); |
377 |
|; |
| 345 |
|
378 |
|
| 346 |
$debug and warn "query : $query\nsubsid :$subscriptionid"; |
379 |
$debug and warn "query : $query\nsubsid :$subscriptionid"; |
| 347 |
my $sth = $dbh->prepare($query); |
380 |
my $sth = $dbh->prepare($query); |
|
Lines 364-371
sub GetFullSubscription {
Link Here
|
| 364 |
return unless ($subscriptionid); |
397 |
return unless ($subscriptionid); |
| 365 |
|
398 |
|
| 366 |
my $dbh = C4::Context->dbh; |
399 |
my $dbh = C4::Context->dbh; |
| 367 |
my $query = qq| |
400 |
|
| 368 |
SELECT serial.serialid, |
401 |
my $query = qq| |
|
|
402 |
SELECT |
| 403 |
serial.serialid, |
| 369 |
serial.serialseq, |
404 |
serial.serialseq, |
| 370 |
serial.planneddate, |
405 |
serial.planneddate, |
| 371 |
serial.publisheddate, |
406 |
serial.publisheddate, |
|
Lines 376-381
sub GetFullSubscription {
Link Here
|
| 376 |
biblio.title as bibliotitle, |
411 |
biblio.title as bibliotitle, |
| 377 |
subscription.branchcode AS branchcode, |
412 |
subscription.branchcode AS branchcode, |
| 378 |
subscription.subscriptionid AS subscriptionid |
413 |
subscription.subscriptionid AS subscriptionid |
|
|
414 |
|; |
| 415 |
|
| 416 |
if ( C4::Context->preference('IndependentBranches') |
| 417 |
&& C4::Context->userenv |
| 418 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 419 |
&& C4::Context->userenv->{'branch'} ) |
| 420 |
{ |
| 421 |
my $branches = |
| 422 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 423 |
|
| 424 |
$query .= qq| |
| 425 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 426 |
|; |
| 427 |
} |
| 428 |
|
| 429 |
$query .= qq| |
| 379 |
FROM serial |
430 |
FROM serial |
| 380 |
LEFT JOIN subscription ON |
431 |
LEFT JOIN subscription ON |
| 381 |
(serial.subscriptionid=subscription.subscriptionid ) |
432 |
(serial.subscriptionid=subscription.subscriptionid ) |
|
Lines 496-501
sub GetSubscriptionsFromBiblionumber {
Link Here
|
| 496 |
$subs->{ "periodicity" . $subs->{periodicity} } = 1; |
547 |
$subs->{ "periodicity" . $subs->{periodicity} } = 1; |
| 497 |
$subs->{ "numberpattern" . $subs->{numberpattern} } = 1; |
548 |
$subs->{ "numberpattern" . $subs->{numberpattern} } = 1; |
| 498 |
$subs->{ "status" . $subs->{'status'} } = 1; |
549 |
$subs->{ "status" . $subs->{'status'} } = 1; |
|
|
550 |
$subs->{'cannotedit'} = ( |
| 551 |
C4::Context->preference('IndependentBranches') |
| 552 |
&& C4::Context->userenv |
| 553 |
&& !C4::Context->IsSuperLibrarian() |
| 554 |
&& C4::Context->userenv->{branch} |
| 555 |
&& $subs->{branchcode} |
| 556 |
&& GetIndependentGroupModificationRights( |
| 557 |
{ for => $subs->{branchcode} } |
| 558 |
) |
| 559 |
); |
| 499 |
|
560 |
|
| 500 |
if ( $subs->{enddate} eq '0000-00-00' ) { |
561 |
if ( $subs->{enddate} eq '0000-00-00' ) { |
| 501 |
$subs->{enddate} = ''; |
562 |
$subs->{enddate} = ''; |
|
Lines 520-527
sub GetSubscriptionsFromBiblionumber {
Link Here
|
| 520 |
sub GetFullSubscriptionsFromBiblionumber { |
581 |
sub GetFullSubscriptionsFromBiblionumber { |
| 521 |
my ($biblionumber) = @_; |
582 |
my ($biblionumber) = @_; |
| 522 |
my $dbh = C4::Context->dbh; |
583 |
my $dbh = C4::Context->dbh; |
| 523 |
my $query = qq| |
584 |
|
| 524 |
SELECT serial.serialid, |
585 |
my $query = qq| |
|
|
586 |
SELECT |
| 587 |
serial.serialid, |
| 525 |
serial.serialseq, |
588 |
serial.serialseq, |
| 526 |
serial.planneddate, |
589 |
serial.planneddate, |
| 527 |
serial.publisheddate, |
590 |
serial.publisheddate, |
|
Lines 531-536
sub GetFullSubscriptionsFromBiblionumber {
Link Here
|
| 531 |
biblio.title as bibliotitle, |
594 |
biblio.title as bibliotitle, |
| 532 |
subscription.branchcode AS branchcode, |
595 |
subscription.branchcode AS branchcode, |
| 533 |
subscription.subscriptionid AS subscriptionid |
596 |
subscription.subscriptionid AS subscriptionid |
|
|
597 |
|; |
| 598 |
|
| 599 |
if ( C4::Context->preference('IndependentBranches') |
| 600 |
&& C4::Context->userenv |
| 601 |
&& C4::Context->userenv->{'flags'} != 1 |
| 602 |
&& C4::Context->userenv->{'branch'} ) |
| 603 |
{ |
| 604 |
my $branches = |
| 605 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 606 |
|
| 607 |
$query .= qq| |
| 608 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 609 |
|; |
| 610 |
} |
| 611 |
|
| 612 |
$query .= qq| |
| 534 |
FROM serial |
613 |
FROM serial |
| 535 |
LEFT JOIN subscription ON |
614 |
LEFT JOIN subscription ON |
| 536 |
(serial.subscriptionid=subscription.subscriptionid) |
615 |
(serial.subscriptionid=subscription.subscriptionid) |
|
Lines 2820-2826
sub can_show_subscription {
Link Here
|
| 2820 |
sub _can_do_on_subscription { |
2899 |
sub _can_do_on_subscription { |
| 2821 |
my ( $subscription, $userid, $permission ) = @_; |
2900 |
my ( $subscription, $userid, $permission ) = @_; |
| 2822 |
return 0 unless C4::Context->userenv; |
2901 |
return 0 unless C4::Context->userenv; |
|
|
2902 |
|
| 2823 |
my $flags = C4::Context->userenv->{flags}; |
2903 |
my $flags = C4::Context->userenv->{flags}; |
|
|
2904 |
|
| 2824 |
$userid ||= C4::Context->userenv->{'id'}; |
2905 |
$userid ||= C4::Context->userenv->{'id'}; |
| 2825 |
|
2906 |
|
| 2826 |
if ( C4::Context->preference('IndependentBranches') ) { |
2907 |
if ( C4::Context->preference('IndependentBranches') ) { |
|
Lines 2829-2840
sub _can_do_on_subscription {
Link Here
|
| 2829 |
or |
2910 |
or |
| 2830 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
2911 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
| 2831 |
or ( |
2912 |
or ( |
| 2832 |
C4::Auth::haspermission( $userid, |
2913 |
C4::Auth::haspermission( |
| 2833 |
{ serials => $permission } ) |
2914 |
$userid, { serials => $permission } |
|
|
2915 |
) |
| 2834 |
and ( not defined $subscription->{branchcode} |
2916 |
and ( not defined $subscription->{branchcode} |
| 2835 |
or $subscription->{branchcode} eq '' |
2917 |
or $subscription->{branchcode} eq '' |
| 2836 |
or $subscription->{branchcode} eq |
2918 |
or $subscription->{branchcode} eq |
| 2837 |
C4::Context->userenv->{'branch'} ) |
2919 |
C4::Context->userenv->{'branch'} ) |
|
|
2920 |
) |
| 2921 |
or GetIndependentGroupModificationRights( |
| 2922 |
{ for => $subscription->{branchcode} } |
| 2838 |
); |
2923 |
); |
| 2839 |
} |
2924 |
} |
| 2840 |
else { |
2925 |
else { |
|
Lines 2842-2851
sub _can_do_on_subscription {
Link Here
|
| 2842 |
if C4::Context->IsSuperLibrarian() |
2927 |
if C4::Context->IsSuperLibrarian() |
| 2843 |
or |
2928 |
or |
| 2844 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
2929 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
| 2845 |
or C4::Auth::haspermission( |
2930 |
or C4::Auth::haspermission( $userid, { serials => $permission } ) |
| 2846 |
$userid, { serials => $permission } |
2931 |
,; |
| 2847 |
), |
|
|
| 2848 |
; |
| 2849 |
} |
2932 |
} |
| 2850 |
return 0; |
2933 |
return 0; |
| 2851 |
} |
2934 |
} |