Bug 7021: Terminology - usercode -> categorycode

Lets stick to standard terminology and use categorycode rather than
usercode here.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Martin Renvoize 2022-05-23 14:43:34 +01:00 committed by Tomas Cohen Arazi
parent b9158641d4
commit 791702a363
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
5 changed files with 104 additions and 18 deletions

View File

@ -813,15 +813,17 @@ sub CanBookBeIssued {
#
if ( $patron->category->category_type eq 'X' && ( $item_object->barcode )) {
# stats only borrower -- add entry to statistics table, and return issuingimpossible{STATS} = 1 .
C4::Stats::UpdateStats({
branch => C4::Context->userenv->{'branch'},
type => 'localuse',
itemnumber => $item_object->itemnumber,
itemtype => $effective_itemtype,
borrowernumber => $patron->borrowernumber,
ccode => $item_object->ccode},
usercode => $patron->categorycode,
);
C4::Stats::UpdateStats(
{
branch => C4::Context->userenv->{'branch'},
type => 'localuse',
itemnumber => $item_object->itemnumber,
itemtype => $effective_itemtype,
borrowernumber => $patron->borrowernumber,
ccode => $item_object->ccode,
categorycode => $patron->categorycode,
}
);
ModDateLastSeen( $item_object->itemnumber ); # FIXME Move to Koha::Item
return( { STATS => 1 }, {});
}
@ -1741,7 +1743,7 @@ sub AddIssue {
location => $item_object->location,
borrowernumber => $borrower->{'borrowernumber'},
ccode => $item_object->ccode,
usercode => $borrower->{'categorycode'}
categorycode => $borrower->{'categorycode'}
}
);
@ -2351,6 +2353,7 @@ sub AddReturn {
location => $item->location,
borrowernumber => $borrowernumber,
ccode => $item->ccode,
categorycode => $patron->categorycode,
});
# Send a check-in slip. # NOTE: borrower may be undef. Do not try to send messages then.
@ -3190,7 +3193,7 @@ sub AddRenewal {
location => $item_object->location,
borrowernumber => $borrowernumber,
ccode => $item_object->ccode,
usercode => $patron->categorycode,
categorycode => $patron->categorycode,
}
);

View File

