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

(-)a/Koha/EDI.pm (-2 / +59 lines)
Lines 27-33 use Business::ISBN; Link Here
27
use DateTime;
27
use DateTime;
28
use C4::Context;
28
use C4::Context;
29
use Koha::Database;
29
use Koha::Database;
30
use C4::Acquisition qw( NewBasket CloseBasket ModOrder);
30
use C4::Acquisition qw( NewBasket CloseBasket ModOrder populate_order_with_prices );
31
use C4::Suggestions qw( ModSuggestion );
31
use C4::Suggestions qw( ModSuggestion );
32
use C4::Items qw(AddItem);
32
use C4::Items qw(AddItem);
33
use C4::Biblio qw( AddBiblio TransformKohaToMarc GetMarcBiblio );
33
use C4::Biblio qw( AddBiblio TransformKohaToMarc GetMarcBiblio );
Lines 307-312 sub process_invoice { Link Here
307
                                datereceived     => $msg_date,
307
                                datereceived     => $msg_date,
308
                            }
308
                            }
309
                        );
309
                        );
310
                        my $p_updates =
311
                          update_price_from_invoice( $received_order,
312
                            $invoice_message->vendor_id );
313
                        if ( keys %{$p_updates} ) {
314
                            $received_order->set_columns($p_updates);
315
                            $received_order->update;
316
                        }
310
                        transfer_items( $schema, $line, $order,
317
                        transfer_items( $schema, $line, $order,
311
                            $received_order );
318
                            $received_order );
312
                        receipt_items( $schema, $line,
319
                        receipt_items( $schema, $line,
Lines 318-323 sub process_invoice { Link Here
318
                        $order->invoiceid($invoiceid);
325
                        $order->invoiceid($invoiceid);
319
                        $order->unitprice($price);
326
                        $order->unitprice($price);
320
                        $order->orderstatus('complete');
327
                        $order->orderstatus('complete');
328
                        my $p_updates = update_price_from_invoice( $order,
329
                            $invoice_message->vendor_id );
330
                        foreach my $col ( keys %{$p_updates} ) {
331
                            $order->set_column( $col, $p_updates->{$col} );
332
                        }
321
                        $order->update;
333
                        $order->update;
322
                        receipt_items( $schema, $line, $ordernumber );
334
                        receipt_items( $schema, $line, $ordernumber );
323
                    }
335
                    }
Lines 351-356 sub _get_invoiced_price { Link Here
351
    return $price;
363
    return $price;
352
}
364
}
353
365
366
sub update_price_from_invoice {
367
    my $ord          = shift;
368
    my $booksellerid = shift;
369
370
    # wrapper around populate_order_with_prices as we are using dbic Row objects
371
    my $ord_hash_ref = {
372
        discount               => $ord->discount,
373
        tax_rate_on_receiving  => $ord->tax_rate_on_receiving,
374
        tax_value_on_receiving => $ord->tax_value_on_receiving,
375
        tax_rate               => $ord->tax_rate_bak,
376
        unitprice              => $ord->unitprice,
377
        ecost_tax_included     => $ord->ecost_tax_included,
378
        ecost_tax_excluded     => $ord->ecost_tax_excluded,
379
        unitprice_tax_included => $ord->unitprice_tax_included,
380
        unitprice_tax_excluded => $ord->unitprice_tax_excluded,
381
        quantity               => $ord->quantity,
382
    };
383
    my %pre_hash = %{$ord_hash_ref};
384
    $ord_hash_ref = populate_order_with_prices(
385
        {
386
            order        => $ord_hash_ref,
387
            booksellerid => $booksellerid,
388
            receiving    => 1,
389
        }
390
    );
391
    foreach my $k ( keys %pre_hash ) {
392
        if ( !defined $ord_hash_ref->{$k}
393
            || $ord_hash_ref->{$k} == $pre_hash{$k} )
394
        {
395
            delete $ord_hash_ref->{$k};
396
        }
397
    }
398
    delete $ord_hash_ref->{quantity};
399
    delete $ord_hash_ref->{discount};
400
401
    return $ord_hash_ref;
402
}
403
354
sub receipt_items {
404
sub receipt_items {
355
    my ( $schema, $inv_line, $ordernumber ) = @_;
405
    my ( $schema, $inv_line, $ordernumber ) = @_;
356
    my $logger   = Log::Log4perl->get_logger();
406
    my $logger   = Log::Log4perl->get_logger();
Lines 592-597 sub quote_item { Link Here
592
        order_internalnote => $order_note,
642
        order_internalnote => $order_note,
593
        rrp                => $item->price,
643
        rrp                => $item->price,
594
        ecost => _discounted_price( $quote->vendor->discount, $item->price ),
644
        ecost => _discounted_price( $quote->vendor->discount, $item->price ),
645
        discount       => $quote->vendor->discount,
595
        uncertainprice => 0,
646
        uncertainprice => 0,
596
        sort1          => q{},
647
        sort1          => q{},
597
        sort2          => q{},
648
        sort2          => q{},
Lines 655-660 sub quote_item { Link Here
655
706
656
    if ( !$skip ) {
707
    if ( !$skip ) {
657
        $order_hash->{budget_id} = $budget->budget_id;
708
        $order_hash->{budget_id} = $budget->budget_id;
709
        $order_hash = populate_order_with_prices(
710
            {
711
                order        => $order_hash,
712
                booksellerid => $quote->vendor_id,
713
                ordering => 1,
714
            }
715
        );
658
        my $first_order = $schema->resultset('Aqorder')->create($order_hash);
716
        my $first_order = $schema->resultset('Aqorder')->create($order_hash);
659
        my $o           = $first_order->ordernumber();
717
        my $o           = $first_order->ordernumber();
660
        $logger->trace("Order created :$o");
718
        $logger->trace("Order created :$o");
661
- 

Return to bug 18267