use Modern::Perl; use Test::More tests => 3; use C4::Acquisition qw( NewBasket AddInvoice ModOrder ModOrderUsers GetOrder GetOrderUsers ModReceiveOrder ); use C4::Biblio qw( AddBiblio ); use C4::Letters qw( GetQueuedMessages ); use Koha::Database; use Koha::Acquisition::Booksellers; use Koha::Acquisition::Orders; use Koha::Patrons; use t::lib::TestBuilder; my $schema = Koha::Database->schema; $schema->storage->txn_begin; my $builder = t::lib::TestBuilder->new; my $library = $builder->build({ source => "Branch", }); my $patron_category = $builder->build({ source => 'Category' }); my $currency = $builder->build({ source => 'Currency' }); # Creating some orders my $bookseller = Koha::Acquisition::Bookseller->new( { name => "my vendor", address1 => "bookseller's address", phone => "0123456", active => 1, } )->store; my $basketno = NewBasket( $bookseller->id, 1 ); my $budget_period_id = C4::Budgets::AddBudgetPeriod( { budget_period_startdate => '2024-01-01', budget_period_enddate => '2049-01-01', budget_period_active => 1, budget_period_description => "TEST PERIOD" } ); my $budgetid = C4::Budgets::AddBudget( { budget_code => "budget_code_test", budget_name => "budget_name_test", budget_period_id => $budget_period_id, } ); my $budget = C4::Budgets::GetBudget($budgetid); my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio( MARC::Record->new, '' ); my $order = Koha::Acquisition::Order->new( { basketno => $basketno, quantity => 2, biblionumber => $biblionumber, budget_id => $budgetid, entrydate => '2014-01-01', currency => $currency->{currency}, orderstatus => 1, quantityreceived => 0, rrp => 10, ecost => 10, } )->store; my $ordernumber = $order->ordernumber; my $invoiceid = AddInvoice( invoicenumber => 'invoice', booksellerid => $bookseller->id, unknown => "unknown" ); my $borrowernumber = Koha::Patron->new({ cardnumber => 'TESTCARD', firstname => 'TESTFN', surname => 'TESTSN', categorycode => $patron_category->{categorycode}, branchcode => $library->{branchcode}, dateofbirth => '', dateexpiry => '9999-12-31', userid => 'TESTUSERID' })->store->borrowernumber; C4::Acquisition::ModOrderUsers( $ordernumber, $borrowernumber ); my $is_added = grep { /^$borrowernumber$/ } C4::Acquisition::GetOrderUsers( $ordernumber ); is( $is_added, 1, 'ModOrderUsers should link patrons to an order' ); $order = Koha::Acquisition::Orders->find( $ordernumber ); ModReceiveOrder( { biblionumber => $biblionumber, order => $order->unblessed, quantityreceived => 1, cost => 10, ecost => 10, invoiceid => $invoiceid, rrp => 10, budget_id => $budgetid, } ); my $messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); is( scalar( @$messages ), 0, 'The letter has not been sent to message queue on receiving the order, the order is not entire received'); $order = Koha::Acquisition::Orders->find( $ordernumber ); ModReceiveOrder( { biblionumber => $biblionumber, order => $order->unblessed, quantityreceived => 1, cost => 10, ecost => 10, invoiceid => $invoiceid, rrp => 10, budget_id => $budgetid, } ); $messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); is( scalar( @$messages ), 1, 'The letter has been sent to message queue on receiving the order');