Commit Graph

45112 Commits

Author SHA1 Message Date
Katrin Fischer 6c47479066 Bug 27045: (follow-up) Fix delimiter in header rows
The header rows still showed \t because the newly defined
variable wasn't used there.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 2eea061ca3)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit ed114537d3)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:54:19 +02:00
Jonathan Druart cdfecb6fb7 Bug 27045: Fix other exports using CSV profiles
This patch corrects the export of the 2 other reports
using CSV profiles:

* Late issues (serials)
* Basket (acquisitions)

To test:
1) Late issues
* Update the late issues sample report to use tab as separator
* Create a subscription
* Go to serial collection and 'generate next' to get some late issues
* Go to Claims
* Export the late issues and verify format is correct
* Verify exported file has tabs

2) Basket summary
* Create an order with several order lines
* Create an SQL type CSV profile for basket export using tab as separator
  Example: aqorders.quantity|aqordres.listprice|Title=biblio.title
* Export the basket using your configured CSV profile
* Verify exported file has tabs

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 7cd84171ab)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 9af01ea2e3)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:54:14 +02:00
Jonathan Druart becbc5bec1 Bug 27045: Fix items lost report export if delimiter is tab
When choosing tabulation as the delimiter for a CSV profile
for the lost item report, the tabs appear in the file as \t
instead of as proper tabs.

title\tauthor\tstocknumber\tcallnumber
"E Street shuffle :"\"Heylin, Clinton."\\

To test:
* Upate the existing sample lost item CSV profile to use tabs as
  separator
* Make sure you have some lost items in your database or create some
* Go to Reports > Lost items
* Run the report
* Check all or some of the checkboxes in the result list
* Export using the link on top and the CSV profile
* Verify the tabs are not exported correctly
* Apply patch
* Verify tabs now are proper tabs instead of \t

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 983965ee47)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 4db8368fd5)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:54:06 +02:00
Julian Maurice 0c2f6c9f43 Bug 30268: Check mandatory fields in addorderiso2709.pl
Test plan:
1. Make sure you have mandatory item subfields in the MARC bibliographic
   framework used in acquisitions ("ACQ" if it exists, the default framework
   otherwise).
2. Use the "Stage MARC records for import" tool to upload a file. Do not import
   the bibliographic records.
3. Create a new acquisition basket ("Create items when:" must be set to
   "placing an order") and add a new order from a staged file
4. Select the file you just uploaded
5. In the "Items information" tab, make sure at least one mandatory subfield is
   empty
6. Try to submit the form. If there are errors about other mandatory fields
   (like the fund for instance), fix those errors and resubmit. There should be
   an error message about mandatory item subfields.
7. Enter a value for the mandatory item subfields and resubmit the form. Verify
   that the order and the item have been correctly created.

Signed-off-by: Thibault Kero <thibault.keromnes@univ-paris8.fr>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit e37359cae9)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 7faeaf4aef)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:52:04 +02:00
Nick Clemens cf35f971c4 Bug 7660: Use first available categorycode when none passed in
The code that populates the patron messaging preferences on initial form load
expects to have a category selected. Currently we only have one if one was
passed to the form. When creating an account from a parent, we don't have a
category explicitly selected - so we can just select the first of the possible
categories

To test:
 1 - In KTD set 'Juvenile' category to have some messaging preferences
 2 - Find a patron, say Edna Acosta, and 'Add guarantee'
 3 - In new form preferences are blank, cancel
 4 - Apply patch, restart all
 5 - Go to Edna, click 'Add guarantee'
 6 - Preferences are populated!
 7 - Cancel
 8 - Go to 'Patrons' module
 9 - Click "+ New patron"
10 - Confirm messaging preferences load correctly when not adding child

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 146423f1bc)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 1256907319)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:49:52 +02:00
Fridolin Somers 7b86721280 Bug 31020: Fix PassItemMarcToXSLT in system preferences description
Bug 28373 added system preference PassItemMarcToXSLT is referenced is all XSLT system preferences.
But it only applies on results pages.
The only use in perl code is in C4::Search :
 > $marcrecord->delete_fields( @fields ) unless C4::Context->preference('PassItemMarcToXSLT');

