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>
This commit is contained in:
Kyle Hall 2022-06-27 08:13:39 -04:00 committed by Tomas Cohen Arazi
parent 5ac0c55879
commit 181b0c16fe
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F

View file

@ -41,6 +41,7 @@ use Koha::Edifact;
use C4::Log qw( logaction );
use Log::Log4perl;
use Text::Unidecode qw( unidecode );
use Koha::Plugins; # Adds plugin dirs to @INC
use Koha::Plugins::Handler;
use Koha::Acquisition::Baskets;
use Koha::Acquisition::Booksellers;
@ -232,6 +233,7 @@ sub process_invoice {
# Plugin has its own invoice processor, only run it and not the standard invoice processor below
if ( $plugin_class ) {
eval "require $plugin_class"; # Import the class, eval is needed because requiring a string doesn't work like requiring a bareword
my $plugin = $plugin_class->new();
if ( $plugin->can('edifact_process_invoice') ) {
Koha::Plugins::Handler->run(