Bugzilla – Attachment 125155 Details for
Bug 28730
Add option to format AH field (due date) in SIP checkout response
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 28730: Add option to format AH field (due date) in SIP checkout response
Bug-28730-Add-option-to-format-AH-field-due-date-i.patch (text/plain), 3.85 KB, created by
Martin Renvoize (ashimema)
on 2021-09-22 15:58:18 UTC
(
hide
)
Description:
Bug 28730: Add option to format AH field (due date) in SIP checkout response
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2021-09-22 15:58:18 UTC
Size:
3.85 KB
patch
obsolete
>From 6e54b80e42083fc7ea656d7f8c5ed5873a1cb570 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Wed, 21 Jul 2021 13:56:22 +0000 >Subject: [PATCH] Bug 28730: Add option to format AH field (due date) in SIP > checkout response > >This patch adds a new option to sip accounts: >format_due_date > >If set to 1 the AH field in checkouts will follow the dateFormat system preference and format as due dates (ignoring time portion if 23:59:59 or 11:59:59) > >To test: > 1 - checkout an item via SIP: >perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL -t CR --item 3999900000001 --patron enda -m checkout > 2 - Note the AH field is like "YYYYMMDD HHMMSS" > 3 - Apply patch > 4 - repeat SIP checkout - nothing has changed > 5 - edit SIPConfig.xml and add format_due_date="1" to 'term1' account: > <login id="term1" password="term1" delimiter="|" error-detect="enabled" institution="CPL" encoding="ascii" checked_in_ok="1" format_due_date="1"/> > 6 - restart all > 7 - repeat the SIP checkout > 8 - AH field now matches dateFormat system preference > 9 - Change your dateFormat preference >10 - repeat the SIP checkout >11 - AH matches new format > >Note: If you cannot renew and don't get an AH just check the item back in: >perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL -t CR --item 3999900000001 --patron enda -m checkin > >Signed-off-by: Winfred Thompkins <Winfred.thompkins@cedarhilltx.com> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > C4/SIP/Sip/MsgType.pm | 9 ++++++++- > t/db_dependent/SIP/Message.t | 11 ++++++++++- > 2 files changed, 18 insertions(+), 2 deletions(-) > >diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm >index 37b34c0304e..571f4ac3ea9 100644 >--- a/C4/SIP/Sip/MsgType.pm >+++ b/C4/SIP/Sip/MsgType.pm >@@ -21,6 +21,7 @@ use C4::Auth qw(&check_api_auth); > use Koha::Patrons; > use Koha::Patron::Attributes; > use Koha::Items; >+use Koha::DateUtils qw( output_pref ); > > use UNIVERSAL::can; > >@@ -562,7 +563,13 @@ sub handle_checkout { > $resp .= add_field( FID_ITEM_ID, $item_id, $server ); > $resp .= add_field( FID_TITLE_ID, $item->title_id, $server ); > if ( $item->due_date ) { >- $resp .= add_field( FID_DUE_DATE, timestamp( $item->due_date ), $server ); >+ my $due_date; >+ if( $account->{format_due_date} ){ >+ $due_date = output_pref({ str => $item->due_date, as_due_date => 1 }); >+ } else { >+ $due_date = timestamp( $item->due_date ); >+ } >+ $resp .= add_field( FID_DUE_DATE, $due_date, $server ); > } else { > $resp .= add_field( FID_DUE_DATE, q{}, $server ); > } >diff --git a/t/db_dependent/SIP/Message.t b/t/db_dependent/SIP/Message.t >index 790248b748c..eef8f28204e 100755 >--- a/t/db_dependent/SIP/Message.t >+++ b/t/db_dependent/SIP/Message.t >@@ -71,7 +71,7 @@ subtest 'Testing Patron Info Request V2' => sub { > subtest 'Checkout V2' => sub { > my $schema = Koha::Database->new->schema; > $schema->storage->txn_begin; >- plan tests => 3; >+ plan tests => 5; > $C4::SIP::Sip::protocol_version = 2; > test_checkout_v2(); > $schema->storage->txn_rollback; >@@ -614,6 +614,15 @@ sub test_checkout_v2 { > $msg->handle_checkout( $server ); > $respcode = substr( $response, 0, 2 ); > is( Koha::Checkouts->search({ itemnumber => $item_object->id })->count, 1, "Item was checked out (prevcheckout_block_checkout disabled)"); >+ >+ $msg->handle_checkout( $server ); >+ ok( $response =~ m/AH\d{8} \d{6}/, "Found AH field as timestamp in response"); >+ $server->{account}->{format_due_date} = 1; >+ t::lib::Mocks::mock_preference( 'dateFormat', 'sql' ); >+ undef $response; >+ $msg->handle_checkout( $server ); >+ ok( $response =~ m/AH\d{4}-\d{2}-\d{2}/, "Found AH field as SQL date in response"); >+ > } > > sub test_checkin_v2 { >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 28730
:
123012
|
124062
| 125155 |
125156