I've tested by adding in all XSLT files :
  <strong>ITEMS <xsl:value-of select="count(marc:datafield[@tag=952])"/> </strong>
Number of items only appears in OPAC and staff interface results pages.

In fact only search pages get MARC record from search engine, in which items datas have been embedded for indexing.
In other pages MARC record does not embed items datas.

This patch adds "MARC21 952, UNIMARC 995" to be explicit we talk about
MARC datas not item tags build in XML recieved by XSLT.

Test plan :
1) Apply patch
2) Search for PassItemMarcToXSLT in system preferencies
3) Look at description of PassItemMarcToXSLT
4) Check PassItemMarcToXSLT only apprears in OPACXSLTResultsDisplay and XSLTResultsDisplay

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit f6dbad91c4)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f70fd04521)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:16:25 +02:00
Shi Yao Wang 6bd8547c92 Bug 30935: Holds to pull shows wrong first patron
When different patrons have item level holds on the same item, Holds to
pull shows wrong first patron.

Test plan:
1) Place a record-level hold on a biblio with an available item
2) Check the Holds to pull page (circ/pendingreserves.pl)
--> The biblio should appear in the list and the patron should appear in the 'First patron' column
3) Place a second record-level hold on the same biblio
4) Go back to the Holds to pull page
--> The biblio is still there, but the patron in the 'First patron' column is the second patron
5) Place a third record-level hold on the same biblio
6) Go back to the Holds to pull page
--> The biblio is still there, but the patron in the 'First patron' column is the third patron
7) Apply the patch
8) Go back to the Holds to pull page
--> The biblio is still there and the patron in the 'First patron' column is the first patron

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 87b985528e)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit c1cc0c0737)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:11:36 +02:00
Fridolin Somers b2b132b9af Bug 27683: Impact on catalogue/detail.pl
Since EasyAnalyticalRecords pref is now in GetAnalyticsCount, remove
test in catalogue/detail.pl.

Test plan :
1) Build an item and a linked analytical record with 773$0 and $9
2) Go to record detail page
3) Enable EasyAnalyticalRecords
4) You see analytics tab and analytical count on item
5) Disable EasyAnalyticalRecords
6) You dont see analytics tab

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit cc23a4c478)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit e9daeb70a2)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:10:43 +02:00
Fridolin Somers b91d31c02e Bug 27683: Bind results of GetAnalyticsCount to the EasyAnalyticalRecords pref
C4::Items::GetAnalyticsCount is part of the easy analytics feature.
Like Bug 20702 make early return when the system preference EasyAnalyticalRecords is disabled.
Actually it may block an item deletion for wrong reason.

Test plan :
1) Dont apply patch
2) Build an item and a linked analytical record with 773$0 and $9
3) Enable EasyAnalyticalRecords
4) Try to delete the item
5) You have an alert because linked to analytics
6) Disable EasyAnalyticalRecords
7) Try to delete the item
8) You have an alert because linked to analytics
9) Apply patch
10) Try to delete the item
11) No alert, it works :D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit dfc390940d)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 28b5880d71)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:10:37 +02:00
Fridolin Somers a989b49ec9 Bug 27683: Unit test for GetAnalyticsCount
Run prove t/db_dependent/Items/GetAnalyticsCount.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit fd7652255c)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 555efbd447)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:10:30 +02:00
Michal Urban 79719d61f5 Bug 30447: Unit tests
Added tests to ensure that Koha::Holds->get_items_that_can_fill returns items with datecancelled and datearrived
Added test for correct number of items for each call of "get_items_that_fill"

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit b4a9edc83f)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 2dfd3b05e7)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:08:36 +02:00
Nick Clemens caea8b048d Bug 30447: Check if transfers arrived or cancelled
TO test:
 1 - Find a bib with a single item
 2 - Browse to Circulation->Transfer
 3 - Transfer the item to another branch
 4 - Check the item in at current branch and cancel the transfer on the dialog
 5 - Place a hold on the biblio for a patron at current branch
 6 - Browse to Circulation->Holds to pull
 7 - Item does not show
 8 - Apply patch, restart all
 9 - Browse to Circulation->Holds to pull
