View | Details | Raw Unified | Return to bug 38689
Collapse All | Expand All

(-)a/Koha/EDI.pm (-13 / +50 lines)
Lines 288-295 sub process_invoice { Link Here
288
                )->single;
288
                )->single;
289
            }
289
            }
290
            if ( !$vendor_acct ) {
290
            if ( !$vendor_acct ) {
291
                carp "Cannot find vendor with ean $vendor_ean for invoice $invoicenumber in "
291
                $invoice_message->add_to_edifact_errors(
292
                    . $invoice_message->filename;
292
                    {
293
                        section => '',
294
                        details => "Skipped invoice $invoicenumber with unmatched vendor san: $vendor_ean"
295
                    }
296
                );
297
                $logger->error( "Cannot find vendor with ean $vendor_ean for invoice $invoicenumber in "
298
                        . $invoice_message->filename );
293
                next;
299
                next;
294
            }
300
            }
295
            $invoice_message->edi_acct( $vendor_acct->id );
301
            $invoice_message->edi_acct( $vendor_acct->id );
Lines 312-317 sub process_invoice { Link Here
312
            foreach my $line ( @{$lines} ) {
318
            foreach my $line ( @{$lines} ) {
313
                my $ordernumber = $line->ordernumber;
319
                my $ordernumber = $line->ordernumber;
314
                if ( !$ordernumber ) {
320
                if ( !$ordernumber ) {
321
                    $invoice_message->add_to_edifact_errors(
322
                        {
323
                            section => $line->line_item_number,
324
                            details => "Message missing ordernumber"
325
                        }
326
                    );
315
                    $logger->error("Skipping invoice line, no associated ordernumber");
327
                    $logger->error("Skipping invoice line, no associated ordernumber");
316
                    next;
328
                    next;
317
                }
329
                }
Lines 319-330 sub process_invoice { Link Here
319
                # ModReceiveOrder does not validate that $ordernumber exists validate here
331
                # ModReceiveOrder does not validate that $ordernumber exists validate here
320
                my $order = $schema->resultset('Aqorder')->find($ordernumber);
332
                my $order = $schema->resultset('Aqorder')->find($ordernumber);
321
                if ( !$order ) {
333
                if ( !$order ) {
334
                    $invoice_message->add_to_edifact_errors(
335
                        {
336
                            section => $line->line_item_number,
337
                            details => "Koha order $ordernumber missing"
338
                        }
339
                    );
322
                    $logger->error("Skipping invoice line, no order found for $ordernumber, invoice:$invoicenumber");
340
                    $logger->error("Skipping invoice line, no order found for $ordernumber, invoice:$invoicenumber");
323
                    next;
341
                    next;
324
                }
342
                }
325
343
326
                my $bib = $order->biblionumber;
344
                my $bib = $order->biblionumber;
327
                if ( !$bib ) {
345
                if ( !$bib ) {
346
                    $invoice_message->add_to_edifact_errors(
347
                        {
348
                            section => $line->line_item_number,
349
                            details => "Koha biblio missing"
350
                        }
351
                    );
328
                    $logger->error(
352
                    $logger->error(
329
                        "Skipping invoice line, no bibliographic record found for $ordernumber, invoice:$invoicenumber"
353
                        "Skipping invoice line, no bibliographic record found for $ordernumber, invoice:$invoicenumber"
330
                    );
354
                    );
Lines 383-395 sub process_invoice { Link Here
383
                            tax_value_on_receiving => $quantity * $price_excl_tax * $tax_rate->{rate},
407
                            tax_value_on_receiving => $quantity * $price_excl_tax * $tax_rate->{rate},
384
                        }
408
                        }
385
                    );
409
                    );
386
                    transfer_items(
410
                    transfer_items( $schema, $line, $order, $received_order, $quantity );
387
                        $schema,         $line, $order,
388
                        $received_order, $quantity
389
                    );
390
                    receipt_items(
411
                    receipt_items(
391
                        $schema,                      $line,
412
                        $schema, $line,
392
                        $received_order->ordernumber, $quantity
413
                        $received_order->ordernumber, $quantity, $invoice_message
393
                    );
414
                    );
394
                } else {    # simple receipt all copies on order
415
                } else {    # simple receipt all copies on order
395
                    $order->quantityreceived($quantity);
416
                    $order->quantityreceived($quantity);
Lines 402-408 sub process_invoice { Link Here
402
                    $order->tax_value_on_receiving( $quantity * $price_excl_tax * $tax_rate->{rate} );
423
                    $order->tax_value_on_receiving( $quantity * $price_excl_tax * $tax_rate->{rate} );
403
                    $order->orderstatus('complete');
424
                    $order->orderstatus('complete');
404
                    $order->update;
425
                    $order->update;
405
                    receipt_items( $schema, $line, $ordernumber, $quantity );
426
                    receipt_items( $schema, $line, $ordernumber, $quantity, $invoice_message );
406
                }
427
                }
407
            }
428
            }
