Bug 34117: Remove side effect from get_expiry_date
authorEmily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Thu, 20 Jul 2023 17:41:15 +0000 (13:41 -0400)
committerPedro Amorim <pedro.amorim@ptfs-europe.com>
Fri, 18 Aug 2023 13:30:39 +0000 (13:30 +0000)
commitc9f1d03982965c796cb9def1168eaf840b82a194
tree146d58945b422258dcade6f1e2b728c1c42adc59
parentfc59fecd83c40d668cf4996f7917cdd1260e7452
Bug 34117: Remove side effect from get_expiry_date

If get_expiry_date is passed a DateTime object as a parameter,
it modifies and returns the original object. When memberentry.pl
prefills the input fields for duplicating a patron, it passes the
enrollment date object to get_expiry_date. This causes the enrollment
date object to be modified with the expiry date value.

This patch modifies get_expiry_date to clone the DateTime object that it
receives as a parameter and return the clone, so that references to an
enrollment date object can be passed in safely.

To test:
1. Have or make a patron
2. Duplicate that patron
3. Before saving the new patron, scroll down to Registration Date and
   see that it's defaulting to a date in the future.
4. Apply patch and restart_all
5. Try duplicating a patron again
6. Registration Date should correctly set to today

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit bba9feff5ca9e1601a38408625cf7ba40b70645f)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit 1628791ca24a44bf07e224f2194f12ebfe60779c)
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Koha/Patron/Category.pm