|
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 173-179
sub GetSerialInformation {
Link Here
|
| 173 |
my ($serialid) = @_; |
174 |
my ($serialid) = @_; |
| 174 |
my $dbh = C4::Context->dbh; |
175 |
my $dbh = C4::Context->dbh; |
| 175 |
my $query = qq| |
176 |
my $query = qq| |
| 176 |
SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid |
177 |
SELECT serial.*, |
|
|
178 |
serial.notes as sernotes, |
| 179 |
serial.status as serstatus, |
| 180 |
subscription.*, |
| 181 |
subscription.subscriptionid as subsid |
| 182 |
|; |
| 183 |
if ( C4::Context->preference('IndependentBranches') |
| 184 |
&& C4::Context->userenv |
| 185 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 186 |
&& C4::Context->userenv->{'branch'} ) { |
| 187 |
my $branches = GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 188 |
$query .= qq| |
| 189 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 190 |
|; |
| 191 |
} |
| 192 |
$query .= qq| |
| 177 |
FROM serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid |
193 |
FROM serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid |
| 178 |
WHERE serialid = ? |
194 |
WHERE serialid = ? |
| 179 |
|; |
195 |
|; |
|
Lines 276-293
subscription, subscriptionhistory, aqbooksellers.name, biblio.title
Link Here
|
| 276 |
sub GetSubscription { |
292 |
sub GetSubscription { |
| 277 |
my ($subscriptionid) = @_; |
293 |
my ($subscriptionid) = @_; |
| 278 |
my $dbh = C4::Context->dbh; |
294 |
my $dbh = C4::Context->dbh; |
| 279 |
my $query = qq( |
295 |
|
|
|
296 |
my $query = qq| |
| 280 |
SELECT subscription.*, |
297 |
SELECT subscription.*, |
| 281 |
subscriptionhistory.*, |
298 |
subscriptionhistory.*, |
| 282 |
aqbooksellers.name AS aqbooksellername, |
299 |
aqbooksellers.name AS aqbooksellername, |
| 283 |
biblio.title AS bibliotitle, |
300 |
biblio.title AS bibliotitle, |
| 284 |
subscription.biblionumber as bibnum |
301 |
subscription.biblionumber as bibnum |
|
|
302 |
|; |
| 303 |
|
| 304 |
if ( C4::Context->preference('IndependentBranches') |
| 305 |
&& C4::Context->userenv |
| 306 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 307 |
&& C4::Context->userenv->{'branch'} ) |
| 308 |
{ |
| 309 |
my $branches = |
| 310 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 311 |
|
| 312 |
$query .= qq| |
| 313 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 314 |
|; |
| 315 |
} |
| 316 |
|
| 317 |
$query .= qq| |
| 285 |
FROM subscription |
318 |
FROM subscription |
| 286 |
LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid |
319 |
LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid |
| 287 |
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id |
320 |
LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id |
| 288 |
LEFT JOIN biblio ON biblio.biblionumber=subscription.biblionumber |
321 |
LEFT JOIN biblio ON biblio.biblionumber=subscription.biblionumber |
| 289 |
WHERE subscription.subscriptionid = ? |
322 |
WHERE subscription.subscriptionid = ? |
| 290 |
); |
323 |
|; |
| 291 |
|
324 |
|
| 292 |
$debug and warn "query : $query\nsubsid :$subscriptionid"; |
325 |
$debug and warn "query : $query\nsubsid :$subscriptionid"; |
| 293 |
my $sth = $dbh->prepare($query); |
326 |
my $sth = $dbh->prepare($query); |
|
Lines 310-317
sub GetFullSubscription {
Link Here
|
| 310 |
return unless ($subscriptionid); |
343 |
return unless ($subscriptionid); |
| 311 |
|
344 |
|
| 312 |
my $dbh = C4::Context->dbh; |
345 |
my $dbh = C4::Context->dbh; |
| 313 |
my $query = qq| |
346 |
|
| 314 |
SELECT serial.serialid, |
347 |
my $query = qq| |
|
|
348 |
SELECT |
| 349 |
serial.serialid, |
| 315 |
serial.serialseq, |
350 |
serial.serialseq, |
| 316 |
serial.planneddate, |
351 |
serial.planneddate, |
| 317 |
serial.publisheddate, |
352 |
serial.publisheddate, |
|
Lines 322-327
sub GetFullSubscription {
Link Here
|
| 322 |
biblio.title as bibliotitle, |
357 |
biblio.title as bibliotitle, |
| 323 |
subscription.branchcode AS branchcode, |
358 |
subscription.branchcode AS branchcode, |
| 324 |
subscription.subscriptionid AS subscriptionid |
359 |
subscription.subscriptionid AS subscriptionid |
|
|
360 |
|; |
| 361 |
|
| 362 |
if ( C4::Context->preference('IndependentBranches') |
| 363 |
&& C4::Context->userenv |
| 364 |
&& C4::Context->userenv->{'flags'} % 2 != 1 |
| 365 |
&& C4::Context->userenv->{'branch'} ) |
| 366 |
{ |
| 367 |
my $branches = |
| 368 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 369 |
|
| 370 |
$query .= qq| |
| 371 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 372 |
|; |
| 373 |
} |
| 374 |
|
| 375 |
$query .= qq| |
| 325 |
FROM serial |
376 |
FROM serial |
| 326 |
LEFT JOIN subscription ON |
377 |
LEFT JOIN subscription ON |
| 327 |
(serial.subscriptionid=subscription.subscriptionid ) |
378 |
(serial.subscriptionid=subscription.subscriptionid ) |
|
Lines 442-447
sub GetSubscriptionsFromBiblionumber {
Link Here
|
| 442 |
$subs->{ "periodicity" . $subs->{periodicity} } = 1; |
493 |
$subs->{ "periodicity" . $subs->{periodicity} } = 1; |
| 443 |
$subs->{ "numberpattern" . $subs->{numberpattern} } = 1; |
494 |
$subs->{ "numberpattern" . $subs->{numberpattern} } = 1; |
| 444 |
$subs->{ "status" . $subs->{'status'} } = 1; |
495 |
$subs->{ "status" . $subs->{'status'} } = 1; |
|
|
496 |
$subs->{'cannotedit'} = ( |
| 497 |
C4::Context->preference('IndependentBranches') |
| 498 |
&& C4::Context->userenv |
| 499 |
&& !C4::Context->IsSuperLibrarian() |
| 500 |
&& C4::Context->userenv->{branch} |
| 501 |
&& $subs->{branchcode} |
| 502 |
&& GetIndependentGroupModificationRights( |
| 503 |
{ for => $subs->{branchcode} } |
| 504 |
) |
| 505 |
); |
| 445 |
|
506 |
|
| 446 |
if ( $subs->{enddate} eq '0000-00-00' ) { |
507 |
if ( $subs->{enddate} eq '0000-00-00' ) { |
| 447 |
$subs->{enddate} = ''; |
508 |
$subs->{enddate} = ''; |
|
Lines 466-473
sub GetSubscriptionsFromBiblionumber {
Link Here
|
| 466 |
sub GetFullSubscriptionsFromBiblionumber { |
527 |
sub GetFullSubscriptionsFromBiblionumber { |
| 467 |
my ($biblionumber) = @_; |
528 |
my ($biblionumber) = @_; |
| 468 |
my $dbh = C4::Context->dbh; |
529 |
my $dbh = C4::Context->dbh; |
| 469 |
my $query = qq| |
530 |
|
| 470 |
SELECT serial.serialid, |
531 |
my $query = qq| |
|
|
532 |
SELECT |
| 533 |
serial.serialid, |
| 471 |
serial.serialseq, |
534 |
serial.serialseq, |
| 472 |
serial.planneddate, |
535 |
serial.planneddate, |
| 473 |
serial.publisheddate, |
536 |
serial.publisheddate, |
|
Lines 477-482
sub GetFullSubscriptionsFromBiblionumber {
Link Here
|
| 477 |
biblio.title as bibliotitle, |
540 |
biblio.title as bibliotitle, |
| 478 |
subscription.branchcode AS branchcode, |
541 |
subscription.branchcode AS branchcode, |
| 479 |
subscription.subscriptionid AS subscriptionid |
542 |
subscription.subscriptionid AS subscriptionid |
|
|
543 |
|; |
| 544 |
|
| 545 |
if ( C4::Context->preference('IndependentBranches') |
| 546 |
&& C4::Context->userenv |
| 547 |
&& C4::Context->userenv->{'flags'} != 1 |
| 548 |
&& C4::Context->userenv->{'branch'} ) |
| 549 |
{ |
| 550 |
my $branches = |
| 551 |
GetIndependentGroupModificationRights( { stringify => 1 } ); |
| 552 |
|
| 553 |
$query .= qq| |
| 554 |
, ( ( subscription.branchcode NOT IN ( $branches ) ) AND subscription.branchcode <> '' AND subscription.branchcode IS NOT NULL ) AS cannotedit |
| 555 |
|; |
| 556 |
} |
| 557 |
|
| 558 |
$query .= qq| |
| 480 |
FROM serial |
559 |
FROM serial |
| 481 |
LEFT JOIN subscription ON |
560 |
LEFT JOIN subscription ON |
| 482 |
(serial.subscriptionid=subscription.subscriptionid) |
561 |
(serial.subscriptionid=subscription.subscriptionid) |
|
Lines 2762-2768
sub can_show_subscription {
Link Here
|
| 2762 |
sub _can_do_on_subscription { |
2841 |
sub _can_do_on_subscription { |
| 2763 |
my ( $subscription, $userid, $permission ) = @_; |
2842 |
my ( $subscription, $userid, $permission ) = @_; |
| 2764 |
return 0 unless C4::Context->userenv; |
2843 |
return 0 unless C4::Context->userenv; |
|
|
2844 |
|
| 2765 |
my $flags = C4::Context->userenv->{flags}; |
2845 |
my $flags = C4::Context->userenv->{flags}; |
|
|
2846 |
|
| 2766 |
$userid ||= C4::Context->userenv->{'id'}; |
2847 |
$userid ||= C4::Context->userenv->{'id'}; |
| 2767 |
|
2848 |
|
| 2768 |
if ( C4::Context->preference('IndependentBranches') ) { |
2849 |
if ( C4::Context->preference('IndependentBranches') ) { |
|
Lines 2771-2782
sub _can_do_on_subscription {
Link Here
|
| 2771 |
or |
2852 |
or |
| 2772 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
2853 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
| 2773 |
or ( |
2854 |
or ( |
| 2774 |
C4::Auth::haspermission( $userid, |
2855 |
C4::Auth::haspermission( |
| 2775 |
{ serials => $permission } ) |
2856 |
$userid, { serials => $permission } |
|
|
2857 |
) |
| 2776 |
and ( not defined $subscription->{branchcode} |
2858 |
and ( not defined $subscription->{branchcode} |
| 2777 |
or $subscription->{branchcode} eq '' |
2859 |
or $subscription->{branchcode} eq '' |
| 2778 |
or $subscription->{branchcode} eq |
2860 |
or $subscription->{branchcode} eq |
| 2779 |
C4::Context->userenv->{'branch'} ) |
2861 |
C4::Context->userenv->{'branch'} ) |
|
|
2862 |
) |
| 2863 |
or GetIndependentGroupModificationRights( |
| 2864 |
{ for => $subscription->{branchcode} } |
| 2780 |
); |
2865 |
); |
| 2781 |
} |
2866 |
} |
| 2782 |
else { |
2867 |
else { |
|
Lines 2784-2793
sub _can_do_on_subscription {
Link Here
|
| 2784 |
if C4::Context->IsSuperLibrarian() |
2869 |
if C4::Context->IsSuperLibrarian() |
| 2785 |
or |
2870 |
or |
| 2786 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
2871 |
C4::Auth::haspermission( $userid, { serials => 'superserials' } ) |
| 2787 |
or C4::Auth::haspermission( |
2872 |
or C4::Auth::haspermission( $userid, { serials => $permission } ) |
| 2788 |
$userid, { serials => $permission } |
2873 |
,; |
| 2789 |
), |
|
|
| 2790 |
; |
| 2791 |
} |
2874 |
} |
| 2792 |
return 0; |
2875 |
return 0; |
| 2793 |
} |
2876 |
} |