When clicking Create EDIFACT Order on /acqui/basket.pl, an EDIFACT message will not be generated if aqbasket.branch does not match edifact_ean.branchcode. This failure does not generate any sort of error message, it just fails to produce a message.
We should allow ean's to not require a branch to be set, then if we don't find a branch specific each, we can look for the default version of the ean.
Test Plan:
1) Apply this patch set
2) Run updatedatabase
3) Verify you can create a Library EAN without setting a branchcode for it
4) Verify you can use this EAN to send an EDI order where the basket has a branchcode set
Signed-off-by: Colin Campbell <colin.campbell@ptfs-europe.com>
Signed-off-by: Pierre-Marc Thibault <pierre-marc.thibault@inLibro.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
my $ean_obj =
$schema->resultset('EdifactEan')->search($ean_search_keys)->single;
+ # If no branch specific each can be found, look for a default ean
+ unless ($ean_obj) {
+ $ean_obj = $schema->resultset('EdifactEan')->search(
+ {
+ ean => $ean,
+ branchcode => undef,
+ }
+ )->single;
+ }
+
my $dbh = C4::Context->dbh;
my $arr_ref = $dbh->selectcol_arrayref(
'select id from edifact_messages where basketno = ? and message_type = \'QUOTE\'',
if ($change) {
$schema->resultset('EdifactEan')->find($id)->update(
{
- branchcode => scalar $input->param('branchcode'),
+ branchcode => scalar $input->param('branchcode') || undef,
description => scalar $input->param('description'),
ean => scalar $input->param('ean'),
id_code_qualifier => scalar $input->param('id_code_qualifier'),
else {
my $new_ean = $schema->resultset('EdifactEan')->new(
{
- branchcode => scalar $input->param('branchcode'),
+ branchcode => scalar $input->param('branchcode') || undef,
description => scalar $input->param('description'),
ean => scalar $input->param('ean'),
id_code_qualifier => scalar $input->param('id_code_qualifier'),
--- /dev/null
+$DBversion = 'XXX'; # will be replaced by the RM
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( "ALTER TABLE edifact_ean MODIFY branchcode VARCHAR(10) NULL DEFAULT NULL" );
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug XXXXX - description)\n";
+}
CREATE TABLE IF NOT EXISTS edifact_ean (
ee_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
description VARCHAR(128) NULL DEFAULT NULL,
- branchcode VARCHAR(10) NOT NULL REFERENCES branches (branchcode),
+ branchcode VARCHAR(10) NULL DEFAULT NULL REFERENCES branches (branchcode),
ean VARCHAR(15) NOT NULL,
id_code_qualifier VARCHAR(3) NOT NULL DEFAULT '14',
CONSTRAINT efk_branchcode FOREIGN KEY ( branchcode ) REFERENCES branches ( branchcode )
<li>
<label for="branchcode">Library: </label>
<select name="branchcode" id="branchcode">
+ <option value="">All libraries</option>
[% FOREACH branch IN branches %]
[% IF branch.branchcode == ean.branch.branchcode %]
<option value="[% branch.branchcode | html %]" selected="selected">[% branch.branchname | html %]</option>