10 - Item shows

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 206ba015c4)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 3f7363f6ca)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:06:47 +02:00
Shi Yao Wang 049481bfbf Bug 29922: (follow-up) Remove extra sort
Remove wrong sort in staff advanced search page

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 15918c3370)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit c41dba3eba)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:03:40 +02:00
Shi Yao Wang b30ad9a54e Bug 29922: Make get_search_groups return results sorted by title
get_search_groups from Koha/Library/Groups.pm returns library groups sorted by title.

Test plan:
1- Go to administration > library groups and create multiple library groups with different names (e.g. AGroup, BGroup, ÄGroup, etc.). Make sure to tick "Use for OPAC search groups" checkbox.
2- Go to advanced search in OPAC.
3- Under "Groups of librairies" , click the select button.
4- Notice that the library groups are not in alphabetical order.
5- Apply the patch.
6- Notice that the library groups are in alphabetical order.
7- Run `prove t/db_dependent/LibraryGroups.t` and all test should pass.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit d86d949551)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 73d5fd08f5)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:02:30 +02:00
Martin Renvoize 24c692589f Bug 31163: Sort cashups newest to oldest
The cashup history table was sorting from oldest to newest.. it's
perferable to show the most recent at the top by default.

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit dbbaba3ee0)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 9739eb738d)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:01:02 +02:00
Andrii Veremeienko 19ff6014d2 Bug 29114: Trim whitespace before the barcode
The solution was to add regexp that trims all whitespaces.

How to test:
1. Go to the koha/virtualshelves/shelves.pl;
2. Add new list or edit existing one;
3. Start adding new items;
4. In the "Barcode" field add barcode(s) with whitespaces before them;
5. Observe that it wasn't added as the barcode isn't recognized because of whitespaces;
6. Apply the patch;
7. Repeat step 4;
8. Observe that the item was successfully added;

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit c4ee39bf3a)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 1e54d08e64)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 15:00:27 +02:00
Katrin Fischer 7a5f92c410 Bug 27667: (QA follow-up) Fix singular index and rephrase heading
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 325d783419)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 65292aaa86)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:59:36 +02:00
Fridolin Somers cf74b01068 Bug 27667: Display a warning for records missing in Elasticsearch
On "About Koha" page are displayed the numbers of indexed biblios and authorities with ES.
It could be great if we could have comparison with the number of records in the database to display the number of missing records.
In the "System information" tab with the other "Data problems".

If Searchengine has any issue (index count will be -1), we do not
display missing records.

Test plan :
1) Use Elasticsearch searchengine
2) Rebuild all records : koha-elasticsearch --rebuild -d kohadev
3) Go to "About Koha" page and look at System information tab
=> you see no warning
4) On a biblio record delete the MARCXML in biblio_metadata.metadata
5) Rebuild all records : koha-elasticsearch --rebuild -d kohadev
6) Go to "About Koha" page and look at System information tab
=> you see warning : 1 record(s) missing on a total of 435 in indice koha_kohadev_biblios.
7) On a authority record delete the MARCXML in auth_header.marcxml
8) Rebuild all records : koha-elasticsearch --rebuild -d kohadev
9) Go to "About Koha" page and look at System information tab
=> you see warning : 1 record(s) missing on a total of 1705 in indice koha_kohadev_authorities.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit fee0f29792)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 21ff480612)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:59:04 +02:00
Lucas Gass aabb010ec1 Bug 20439: Sort SMS providers in alphabetical order by DB field
To test:
1/ Add 'Email' to the 'SMSSendDriver' system preference.
2/ Make sure 'EnhancedMessagingPreferencesOPAC' and 'EnhancedMessagingPreferences' are turned on.
3/ Add some SMS providers (/cgi-bin/koha/admin/sms_providers.pl) with different names.
4/ Notice on memberentry.pl and opac-messaging.pl the SMS providers sort by when they were added, not alphabetically.
5/ Apply patch and restart services.
6/ Look at memberentry.pl and opac-messaging.pl and notice that they SMS providers now sort alphabetically.

