96c8a0dbf6
Some tests failed due changes made to aqbudgets.budget_period_id. Tests failed with error: DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Field 'budget_period_id' doesn't have a default value at... This patch fixes those tests. To test run following lines: prove t/db_dependent/Acquisition/CancelReceipt.t prove t/db_dependent/Acquisition/GetBasketAsCSV.t prove t/db_dependent/Acquisition/GetBasketGroupAsCSV.t prove t/db_dependent/Acquisition/GetBasketsInfosByBookseller.t prove t/db_dependent/Acquisition/GetOrdersByBiblionumber.t prove t/db_dependent/Acquisition/Invoices.t prove t/db_dependent/Acquisition/NewOrder.t prove t/db_dependent/Acquisition/OrderUsers.t prove t/db_dependent/Acquisition/TransferOrder.t prove t/db_dependent/Acquisition/close_reopen_basket.t prove t/db_dependent/Koha/Acquisition/Funds.t prove t/db_dependent/Letters.t Sponsored-by: Koha-Suomi Oy Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
120 lines
3.8 KiB
Perl
Executable file
120 lines
3.8 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
use Modern::Perl;
|
|
|
|
use CGI;
|
|
|
|
use Test::More tests => 5;
|
|
|
|
use C4::Acquisition qw( NewBasket GetBasket GetBasketAsCSV );
|
|
use C4::Biblio qw( AddBiblio );
|
|
use Koha::Database;
|
|
use Koha::CsvProfiles;
|
|
use Koha::Acquisition::Orders;
|
|
use Koha::Biblios;
|
|
|
|
use t::lib::Mocks;
|
|
use Try::Tiny;
|
|
|
|
my $schema = Koha::Database->new()->schema();
|
|
$schema->storage->txn_begin();
|
|
|
|
my $query = CGI->new();
|
|
|
|
my $vendor = Koha::Acquisition::Bookseller->new({
|
|
name => 'my vendor',
|
|
address1 => 'vendor address',
|
|
active => 1,
|
|
deliverytime => 5,
|
|
})->store;
|
|
|
|
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 $budget_id = C4::Budgets::AddBudget(
|
|
{
|
|
budget_code => 'my_budget_code',
|
|
budget_name => 'My budget name',
|
|
budget_period_id => $budget_period_id,
|
|
}
|
|
);
|
|
my $budget = C4::Budgets::GetBudget( $budget_id );
|
|
|
|
my $csv_profile = Koha::CsvProfile->new({
|
|
profile => 'my user profile',
|
|
type => 'export_basket',
|
|
csv_separator => ',',
|
|
content => 'autor=biblio.author|title=biblio.title|quantity=aqorders.quantity',
|
|
description => 'csv profile',
|
|
})->store;
|
|
|
|
my $csv_profile2 = Koha::CsvProfile->new({
|
|
profile => 'my user profile',
|
|
type => 'export_basket',
|
|
csv_separator => ',',
|
|
content => 'biblio.author | title = biblio.title|quantity=aqorders.quantity',
|
|
description => 'csv profile 2',
|
|
})->store;
|
|
|
|
my $basketno;
|
|
$basketno = NewBasket($vendor->id, 1);
|
|
|
|
my $biblio = MARC::Record->new();
|
|
$biblio->append_fields(
|
|
MARC::Field->new( '100', ' ', ' ', a => 'King, Stephen' ),
|
|
MARC::Field->new( '245', ' ', ' ', a => 'Test Record' ),
|
|
);
|
|
my ($biblionumber, $biblioitemnumber) = AddBiblio($biblio, '');
|
|
|
|
my $order = Koha::Acquisition::Order->new({
|
|
basketno => $basketno,
|
|
quantity => 3,
|
|
biblionumber => $biblionumber,
|
|
budget_id => $budget_id,
|
|
entrydate => '2016-01-02',
|
|
})->store;
|
|
|
|
# Use user CSV profile
|
|
my $basket_csv1 = C4::Acquisition::GetBasketAsCSV($basketno, $query, $csv_profile->export_format_id);
|
|
is($basket_csv1, 'autor,title,quantity
|
|
"King, Stephen","Test Record",3
|
|
', 'CSV should be generated with user profile');
|
|
|
|
# Use default template
|
|
t::lib::Mocks::mock_preference( 'CSVDelimiter', ',' );
|
|
my $basket_csv2 = C4::Acquisition::GetBasketAsCSV( $basketno, $query );
|
|
is(
|
|
$basket_csv2,
|
|
'"Contract name","Order number","Entry date","ISBN","Author","Title","Publication year","Publisher","Collection title","Note for vendor","Quantity","RRP","Delivery place","Billing place"
|
|
"",' . $order->ordernumber . ',2016-01-02,,"King, Stephen","Test Record",,"","","",3,,"",""
|
|
', 'CSV should be generated with default template'
|
|
);
|
|
|
|
my $basket_csv3 = C4::Acquisition::GetBasketAsCSV($basketno, $query, $csv_profile2->export_format_id);
|
|
is($basket_csv3, 'biblio.author,title,quantity
|
|
"King, Stephen","Test Record",3
|
|
', 'CSV should be generated with user profile which does not have all headers defined');
|
|
|
|
try {
|
|
my $basket_csv4 = C4::Acquisition::GetBasketAsCSV($basketno, $query, 'non_existant_profile_id');
|
|
fail("It is not possible to export basket using non-existant profile");
|
|
} catch {
|
|
ok($_->isa("Koha::Exceptions::ObjectNotFound"), "Using non-existant profile should throw ObjectNotFound exception");
|
|
};
|
|
|
|
Koha::Biblios->find($biblionumber)->delete;
|
|
my $basket_csv4 = C4::Acquisition::GetBasketAsCSV( $basketno, $query );
|
|
is(
|
|
$basket_csv4,
|
|
'"Contract name","Order number","Entry date","ISBN","Author","Title","Publication year","Publisher","Collection title","Note for vendor","Quantity","RRP","Delivery place","Billing place"
|
|
"",' . $order->ordernumber . ',2016-01-02,,"","",,"","","",3,,"",""
|
|
', 'CSV should not fail if biblio does not exist'
|
|
);
|
|
|
|
$schema->storage->txn_rollback();
|