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

(-)a/Koha/EDI.pm (-22 / +30 lines)
Lines 319-326 sub process_invoice { Link Here
319
            if ( !$vendor_acct ) {
319
            if ( !$vendor_acct ) {
320
                $invoice_message->add_to_edifact_errors(
320
                $invoice_message->add_to_edifact_errors(
321
                    {
321
                    {
322
                        section => "NAD+SU+" . $msg->supplier_ean,
322
                        invoicenumber => $invoicenumber,
323
                        details => "Skipped invoice $invoicenumber with unmatched vendor san: $vendor_ean"
323
                        section       => "NAD+SU+" . $msg->supplier_ean,
324
                        details       => "Skipped invoice $invoicenumber with unmatched vendor san: $vendor_ean"
324
                    }
325
                    }
325
                );
326
                );
326
                $logger->error( "Cannot find vendor with ean $vendor_ean for invoice $invoicenumber in "
327
                $logger->error( "Cannot find vendor with ean $vendor_ean for invoice $invoicenumber in "
Lines 349-356 sub process_invoice { Link Here
349
                if ( !$ordernumber ) {
350
                if ( !$ordernumber ) {
350
                    $invoice_message->add_to_edifact_errors(
351
                    $invoice_message->add_to_edifact_errors(
351
                        {
352
                        {
352
                            section => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
353
                            invoicenumber => $invoicenumber,
353
                            details => "Skipped invoice line " . $line->line_item_number . ", missing ordernumber"
354
                            section       => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
355
                            details       => "Skipped invoice line " . $line->line_item_number . ", missing ordernumber"
354
                        }
356
                        }
355
                    );
357
                    );
356
                    $logger->error("Skipping invoice line, no associated ordernumber");
358
                    $logger->error("Skipping invoice line, no associated ordernumber");
Lines 362-369 sub process_invoice { Link Here
362
                if ( !$order ) {
364
                if ( !$order ) {
363
                    $invoice_message->add_to_edifact_errors(
365
                    $invoice_message->add_to_edifact_errors(
364
                        {
366
                        {
365
                            section => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
367
                            invoicenumber => $invoicenumber,
366
                            details => "Skipped invoice line "
368
                            section       => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
369
                            details       => "Skipped invoice line "
367
                                . $line->line_item_number
370
                                . $line->line_item_number
368
                                . ", cannot find order with ordernumber "
371
                                . ", cannot find order with ordernumber "
369
                                . $ordernumber
372
                                . $ordernumber
Lines 377-384 sub process_invoice { Link Here
377
                if ( !$bib ) {
380
                if ( !$bib ) {
378
                    $invoice_message->add_to_edifact_errors(
381
                    $invoice_message->add_to_edifact_errors(
379
                        {
382
                        {
380
                            section => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
383
                            invoicenumber => $invoicenumber,
381
                            details => "Skipped invoice line "
384
                            section       => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
385
                            details       => "Skipped invoice line "
382
                                . $line->line_item_number
386
                                . $line->line_item_number
383
                                . ", cannot find biblio for ordernumber "
387
                                . ", cannot find biblio for ordernumber "
384
                                . $ordernumber
388
                                . $ordernumber
Lines 396-403 sub process_invoice { Link Here
396
                if ( $order->orderstatus eq 'complete' ) {
400
                if ( $order->orderstatus eq 'complete' ) {
397
                    $invoice_message->add_to_edifact_errors(
401
                    $invoice_message->add_to_edifact_errors(
398
                        {
402
                        {
399
                            section => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
403
                            invoicenumber => $invoicenumber,
400
                            details => "Warning: invoice line "
404
                            section       => join( "\n", map { $_->as_string } @{ $line->{segs} } ),
405
                            details       => "Warning: invoice line "
401
                                . $line->line_item_number
406
                                . $line->line_item_number
402
                                . " references ordernumber "
407
                                . " references ordernumber "
403
                                . $ordernumber
408
                                . $ordernumber
Lines 464-470 sub process_invoice { Link Here
464
                    transfer_items( $schema, $line, $order, $received_order, $quantity );
469
                    transfer_items( $schema, $line, $order, $received_order, $quantity );
465
                    receipt_items(
470
                    receipt_items(
466
                        $schema, $line,
471
                        $schema, $line,
467
                        $received_order->ordernumber, $quantity, $invoice_message
472
                        $received_order->ordernumber, $quantity, $invoice_message,
473
                        $invoicenumber
468
                    );
474
                    );
469
                } else {    # simple receipt all copies on order
475
                } else {    # simple receipt all copies on order
470
                    $order->quantityreceived($quantity);
476
                    $order->quantityreceived($quantity);
Lines 478-484 sub process_invoice { Link Here
478
                        $quantity * $price_excl_tax * ( $tax_rate ? $tax_rate->{rate} : 0 ) );
484
                        $quantity * $price_excl_tax * ( $tax_rate ? $tax_rate->{rate} : 0 ) );
479
                    $order->orderstatus('complete');
485
                    $order->orderstatus('complete');
480
                    $order->update;
486
                    $order->update;
481
                    receipt_items( $schema, $line, $ordernumber, $quantity, $invoice_message );
487
                    receipt_items( $schema, $line, $ordernumber, $quantity, $invoice_message, $invoicenumber );
482
                }
488
                }
483
            }
489
            }
484
        }
490
        }
Lines 515-521 sub _get_invoiced_price { Link Here
515
}
521
}
516
522
517
sub receipt_items {
523
sub receipt_items {
518
    my ( $schema, $inv_line, $ordernumber, $quantity, $invoice_message ) = @_;
524
    my ( $schema, $inv_line, $ordernumber, $quantity, $invoice_message, $invoicenumber ) = @_;
519
    my $logger = Koha::Logger->get( { interface => 'edi' } );
525
    my $logger = Koha::Logger->get( { interface => 'edi' } );
520
526
521
    # itemnumber is not a foreign key ??? makes this a bit cumbersome
527
    # itemnumber is not a foreign key ??? makes this a bit cumbersome
Lines 531-542 sub receipt_items { Link Here
531
            my $i = $ilink->itemnumber;
537
            my $i = $ilink->itemnumber;
532
            $invoice_message->add_to_edifact_errors(
538
            $invoice_message->add_to_edifact_errors(
533
                {
539
                {
534
                    section => join( "\n", map { $_->as_string } @{ $inv_line->{segs} } ),
540
                    invoicenumber => $invoicenumber,
535
                    details => "Skipped invoice line "
541
                    section       => join( "\n", map { $_->as_string } @{ $inv_line->{segs} } ),
542
                    details       => "Skipped invoice line "
536
                        . $inv_line->line_item_number
543
                        . $inv_line->line_item_number
537
                        . ", Koha item with itemnumber "
544
                        . ", Koha item with itemnumber "
538
                        . $i
545
                        . $i
539
                        . "is missing"
546
                        . " is missing"
540
                }
547
                }
541
            );
548
            );
542
            $logger->warn("Cannot find aqorder item for $i: Order: $ordernumber");
549
            $logger->warn("Cannot find aqorder item for $i: Order: $ordernumber");
Lines 579-588 sub receipt_items { Link Here
579
                if ( $rs->count > 0 ) {
586
                if ( $rs->count > 0 ) {
580
                    $invoice_message->add_to_edifact_errors(
587
                    $invoice_message->add_to_edifact_errors(
581
                        {
588
                        {
582
                            section => join( "\n", map { $_->as_string } @{ $inv_line->{segs} } ),
589
                            invoicenumber => $invoicenumber,
583
                            details => "Failed to assign barcode "
590
                            section       => join( "\n", map { $_->as_string } @{ $inv_line->{segs} } ),
591
                            details       => "Failed to assign barcode "
584
                                . $barcode
592
                                . $barcode
585
                                . "for invoice line "
593
                                . " for invoice line "
586
                                . $inv_line->line_item_number
594
                                . $inv_line->line_item_number
587
                                . ", duplicate found"
595
                                . ", duplicate found"
588
                        }
596
                        }
Lines 612-619 sub receipt_items { Link Here
612
            my $available_branches = join( ', ', sort keys %branch_map ) || 'none';
620
            my $available_branches = join( ', ', sort keys %branch_map ) || 'none';
613
            $invoice_message->add_to_edifact_errors(
621
            $invoice_message->add_to_edifact_errors(
614
                {
622
                {
615
                    section => join( "\n", map { $_->as_string } @{ $inv_line->{segs} } ),
623
                    invoicenumber => $invoicenumber,
616
                    details => "No matching item found for invoice line "
624
                    section       => join( "\n", map { $_->as_string } @{ $inv_line->{segs} } ),
625
                    details       => "No matching item found for invoice line "
617
                        . $inv_line->line_item_number . ":"
626
                        . $inv_line->line_item_number . ":"
618
                        . $gir_occurrence
627
                        . $gir_occurrence
619
                        . " at branch $branch"
628
                        . " at branch $branch"
620
- 

Return to bug 41996