1 package C4
::UsageStats
;
3 # This file is part of Koha.
5 # Copyright 2014 BibLibre
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
22 use POSIX
qw(strftime);
32 This package contains what is needed to report Koha statistics to hea
33 hea.koha-community.org is the server that centralize Koha setups informations
34 Koha libraries are encouraged to provide informations about their collections,
39 $needUpdateYN = C4::UsageStats::NeedUpdate;
41 Returns Y (1) if the last update is more than 1 month old
42 This way, even if the cronjob is run every minute, the webservice will be called
48 my $lastupdated = C4
::Context
->preference('UsageStatsLastUpdateTime') || 0;
49 my $now = strftime
( "%s", localtime );
51 # Need to launch cron.
52 return 1 if $now - $lastupdated >= 2592000;
54 # Data don't need to be updated
61 id
=> C4
::Context
->preference('UsageStatsID') || 0,
62 name
=> C4
::Context
->preference('UsageStatsLibraryName') || q
||,
63 url
=> C4
::Context
->preference('UsageStatsLibraryUrl') || q
||,
64 type
=> C4
::Context
->preference('UsageStatsLibraryType') || q
||,
65 country
=> C4
::Context
->preference('UsageStatsCountry') || q
||,
69 # Get database volumetry.
71 qw
/biblio items auth_header old_issues old_reserves borrowers aqorders subscription/
74 $report->{volumetry
}{$_} = _count
($_);
77 # Get systempreferences.
81 AcqWarnOnDuplicateInvoice
100 UseAuthoritiesForTracings
103 IntranetBiblioDefaultView
109 DefaultClassificationSource
110 EasyAnalyticalRecords
117 SpineLabelShowPrintOnBibDetails
118 BlockReturnOfWithdrawnItems
119 CalculateFinesOnReturn
120 AgeRestrictionOverride
123 AllowItemsOnHoldCheckout
124 AllowNotForLoanOverride
125 AllowRenewalLimitOverride
129 AutoRemoveOverduesRestrictions
132 HomeOrHoldingBranchReturn
133 InProcessingToShelvingCart
136 ManInvInNoissuesCharge
140 RentalsInNoissuesCharge
143 TransfersMaxDaysWarning
144 UseBranchTransferLimits
146 UseTransportCostMatrix
149 FinesIncludeGracePeriod
151 RefundLostItemFeeOnReturn
152 WhenLostChargeReplacementFee
154 AllowHoldDateInFuture
155 AllowHoldPolicyOverride
156 AllowHoldsOnDamagedItems
157 AllowHoldsOnPatronsPossessions
158 AutoResumeSuspendedHolds
159 canreservefromotherbranches
160 decreaseLoanHighHolds
161 DisplayMultiPlaceHold
162 emailLibrarianWhenHoldIsPlaced
163 ExpireReservesMaxPickUpDelay
164 OPACAllowHoldDateInFuture
165 OPACAllowUserToChooseBranch
166 ReservesControlBranch
170 TransferWhenCancelAllWaitingHolds
171 AllowAllMessageDeletion
172 AllowOfflineCirculation
174 CircAutoPrintQuickSlip
175 DisplayClearScreenButton
176 FilterBeforeOverdueReport
178 itemBarcodeFallbackSearch
179 itemBarcodeInputFilter
180 previousIssuesDefaultSortOrder
181 RecordLocalUseOnReturn
184 todaysIssuesDefaultSortOrder
185 UpdateTotalIssuesOnCirc
187 WaitingNotifyAtCheckin
188 AllowSelfCheckReturns
193 OPACAmazonCoverImages
198 IDreamBooksReadometer
201 LibraryThingForLibrariesEnabled
204 NovelistSelectEnabled
210 CalendarFirstDayOfWeek
220 AuthorisedValueImages
225 HighlightOwnItemsOnOPAC
226 OpacAddMastheadLibraryPulldown
227 OPACDisplay856uAsImage
235 OpacShowFiltersPulldownMobile
236 OPACShowHoldQueueDetails
237 OpacShowLibrariesPulldownMobile
238 OpacShowRecentComments
239 OPACShowUnusedAuthorities
242 OPACURLOpenInNewWindow
254 OPACPopupAuthorsSearch
264 AllowPurchaseSuggestionBranchChoice
265 OpacAllowPublicListCreation
266 OpacAllowSharingPrivateLists
269 OPACViewOthersSuggestions
273 EnableOpacSearchHistory
277 PatronSelfRegistration
280 AutoEmailPrimaryAddress
282 BorrowerRenewalPeriodBase
285 EnhancedMessagingPreferences
286 ExtendedPatronAttributes
287 intranetreadinghistory
290 TalkingTechItivaPhoneNotification
292 IncludeSeeFromInSearches
298 TraceCompleteSubfields
299 TraceSubjectSubdivisions
305 OPACItemsResultsDisplay
307 IntranetNumbersPreferPhrase
308 OPACNumbersPreferPhrase
310 RenewSerialAddsSuggestion
311 RoutingListAddReserves
316 StaffAuthorisedValueImages
321 StaffDetailItemSelection
331 $report->{systempreferences
}{$_} = C4
::Context
->preference($_);
336 =head2 ReportToCommunity
340 Send to hea.koha-community.org database informations
344 sub ReportToCommunity
{
346 my $json = encode_json
($data);
348 my $url = "http://hea.koha-community.org/upload.pl";
349 my $ua = LWP
::UserAgent
->new;
352 'Content-type' => 'application/json;charset=utf-8',
355 my $content = decode_json
( $res->decoded_content );
356 C4
::Context
->set_preference( 'UsageStatsID',
357 $content->{library
}{id
} );
362 $data = _count($table);
364 Count the number of records in $table tables
371 my $dbh = C4
::Context
->dbh;
372 my $sth = $dbh->prepare("SELECT count(*) from $table");
374 return $sth->fetchrow_array;