@ -65,7 +65,7 @@ C<$params> is an hashref whose expected keys are:
other : sipmode
itemtype : the type of the item
ccode : the collection code of the item
usercode : the categorycode of the patron
categorycode : the categorycode of the patron
type key is mandatory.
For types used in C4::Circulation (renew,issue,localuse,return), the following other keys are mandatory:
@ -83,7 +83,7 @@ sub UpdateStats {
# make some controls
return () if ! defined $params;
# change these arrays if new types of transaction or new parameters are allowed
my @allowed_keys = qw (type branch amount other itemnumber itemtype borrowernumber ccode location usercode);
my @allowed_keys = qw (type branch amount other itemnumber itemtype borrowernumber ccode location categorycode);
my @allowed_circulation_types = qw (renew issue localuse return onsite_checkout recall);
my @allowed_accounts_types = qw (writeoff payment);
my @circulation_mandatory_keys = qw (type branch borrowernumber itemnumber ccode itemtype);
@ -124,7 +124,7 @@ sub UpdateStats {
my $itemtype = exists $params->{itemtype} ? $params->{itemtype} : '';
my $location = exists $params->{location} ? $params->{location} : undef;
my $ccode = exists $params->{ccode} ? $params->{ccode} : '';
my $usercode = exists $params->{usercode} ? $params->{usercode} : undef;
my $categorycode = exists $params->{categorycode} ? $params->{categorycode} : undef;
my $dtf = Koha::Database->new->schema->storage->datetime_parser;
my $statistic = Koha::Statistic->new(
@ -139,7 +139,7 @@ sub UpdateStats {
location => $location,
borrowernumber => $borrowernumber,
ccode => $ccode,
usercode => $usercode,
categorycode => $categorycode,
}
)->store;

View File

@ -3,8 +3,8 @@ if( CheckVersion( $DBversion ) ) {
# you can use $dbh here like:
# $dbh->do( "ALTER TABLE biblio ADD COLUMN badtaste int" );
$dbh->do("ALTER TABLE statistics ADD COLUMN usercode varchar(10) AFTER ccode");
$dbh->do("ALTER TABLE statistics ADD COLUMN categorycode varchar(10) AFTER ccode");
# Always end with this (adjust the bug info)
NewVersion( $DBversion, 7021, "Bug 7021 - Reintroduce usercode column");
NewVersion( $DBversion, 7021, "Bug 7021 - Introduce categorycode column");
}

View File

@ -4937,7 +4937,7 @@ CREATE TABLE `statistics` (
`location` varchar(80) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'authorized value for the shelving location for this item (MARC21 952$c)',
`borrowernumber` int(11) DEFAULT NULL COMMENT 'foreign key from the borrowers table, links transaction to a specific borrower',
`ccode` varchar(80) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'foreign key from the items table, links transaction to a specific collection code',
`usercode` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`categorycode` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
KEY `timeidx` (`datetime`),
KEY `branch_idx` (`branch`),
KEY `type_idx` (`type`),

View File

@ -0,0 +1,83 @@
#! /usr/bin/perl
## EXTRACTED USING THIS:
# grep -Pnir "'notforloan' => '6'" 01_items0* | grep -Po "'id' => '-?(\d+)'" | grep -Po "\d+" > itemnumbers_notforloan_6.txt
use Modern::Perl;
use C4::Context;
use utf8;
use Koha::Patrons;
use open ':encoding(utf8)';
binmode STDOUT, ':utf8';
print "\nTHE FOLLOWING STATISTIC ENTRIES HAVE BEEN UPDATED\n------------------------------------------------\n";
##Caches all the loaded Borrowers
my $borrowers = {};
my $deletedBorrowers = {};
my $dbh = C4::Context->dbh;
my $sthDelBor = $dbh->prepare("SELECT * FROM deletedborrowers WHERE borrowernumber = ? ");
my $sthUpdateStat = $dbh->prepare("UPDATE statistics SET categorycode = ? WHERE datetime = ? AND branch = ? AND type = ? AND itemnumber = ? ");
my $query2 = "SELECT * FROM statistics WHERE type = 'issue' OR type = 'renew' OR type = 'localuse'";
my $sth2 = $dbh->prepare($query2);
$sth2->execute();
my $stats = $sth2->fetchall_arrayref({});
foreach my $stat (@$stats) {
my $borrower = getCachedBorrower( $stat->{borrowernumber} );
$borrower = getCachedDeletedBorrower( $stat->{borrowernumber} ) unless $borrower;
if ($borrower) {
$borrower = $borrower->unblessed;
$stat->{categorycode} = $borrower->{categorycode};
$sthUpdateStat->execute( $stat->{categorycode},
$stat->{datetime},
$stat->{branch},
$stat->{type},
$stat->{itemnumber},
);
print( $stat->{categorycode} . " " .
$stat->{datetime} . " " .
$stat->{branch} . " " .
$stat->{type} . " " .
$stat->{itemnumber} . " "
);
print "\n";
}
}
##Members are repeatedly loaded in various parts of this code. Better to cache them.
sub getCachedBorrower {
my $borrowernumber = shift; #The hash to store all branches by branchcode
if (exists $borrowers->{$borrowernumber}) {
return $borrowers->{$borrowernumber};
}
my $borrower = Koha::Patrons->find({ borrowernumber => $borrowernumber });
$borrowers->{$borrowernumber} = $borrower;
return $borrower;
}
##Deleted members are repeatedly loaded in various parts of this code. Better to cache them.
sub getCachedDeletedBorrower {
my $borrowernumber = shift; #The hash to store all branches by branchcode
if (exists $deletedBorrowers->{$borrowernumber}) {
return $deletedBorrowers->{$borrowernumber};
}
$sthDelBor->execute( $borrowernumber );
my $borrower = $sthDelBor->fetchrow_hashref();
$borrowers->{$borrowernumber} = $borrower;
return $borrower;
}