|
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 196-202
sub GetSerialInformation {
Link Here
|
| 196 |
my ($serialid) = @_; |
197 |
my ($serialid) = @_; |
| 197 |
my $dbh = C4::Context->dbh; |
198 |
my $dbh = C4::Context->dbh; |
| 198 |
my $query = qq| |
199 |
my $query = qq| |
| 199 |
SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid |
200 |
SELECT serial.*, |
|
|
201 |
serial.notes as sernotes, |
| 202 |
serial.status as serstatus, |
| 203 |
subscription.*, |
| 204 |
subscription.subscriptionid as subsid |
| 205 |
|; |
| 206 |
if ( C4::Context->preference('IndependentBranches') |
| 207 |
&& C4::Context->userenv |
| 208 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 209 |
&& C4::Context->userenv->{'branch'} ) { |
| 210 |
my $branches = GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 211 |
$query .= qq| |
| 212 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 213 |
|; |
| 214 |
} |
| 215 |
$query .= qq| |
| 200 |
FROM serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid |
216 |
FROM serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid |
| 201 |
WHERE serialid = ? |
217 |
WHERE serialid = ? |
| 202 |
|; |
218 |
|; |
|
Lines 299-316
subscription, subscriptionhistory, aqbooksellers.name, biblio.title
Link Here
|
| 299 |
sub GetSubscription { |
315 |
sub GetSubscription { |
| 300 |
my ($subscriptionid) = @_; |
316 |
my ($subscriptionid) = @_; |
| 301 |
my $dbh = C4::Context->dbh; |
317 |
my $dbh = C4::Context->dbh; |
| 302 |
my $query = qq( |
318 |
|
|
|
319 |
my $query = qq| |
| 303 |
SELECT subscription.*, |
320 |
SELECT subscription.*, |
| 304 |
subscriptionhistory.*, |
321 |
subscriptionhistory.*, |
| 305 |
aqbooksellers.name AS aqbooksellername, |
322 |
aqbooksellers.name AS aqbooksellername, |
| 306 |
biblio.title AS bibliotitle, |
323 |
biblio.title AS bibliotitle, |
| 307 |
subscription.biblionumber as bibnum |
324 |
subscription.biblionumber as bibnum |
|
|
325 |
|; |
| 326 |
|
| 327 |
if ( C4::Context->preference('IndependentBranches') |
| 328 |
&& C4::Context->userenv |
| 329 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 330 |
&& C4::Context->userenv->{'branch'} ) |
| 331 |
{ |
| 332 |
my $branches = |
| 333 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 334 |
|
| 335 |
$query .= qq| |
| 336 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 337 |
|; |
| 338 |
} |
| 339 |
|
| 340 |
$query .= qq| |
| 308 |
FROM subscription |
341 |
FROM subscription |
| 309 |
LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid |
342 |
LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid |
| 310 |
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id |
343 |
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id |
| 311 |
LEFT JOIN biblio ON biblio.biblionumber=subscription.biblionumber |
344 |
LEFT JOIN biblio ON biblio.biblionumber=subscription.biblionumber |
| 312 |
WHERE subscription.subscriptionid = ? |
345 |
WHERE subscription.subscriptionid = ? |
| 313 |
); |
346 |
|; |
| 314 |
|
347 |
|
| 315 |
$debug and warn "query : $query\nsubsid :$subscriptionid"; |
348 |
$debug and warn "query : $query\nsubsid :$subscriptionid"; |
| 316 |
my $sth = $dbh->prepare($query); |
349 |
my $sth = $dbh->prepare($query); |
|
Lines 333-340
sub GetFullSubscription {
Link Here
|
| 333 |
return unless ($subscriptionid); |
366 |
return unless ($subscriptionid); |
| 334 |
|
367 |
|
| 335 |
my $dbh = C4::Context->dbh; |
368 |
my $dbh = C4::Context->dbh; |
| 336 |
my $query = qq| |
369 |
|
| 337 |
SELECT serial.serialid, |
370 |
my $query = qq| |
|
|
371 |
SELECT |
| 372 |
serial.serialid, |
| 338 |
serial.serialseq, |
373 |
serial.serialseq, |
| 339 |
serial.planneddate, |
374 |
serial.planneddate, |
| 340 |
serial.publisheddate, |
375 |
serial.publisheddate, |
|
Lines 345-350
sub GetFullSubscription {
Link Here
|
| 345 |
biblio.title as bibliotitle, |
380 |
biblio.title as bibliotitle, |
| 346 |
subscription.branchcode AS branchcode, |
381 |
subscription.branchcode AS branchcode, |
| 347 |
subscription.subscriptionid AS subscriptionid |
382 |
subscription.subscriptionid AS subscriptionid |
|
|
383 |
|; |
| 384 |
|
| 385 |
if ( C4::Context->preference('IndependentBranches') |
| 386 |
&& C4::Context->userenv |
| 387 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 388 |
&& C4::Context->userenv->{'branch'} ) |
| 389 |
{ |
| 390 |
my $branches = |
| 391 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 392 |
|
| 393 |
$query .= qq| |
| 394 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 395 |
|; |
| 396 |
} |
| 397 |
|
| 398 |
$query .= qq| |
| 348 |
FROM serial |
399 |
FROM serial |
| 349 |
LEFT JOIN subscription ON |
400 |
LEFT JOIN subscription ON |
| 350 |
(serial.subscriptionid=subscription.subscriptionid ) |
401 |
(serial.subscriptionid=subscription.subscriptionid ) |
|
Lines 465-470
sub GetSubscriptionsFromBiblionumber {
Link Here
|
| 465 |
$subs->{ "periodicity" . $subs->{periodicity} } = 1; |
516 |
$subs->{ "periodicity" . $subs->{periodicity} } = 1; |
| 466 |
$subs->{ "numberpattern" . $subs->{numberpattern} } = 1; |
517 |
$subs->{ "numberpattern" . $subs->{numberpattern} } = 1; |
| 467 |
$subs->{ "status" . $subs->{'status'} } = 1; |
518 |
$subs->{ "status" . $subs->{'status'} } = 1; |
|
|
519 |
$subs->{'cannotedit'} = ( |
| 520 |
C4::Context->preference('IndependentBranches') |
| 521 |
&& C4::Context->userenv |
| 522 |
&& !C4::Context->IsSuperLibrarian() |
| 523 |
&& C4::Context->userenv->{branch} |
| 524 |
&& $subs->{branchcode} |
| 525 |
&& GetIndependentGroupModificationRights( |
| 526 |
{ for => $subs->{branchcode} } |
| 527 |
) |
| 528 |
); |
| 468 |
|
529 |
|
| 469 |
if ( $subs->{enddate} eq '0000-00-00' ) { |
530 |
if ( $subs->{enddate} eq '0000-00-00' ) { |
| 470 |
$subs->{enddate} = ''; |
531 |
$subs->{enddate} = ''; |
|
Lines 489-496
sub GetSubscriptionsFromBiblionumber {
Link Here
|
| 489 |
sub GetFullSubscriptionsFromBiblionumber { |
550 |
sub GetFullSubscriptionsFromBiblionumber { |
| 490 |
my ($biblionumber) = @_; |
551 |
my ($biblionumber) = @_; |
| 491 |
my $dbh = C4::Context->dbh; |
552 |
my $dbh = C4::Context->dbh; |
| 492 |
my $query = qq| |
553 |
|
| 493 |
SELECT serial.serialid, |
554 |
my $query = qq| |
|
|
555 |
SELECT |
| 556 |
serial.serialid, |
| 494 |
serial.serialseq, |
557 |
serial.serialseq, |
| 495 |
serial.planneddate, |
558 |
serial.planneddate, |
| 496 |
serial.publisheddate, |
559 |
serial.publisheddate, |
|
Lines 500-505
sub GetFullSubscriptionsFromBiblionumber {
Link Here
|
| 500 |
biblio.title as bibliotitle, |
563 |
biblio.title as bibliotitle, |
| 501 |
subscription.branchcode AS branchcode, |
564 |
subscription.branchcode AS branchcode, |
| 502 |
subscription.subscriptionid AS subscriptionid |
565 |
subscription.subscriptionid AS subscriptionid |
|
|
566 |
|; |
| 567 |
|
| 568 |
if ( C4::Context->preference('IndependentBranches') |
| 569 |
&& C4::Context->userenv |
| 570 |
&& C4::Context->userenv->{'flags'} != 1 |
| 571 |
&& C4::Context->userenv->{'branch'} ) |
| 572 |
{ |
| 573 |
my $branches = |
| 574 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 575 |
|
| 576 |
$query .= qq| |
| 577 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 578 |
|; |
| 579 |
} |
| 580 |
|
| 581 |
$query .= qq| |
| 503 |
FROM serial |
582 |
FROM serial |
| 504 |
LEFT JOIN subscription ON |
583 |
LEFT JOIN subscription ON |
| 505 |
(serial.subscriptionid=subscription.subscriptionid) |
584 |
(serial.subscriptionid=subscription.subscriptionid) |
|
Lines 2701-2707
sub can_show_subscription {
Link Here
|
| 2701 |
sub _can_do_on_subscription { |
2780 |
sub _can_do_on_subscription { |
| 2702 |
my ( $subscription, $userid, $permission ) = @_; |
2781 |
my ( $subscription, $userid, $permission ) = @_; |
| 2703 |
return 0 unless C4::Context->userenv; |
2782 |
return 0 unless C4::Context->userenv; |
|
|
2783 |
|
| 2704 |
my $flags = C4::Context->userenv->{flags}; |
2784 |
my $flags = C4::Context->userenv->{flags}; |
|
|
2785 |
|
| 2705 |
$userid ||= C4::Context->userenv->{'id'}; |
2786 |
$userid ||= C4::Context->userenv->{'id'}; |
| 2706 |
|
2787 |
|
| 2707 |
if ( C4::Context->preference('IndependentBranches') ) { |
2788 |
if ( C4::Context->preference('IndependentBranches') ) { |
|
Lines 2710-2721
sub _can_do_on_subscription {
Link Here
|
| 2710 |
or |
2791 |
or |
| 2711 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
2792 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
| 2712 |
or ( |
2793 |
or ( |
| 2713 |
C4::Auth::haspermission( $userid, |
2794 |
C4::Auth::haspermission( |
| 2714 |
{ serials => $permission } ) |
2795 |
$userid, { serials => $permission } |
|
|
2796 |
) |
| 2715 |
and ( not defined $subscription->{branchcode} |
2797 |
and ( not defined $subscription->{branchcode} |
| 2716 |
or $subscription->{branchcode} eq '' |
2798 |
or $subscription->{branchcode} eq '' |
| 2717 |
or $subscription->{branchcode} eq |
2799 |
or $subscription->{branchcode} eq |
| 2718 |
C4::Context->userenv->{'branch'} ) |
2800 |
C4::Context->userenv->{'branch'} ) |
|
|
2801 |
) |
| 2802 |
or GetIndependentGroupModificationRights( |
| 2803 |
{ for => $subscription->{branchcode} } |
| 2719 |
); |
2804 |
); |
| 2720 |
} |
2805 |
} |
| 2721 |
else { |
2806 |
else { |
|
Lines 2723-2732
sub _can_do_on_subscription {
Link Here
|
| 2723 |
if C4::Context->IsSuperLibrarian() |
2808 |
if C4::Context->IsSuperLibrarian() |
| 2724 |
or |
2809 |
or |
| 2725 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
2810 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
| 2726 |
or C4::Auth::haspermission( |
2811 |
or C4::Auth::haspermission( $userid, { serials => $permission } ) |
| 2727 |
$userid, { serials => $permission } |
2812 |
,; |
| 2728 |
), |
|
|
| 2729 |
; |
| 2730 |
} |
2813 |
} |
| 2731 |
return 0; |
2814 |
return 0; |
| 2732 |
} |
2815 |
} |