Signed-off-by: George Williams <george@nekls.org
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit fd49601079)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 35b8967b84)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:57:15 +02:00
Nick Clemens dbeefd1f2a Bug 31144: When modifying an order we should not load the vendor default discount
After placing an order in a basket with a discount of "0" if you attempt to modify we will load the vendor default discount, this can lead to accidentally applying a discount when modifying other order parts

To test:
0 - Have a vendor with a discount set
1 - Add an order to a basket
2 - While adding, set discount to 0
3 - Add order - prices are calculated ocrrectly
4 - Modify order
5 - Note discount is populated with vendor discount
6 - Cancel
7 - Apply patch
8 - Modify order
9 - Discount remains at 0
10 - Repeat with a vendor with no discount set
11 - Placing order not specifiying discount it remains blank
12 - Modifying order discount remains blank
13 - Modify order and set discount
14 - Confirm it is retained on modifcation

Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 73d2066837)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f92f6a315d)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:52:33 +02:00
Martin Renvoize 731c9dd7c9 Bug 29105: Add effective_itemtype handling to items api
This patch adds effective_item_type_id to the items api.

We overload the to_api method to append the effective_item_type_id field
with that of the effective itemtype code.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit dc75b5d5cd)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f00a28b576)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:47:57 +02:00
Martin Renvoize ce4f785d32 Bug 29105: Unit test
This patch adds a unit test for the addition of effective_item_type_id
to the items responses.

Test plan
1) Run the unit test prior to applying the second patch and confirm it
   fails
2) Apply the second patch and confirm the unit test now passes

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 6ca908816f)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 5974ff87c7)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:47:49 +02:00
Tomas Cohen Arazi 8c707275a6 Bug 30882: (QA follow-up) Fix tests
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit f8f9231562)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit cef190f71c)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:47:08 +02:00
Fridolin Somers ca3405e030 Bug 30882: Add max_result_window to index config
Elasticsearch number of results is by default limited by setting "index.max-result-window", default value is 10000.
https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#index-max-result-window

We use this setting:
44d6528b56/Koha/SearchEngine/Elasticsearch/Search.pm (L411)

I propose we add this setting in index config.

Test plan:
1) Use Elasticsearch
2) Apply patch and flush memcached
3) Rebuild indexes: misc/search_tools/rebuild_elasticsearch.pl -v -b -d
4) Check the settings of index (when using koha-testing-docker*):
   curl 'es:9200/koha_kohadev_biblios/_settings?pretty&filter_path=**.max_result_window'
5) You should see:
   "max_result_window" : "1000000"

* You also need to add this setting to the es section in koha-testing-docker's
docker-compose.yml (after the networks configuration):
     ports:
         - "9200:9300"

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 90ef5ec8c8)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b041f75f7b)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:46:57 +02:00
Nick Clemens da1633125f Bug 14680: Always subtract discount from price to calculate estimated cost
This patch simply removes a discrepancty where when a discount is provided on the order form
we add the discount to the price, and when it comes form the vendor we subtract the discount.

Discounts should always descrease the estimated cost

To test:
 0 - Have a vendor with a discount of 10% specified
 1 - Export a record from your Koha
 2 - Stage the record for import and match on biblionumber
 3 - Add to a basket in acq from the staged file
 4 - Select the title, and set order price to $10 and do not fill the discount field
 5 - Add the order - note $10 RRP and $9 actual/budgeted cost
 6 - Repeat 2&3
 7 - Select the tile, set price $10 and discount 50%
 8 - Add the order - note $20 RRP and $10 actual/budgeted cost! FAIL
 9 - Apply patch, restart all
10 - Repeat 2-7
11 - Add the order, note $10 RRP and $5 actual.budgeted cost

Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 7c734c6903)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 96eed0f5e0)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:13:21 +02:00
Martin Renvoize 9ea59c58cd Bug 31036: (QA follow-up) Add a warning to the system preference
As suggested by Katrin, adding a warning to the system preference that
this has an effect on SIP configurations that needs to be understood.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit f154fb0372)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 604da9beaa)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:08:53 +02:00
Martin Renvoize 94cc4b1ea7 Bug 31036: Treat SIP00 that same as CASH
SIP00 is the code for CASH transactions that have taken place on a SIP
client.  Cash management treats CASH type transactions as a special case
for banking and register requirements. This patch brings SIP00 in line
with the CASH handling code of cash management.

