Bug 10890 - Autobarcode "<branch>yymm00001" Fails in Acquisitions When Receiving Item
Summary: Autobarcode "<branch>yymm00001" Fails in Acquisitions When Receiving Item
Status: RESOLVED DUPLICATE of bug 28103
Alias: None
Product: Koha
Classification: Unclassified
Component: Acquisitions (show other bugs)
Version: Main
Hardware: All All
: P5 - low normal
Assignee: David Cook
QA Contact: Testopia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-16 03:14 UTC by David Cook
Modified: 2021-04-09 10:02 UTC (History)
3 users (show)

See Also:
Change sponsored?: ---
Patch complexity: Small patch
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:


Attachments
Bug 10890 - Autobarcode "<branch>yymm00001" Fails in Acquisitions When Receiving Item (3.00 KB, patch)
2013-09-16 03:48 UTC, David Cook
Details | Diff | Splinter Review
[SIGNED-OFF] Bug 10890 - Autobarcode "<branch>yymm00001" Fails in Acquisitions When Receiving Item (3.06 KB, patch)
2013-10-03 00:56 UTC, Srdjan Jankovic
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description David Cook 2013-09-16 03:14:23 UTC
Currently, if autobarcode is set to "<branch>yymm00001", the barcode won't be created. Depending on your browser, you should receive a Javascript alert saying something like "Uncaught TypeError: Cannot read property 'field_value' of undefined". 

This looks like it's due to the form containing elements with a 'field_value' property missing the name "f". 

The easiest fix is to add a name of "f" to the form. That eliminates the problem and allows the barcode to be created. 

However, as Jared and Robin have pointed out, "f" is a really poor choice of names for a form. We should probably be using descriptive names for our forms. 

We should probably also be populating the barcode field in a way that doesn't rely on looping through the inputs of a form. Maybe we could just look for the branch code by doing $('#outeritemblock #subfielda') or something like that.
Comment 1 David Cook 2013-09-16 03:15:10 UTC
(In reply to David Cook from comment #0)
> Currently, if autobarcode is set to "<branch>yymm00001", the barcode won't
> be created. Depending on your browser, you should receive a Javascript alert
> saying something like "Uncaught TypeError: Cannot read property
> 'field_value' of undefined". 
> 
> This looks like it's due to the form containing elements with a
> 'field_value' property missing the name "f". 
> 
> The easiest fix is to add a name of "f" to the form. That eliminates the
> problem and allows the barcode to be created. 
> 
> However, as Jared and Robin have pointed out, "f" is a really poor choice of
> names for a form. We should probably be using descriptive names for our
> forms. 
> 
> We should probably also be populating the barcode field in a way that
> doesn't rely on looping through the inputs of a form. Maybe we could just
> look for the branch code by doing $('#outeritemblock #subfielda') or
> something like that.

Actually, that last idea wouldn't work in the Cataloguing module although it might work in Acquisitions. We would need a cross module solution...
Comment 2 David Cook 2013-09-16 03:48:35 UTC Comment hidden (obsolete)
Comment 3 I'm just a bot 2013-09-29 05:58:59 UTC
Patch applied cleanly, go forth and signoff
Comment 4 Srdjan Jankovic 2013-10-03 00:56:15 UTC
Created attachment 21737 [details] [review]
[SIGNED-OFF] Bug 10890 - Autobarcode "<branch>yymm00001" Fails in Acquisitions When Receiving Item

This patch adds the name "f" to the form that adds items when placing or receiving
an order in Acquisitions.

This is needed so that the autobarcode code (which uses document.f.field_name) will
work properly when the system preference is set to "<branch>yymm00001".

AcqCreateItem
"placing an order"
"receiving an order"

TEST PLAN

1) Set the autobarcode system preference to "<branch>yymm00001"
2) Set the AcqCreateItem system preference to "placing an order"
3) Plan an order
4) Try to add a barcode to the item in the AJAX form
5) Note that no barcode appears. Depending on your browser, you might
receive a Javascript error popup message or a error icon at the bottom
of your screen. You might receive no error message at all and it will
fail seemingly silently.

6) Set the AcqCreateItem system preference to "receiving an order"
7) Receive the order
8) Try to add a barcode to the item in the AJAX form
9) See step 5. No barcode will appear and you might get an error message.

10) Apply the patch
11) Repeat steps 2, 3, 4, 6, 7, and 8 again. That is, try to add
barcodes when placing an order and receiving an order.
12) Note that a barcode now appears with the pattern of <branch>yymm00001

Signed-off-by: Srdjan <srdjan@catalyst.net.nz>
Comment 5 Katrin Fischer 2013-10-05 21:47:32 UTC
When creating multiple items, always the same barcode number is created. This will result in an error message on saving. Could this be improved so that the script notices the first number and counts?
Comment 6 Jonathan Druart 2015-09-04 08:35:38 UTC
This is certainly a duplicate of bug 11273
Comment 7 Magnus Enger 2015-10-21 07:30:10 UTC
David: Can you confirm that this is a duplicate of bug 11273 (which is now Pushed to stable)?
Comment 8 Jonathan Druart 2021-04-09 10:02:13 UTC

*** This bug has been marked as a duplicate of bug 28103 ***