408
        }
429
        }
Lines 439-445 sub _get_invoiced_price { Link Here
439
}
460
}
440
461
441
sub receipt_items {
462
sub receipt_items {
442
    my ( $schema, $inv_line, $ordernumber, $quantity ) = @_;
463
    my ( $schema, $inv_line, $ordernumber, $quantity, $invoice_message ) = @_;
443
    my $logger = Koha::Logger->get( { interface => 'edi' } );
464
    my $logger = Koha::Logger->get( { interface => 'edi' } );
444
465
445
    # itemnumber is not a foreign key ??? makes this a bit cumbersome
466
    # itemnumber is not a foreign key ??? makes this a bit cumbersome
Lines 453-458 sub receipt_items { Link Here
453
        my $item = $schema->resultset('Item')->find( $ilink->itemnumber );
474
        my $item = $schema->resultset('Item')->find( $ilink->itemnumber );
454
        if ( !$item ) {
475
        if ( !$item ) {
455
            my $i = $ilink->itemnumber;
476
            my $i = $ilink->itemnumber;
477
            $invoice_message->add_to_edifact_errors(
478
                {
479
                    section => $inv_line->line_item_number,
480
                    details => "Cannot fine aqorder item"
481
                }
482
            );
456
            $logger->warn("Cannot find aqorder item for $i :Order:$ordernumber");
483
            $logger->warn("Cannot find aqorder item for $i :Order:$ordernumber");
457
            next;
484
            next;
458
        }
485
        }
Lines 491-496 sub receipt_items { Link Here
491
                    }
518
                    }
492
                );
519
                );
493
                if ( $rs->count > 0 ) {
520
                if ( $rs->count > 0 ) {
521
                    $invoice_message->add_to_edifact_errors(
522
                        {
523
                            section => $inv_line->line_item_number . " : " . $gir_occurrence,
524
                            details => "Duplicate barcode found $barcode"
525
                        }
526
                    );
494
                    $logger->warn("Barcode $barcode is a duplicate");
527
                    $logger->warn("Barcode $barcode is a duplicate");
495
                } else {
528
                } else {
496
529
Lines 513-524 sub receipt_items { Link Here
513
546
514
            $item->update;
547
            $item->update;
515
        } else {
548
        } else {
549
            $invoice_message->add_to_edifact_errors(
550
                {
551
                    section => $inv_line->line_item_number,
552
                    details => "Unmatched item at branch $branch"
553
                }
554
            );
516
            $logger->warn("Unmatched item at branch:$branch");
555
            $logger->warn("Unmatched item at branch:$branch");
517
        }
556
        }
518
        ++$gir_occurrence;
557
        ++$gir_occurrence;
519
    }
558
    }
520
    return;
559
    return;
521
522
}
560
}
523
561
524
sub transfer_items {
562
sub transfer_items {
Lines 1264-1270 Koha::EDI Link Here
1264
1302
1265
=head2 receipt_items
1303
=head2 receipt_items
1266
1304
1267
    receipt_items( schema_obj, invoice_line, ordernumber, $quantity)
1305
    receipt_items( schema_obj, invoice_line, ordernumber, $quantity, $invoice_message)
1268
1306
1269
    receipts the items recorded on this invoice line
1307
    receipts the items recorded on this invoice line
1270
1308
1271
- 

Return to bug 38689