Test plan
1) Enable cash management with 'EnablePointOfSale'
2) Enable cash registers with 'UseCashRegisters'
3) Add a cash register via 'Administration > Cash registers'
4) Make some payments against the ash register in the staff client
5) Attempt to make a payment via a SIP client without having associated
   a cash register to the SIP account config
5a) This should now fail
6) Attach the cash register to the SIP account used above
6a) Payment should now work again on SIP transactions
7) Look at the cash register details page for the cash register
7a) 'Bankale' should now include cash from both SIP and Staff client
sales

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 9d8be887d0)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit c3c889e7f4)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 14:08:48 +02:00
Nick Clemens f92913f8c9 Bug 31137: (QA follow-up) Also fix new template page
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 7bfcb8288b)
(cherry picked from commit 9456af97be)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 10:23:15 +02:00
Adolfo Rodríguez dfe16f1740 Bug 31137: Only display label printer profiles when editing labels
This patch filters the printer profiles in the label edition template so you may only choose Printer Profiles created for Labels.

To test
1 Create a new Printer Profile in Patron Cards
2 Edit a Label template, pick the Printer Profile you just created.
3 Save the Label Template. You get an error 500
4 apply patch, restart services
5 Edit a Label template and check that you can't pick the Printer Profile you created in Patron Cards

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit e7d0b2ab47)
(cherry picked from commit 7f2b99cbfd)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 10:23:08 +02:00
Martin Renvoize ca64cdc3a5 Bug 31129: Fix debarment count on circulation page
This patch was split from bug 23681 where QA identified the issue.

This patch fixes the debarment count displayed on the circulation page
tabs

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit b6afcdbf48)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 87d7ded490)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 10:18:08 +02:00
Jonathan Druart b5a9d4540a Bug 31139: Fix basic_workflow.t
Error while executing command: element not interactable: Element <input id="tag_952_subfield_w_810691" class="input_marceditor items.replacementpricedate noEnterSubmit flatpickr-input" name="items.replacementpricedate" type="hidden"> is not reachable by keyboard at /usr/share/perl5/Selenium/Remote/Driver.pm line 411.

Not sure if it's coming from bug 30717 or not. git bisect told me it was the culprit but we released 22.05 and it seems that we got basic_workflow.t green since then.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 083769164b)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 0a0a459a0d)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 10:10:03 +02:00
Nick Clemens a9ecb7f3db Bug 31145: Supply defaults for vendors and funds
This is a convenience bug - when koha testing docker creates sample vendors and budgets there are small issues:

1 - The vendor website gets a random string - you can't edit the vendor without removing this
2 - The funds have random values for statistical categories, and you get empty dropdowns when choosing a fund in ordering

To test:
1 - Apply patch
2 - Restart all
3 - Edit 'My vendor'
4 - note webstie is empty and you can save without changing anythign
5 - Add order to basket for my vendor
6 - Confirm that when selecting a fund statistic 1 and statistic 2 remain as text input fields

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit b306cb47ce)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 9d251e587c)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 10:08:45 +02:00
Kevin Carnes 3a46ff9702 Bug 25669: (follow-up) Minor fixes
Bulk doesn't support include_type_name, update requirement to
Search::Elasticseach@6.80, and remove data type name from tests.

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit e926de5e8f)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

(cherry picked from commit 22c9ea9737)
Rebased-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 10:02:11 +02:00
Nick Clemens a1fdcc4f44 Bug 25669: Use include_type_name parameter in ES calls
This patch includes the parameter:
include_type_name
on our ES calls

It removes the deprecation warning we are seeing, and should allow using ES7 with no other chnages.

For ES8 we will need to remove the hardcoded type,

