my $logger = Log::Log4perl->get_logger();
my $vendor_acct;
- my $plugin = $invoice_message->edi_acct()->plugin();
+ my $plugin_class = $invoice_message->edi_acct()->plugin();
+
+ # Plugin has its own invoice processor, only run it and not the standard invoice processor below
+ if ( $plugin_class ) {
+ my $plugin = $plugin_class->new();
+ if ( $plugin->can('edifact_process_invoice') ) {
+ Koha::Plugins::Handler->run(
+ {
+ class => $plugin_class,
+ method => 'edifact_process_invoice',
+ params => {
+ invoice => $invoice_message,
+ }
+ }
+ );
+ return;
+ }
+ }
+
my $edi_plugin;
- if ( $plugin ) {
+ if ( $plugin_class ) {
$edi_plugin = Koha::Plugins::Handler->run(
{
- class => $plugin,
+ class => $plugin_class,
method => 'edifact',
params => {
invoice_message => $invoice_message,
if ( $cmd && $cmd eq 'import' ) {
my $id = $q->param('message_id');
my $invoice = $schema->resultset('EdifactMessage')->find($id);
-
- my $plugin_used = 0;
- if ( my $plugin_class = $invoice->edi_acct->plugin ) {
- $plugin_used = 1;
- Koha::Plugins::Handler->run(
- {
- class => $plugin_class,
- method => 'edifact_process_invoice',
- params => {
- invoice => $invoice,
- }
- }
- );
- }
-
- process_invoice($invoice) unless $plugin_used;
+ process_invoice($invoice);
}
my @msgs = $schema->resultset('EdifactMessage')->search(
foreach my $invoice (@downloaded_invoices) {
my $filename = $invoice->filename();
$logger->trace("Processing invoice $filename");
-
- my $plugin_used = 0;
- if ( my $plugin_class = $invoice->edi_acct->plugin ) {
- my $plugin = $plugin_class->new();
- if ( $plugin->can('edifact_process_invoice') ) {
- $plugin_used = 1;
- Koha::Plugins::Handler->run(
- {
- class => $plugin_class,
- method => 'edifact_process_invoice',
- params => {
- invoice => $invoice,
- }
- }
- );
- }
- }
-
- process_invoice($invoice) unless $plugin_used;
+ process_invoice($invoice);
}
}