I would suggest a second patch, with a new syspref "ElasticsearchLegacyType" set to 'True' by default.
Description can explain that this must be set to false, and data reindexed after upgrading to ES7 and before
upgrading to ES8 - then we can drop this pref when we drop ES7 support

When we drop ES6 support the pref can be set default true for upgrades, default 'false' for new installs

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 150a4b03f3)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

(cherry picked from commit 99757c2d97)
Rebased-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 10:02:02 +02:00
Martin Renvoize 041bf720e4 Bug 31141: Remove 'select_column' from waiting_holds.inc
In the only place we use the waiting_holds include, we were hard coded
to always pass the 'select_column' variable as true.

We can simply and clarify the logic by just removing this superflous
variable.

Test plan
1. Confirm that the waiting holds tables continue to display as expected

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit f58099a244)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 3f0a70a271)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:57:12 +02:00
Kyle Hall aef9262229 Bug 31054: Manual importing for EDIFACT invoices fails with a 500 error page
Error in plack log is: Can't locate object method "new" via package
"Koha::Plugin::Com::ByWaterSolutions::MyEdifactPlugin" (perhaps you
forgot to load "Koha::Plugin::Com::ByWaterSolutions::MyEdifactPlugin"?)
at /usr/share/koha/lib/Koha/EDI.pm line 219.

Test Plan:
1) Set EdifactInvoiceImport to "Don't"
2) Configure an EDI vendor to use an EDIFACT plugin
3) Attempt to import an invoice file
4) You will be shown an error page
5) Apply this patch
6) Restart all the things!
7) Attempt to import another invoice file
8) It works!

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 181b0c16fe)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 20a9c16e6b)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:50:01 +02:00
Owen Leonard 4d48a9af0b Bug 31039: (follow-up) Wrap jQuery in $(document).ready()
cashup_modal.js consists only of jQuery code, so the whole thing should
be contained in a $(document).ready() function. This may or may not be
contributing to the behavior this bug is trying to fix.

Please note that this patch contains whitespace changes, so diff
accordingly.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 743731949d)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b5d2c7d621)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:48:17 +02:00
Martin Renvoize 35e41ec18d Bug 31039: Remove duplicate modal printing JS
This patch removes the erroneos duplication of the modal printing js.

Test plan
1) Create some transactions and perform a cashup.
2) Open the cashup summary modal
3) Click 'Print'
4) Cancel the print dialogue
5) Note that the dialogue re-appears
6) Apply the patch
7) Repeat and note the dialogue closes first time now.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 5e6f88e62f)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 57c375999a)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:48:04 +02:00
Tomas Cohen Arazi b54836654c Bug 29333: (QA follow-up) POD consistency
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 04b6ed16c6)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 7e58a301b5)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:47:12 +02:00
Julian Maurice df9b4c2256 Bug 29333: Fix encoding of imported UNIMARC authorities
MARC::Record and MARC::File::* modules sometimes use the position 09 of
the leader to detect encoding. A blank character means 'MARC-8' while an
'a' means 'UTF-8'.

In a UNIMARC authority this position is used to store the authority type
(see https://www.transition-bibliographique.fr/wp-content/uploads/2021/02/AIntroLabel-2004.pdf [FR]).
In this case, 'a' means 'Personal Name'.

The result is that the import will succeed for a Personal Name
authority, but it will fail for all other authority types.

Steps to reproduce:
0. Be sure to have a Koha UNIMARC instance.
1. Download the MARCXML for "Honoré de Balzac"
   curl -o balzac.marcxml https://www.idref.fr/02670305X.xml
2. Verify that it's encoded in UTF-8
   file balzac.marcxml
   (should output "balzac.marcxml: XML 1.0 document, UTF-8 Unicode
   text")
3. Go to Tools » Stage MARC for import and import balzac.marcxml with
   the following settings:
   Record type: Authority
   Character encoding: UTF-8
   Format: MARCXML
   Do not touch the other settings
4. Once imported, go to the staged MARC management tool and find your
   batch. Click on the authority title "Balzac Honoré de 1799-1850" to
   show the MARC inside a modal window. There should be no encoding
   issue.
5. Write down the imported record id (the number in column '#') and go
   to the MARC authority editor. Replace all URL parameters by
   'breedingid=THE_ID_YOU_WROTE_DOWN'
   The URL should look like this:
   /cgi-bin/koha/authorities/authorities.pl?breedingid=198
   You should see no encoding issues. Do not save the record.
6. Import the batch into the catalog. Verify that the authority record
   has no encoding issue.
7. Now download the MARCXML for "Athènes (Grèce)"
   curl -o athènes.marcxml https://www.idref.fr/027290530.xml
8. Repeat steps 2 to 6 using athènes.marcxml file. At steps 4 and 5 you
   should see encoding issues and that the position 9 of the leader was
   rewritten from 'c' to 'a'. Strangely, importing this batch fix the
   encoding issue, but we still lose the information in position 09 of
   the leader

This patch makes use of the MARCXML representation of the record instead
of the ISO2709 representation, because, unlike
MARC::Record::new_from_usmarc, MARC::Record::new_from_xml allows us to
pass directly the encoding and the format, which prevents data to be
double encoded when position 09 of the leader is different that 'a'

Test plan:
- Follow the "steps to reproduce" above and verify that you have no
  encoding issues.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 01d78e1ec7)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 76e980bb1a)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:47:06 +02:00
Martin Renvoize e20d79123b Bug 29051: Update svc api to allow seen renewals
This patch updates the svc/renew api endpoint to allow seen renewals
when appropriate

Signed-off-by: Caroline <caroline.cyr-la-rose@inlibro.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit e3311ebffc)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit e9153d7f15)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:45:42 +02:00
Martin Renvoize b513d0b038 Bug 29051: Enable seen renewal in the staff client
This patch updates the javascript for the checkouts table to add the
checkbox back in for the case where too_unseen is the error returned by
CanBookBeRenewed, allowing such issues to be renewed.

Signed-off-by: Caroline <caroline.cyr-la-rose@inlibro.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 91a67e3c8a)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 36e39cab65)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-26 09:45:36 +02:00
Arthur Suzuki cb957422a3 Update release notes for 21.11.11 release
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-22 11:03:02 +02:00
Arthur Suzuki a58d382632 Increment version for 21.11.11 release
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-22 10:46:02 +02:00
Arthur Suzuki 7e004b9a0d DBRev 21.11.11.000
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-22 10:45:16 +02:00
Arthur Suzuki 93b10e8904 Fix translations for Koha 21.11.11
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-22 10:31:41 +02:00
Koha translators 66012fa9c8 Translation updates for Koha 21.11.11 2022-08-21 21:11:13 -03:00
Tomas Cohen Arazi 5b2998a2f1 Bug 31220: (QA follow-up) Add missing filter
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit e7a8aab055)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit e139354d83)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-21 10:46:05 +02:00
Nick Clemens c695977177 Bug 31220: Pass label batch and ids to label-create-pdf
This patch fixes a malformed link to print selected labels
and fix error:
Can't locate object method "get_attr" via package "-2" (perhaps you forgot to load "-2"?) at /usr/share/koha/intranet/cgi-bin/labels/label-create-pdf.pl line 126.

To test:
1 - Create a new label batch with some items
2 - Select 1 or more
3 - Export selected labels
4 - Download as PDF
5 - It works!

Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 470fb6b6d8)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 72c052c7f3)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-21 10:45:57 +02:00
Kyle Hall b4c4902657 Bug 30667: Holds reminder cronjob (holds_reminder.pl) never uses default letter template
Bug 28514 changed the way holds_reminder.pl searches for templates, using a direct search for letters,
but should be using find_effective_template instead. Now, if a branch specific template does not exist,
it will skip that branch.

Test Plan:
1) Ensure you only have the default HOLD_REMINDER template
2) Become the koha user using koha-shell
3) Run misc/cronjobs/holds/holds_reminder.pl --days 7 -v
4) Note that the script skips every branch
5) Apply this patch
6) Run the command in step 3 again
7) Note the script doesn't skip over any branches

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit a7e7939748)
Signed-off-by: Arthur Suzuki <arthur.suzuki@biblibre.com>
2022-08-21 10:42:50 +02:00