use C4::Bookseller qw(GetBookSellerFromId);
use C4::Templates qw(gettemplate);
use Koha::DateUtils qw( dt_from_string output_pref );
+use Koha::Acquisition::Order;
use Time::localtime;
use HTML::Entities;
&ModBasketgroup &NewBasketgroup &DelBasketgroup &GetBasketgroup &CloseBasketgroup
&GetBasketgroups &ReOpenBasketgroup
- &NewOrder &DelOrder &ModOrder &GetOrder &GetOrders &GetOrdersByBiblionumber
+ &DelOrder &ModOrder &GetOrder &GetOrders &GetOrdersByBiblionumber
&GetLateOrders &GetOrderFromItemnumber
&SearchOrders &GetHistory &GetRecentAcqui
&ModReceiveOrder &CancelReceipt
&GetCancelledOrders &TransferOrder
&GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid
- &NewOrderItem &ModItemOrder
+ &ModItemOrder
&GetParcels &GetParcel
}
-
-#------------------------------------------------------------#
-
-=head3 NewOrder
-
- &NewOrder(\%hashref);
-
-Adds a new order to the database. Any argument that isn't described
-below is the new value of the field with the same name in the aqorders
-table of the Koha database.
-
-=over
-
-=item $hashref->{'basketno'} is the basketno foreign key in aqorders, it is mandatory
-
-=item $hashref->{'ordernumber'} is a "minimum order number."
-
-=item $hashref->{'budgetdate'} is effectively ignored.
-If it's undef (anything false) or the string 'now', the current day is used.
-Else, the upcoming July 1st is used.
-
-=item $hashref->{'subscription'} may be either "yes", or anything else for "no".
-
-=item $hashref->{'uncertainprice'} may be 0 for "the price is known" or 1 for "the price is uncertain"
-
-=item defaults entrydate to Now
-
-The following keys are used: "biblionumber", "title", "basketno", "quantity", "order_vendornote", "order_internalnote", "rrp", "ecost", "gstrate", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "budget_id".
-
-=back
-
-=cut
-
-sub NewOrder {
- my $orderinfo = shift;
-
- my $dbh = C4::Context->dbh;
- my @params;
-
- croak "The ordernumber parameter should not be provided on calling NewOrder"
- if $orderinfo->{ordernumber};
-
- # if these parameters are missing, we can't continue
- for my $key ( qw( basketno quantity biblionumber budget_id ) ) {
- croak "Cannot insert order: Mandatory parameter $key is missing" unless $orderinfo->{$key};
- }
-
- $orderinfo->{quantityreceived} ||= 0;
- $orderinfo->{entrydate} ||= output_pref({ dt => dt_from_string, dateformat => 'iso'});
-
- # get only the columns of Aqorder
- my $schema = Koha::Database->new()->schema;
- my $columns = ' '.join(' ', $schema->source('Aqorder')->columns).' ';
- my $new_order = { map { $columns =~ / $_ / ? ($_ => $orderinfo->{$_}) : () } keys(%$orderinfo) };
- $new_order->{ordernumber} ||= undef;
-
- my $order = $schema->resultset('Aqorder')->create($new_order);
- my $ordernumber = $order->id;
-
- unless ( $new_order->{parent_ordernumber} ) {
- $order->update({ parent_ordernumber => $ordernumber });
- }
-
- return $ordernumber;
-}
-
-
-
-
-#------------------------------------------------------------#
-
-=head3 NewOrderItem
-
- &NewOrderItem();
-
-=cut
-
-sub NewOrderItem {
- my ($itemnumber, $ordernumber) = @_;
- my $dbh = C4::Context->dbh;
- my $query = qq|
- INSERT INTO aqorders_items
- (itemnumber, ordernumber)
- VALUES (?,?) |;
-
- my $sth = $dbh->prepare($query);
- $sth->execute( $itemnumber, $ordernumber);
-}
-
#------------------------------------------------------------#
=head3 ModOrder
$order->{'rrp'} = $rrp;
$order->{ecost} = $ecost;
$order->{'orderstatus'} = 'complete';
- $new_ordernumber = NewOrder($order);
+ $new_ordernumber = Koha::Acquisition::Order->new($order)->insert->{ordernumber};
if ($received_items) {
foreach my $itemnumber (@$received_items) {
delete $order->{'ordernumber'};
delete $order->{parent_ordernumber};
$order->{'basketno'} = $basketno;
- my $newordernumber;
- $newordernumber = NewOrder($order);
+
+ my $newordernumber = Koha::Acquisition::Order->new($order)->insert->{ordernumber};
$query = q{
UPDATE aqorders_items
--- /dev/null
+package Koha::Acquisition::Order;
+
+use Modern::Perl;
+
+use Koha::Database;
+use Koha::DateUtils qw( dt_from_string output_pref );
+
+use Carp qw( croak );
+
+use base qw( Class::Accessor );
+
+# TODO fetch order from itemnumber (GetOrderFromItemnnumber)
+# TODO Move code from GetOrder
+sub fetch {
+ my ( $class, $params ) = @_;
+ my $ordernumber = $params->{ordernumber};
+ return unless $ordernumber;
+ my $schema = Koha::Database->new->schema;
+
+ my $rs =
+ $schema->resultset('Aqorder')->search( { ordernumber => $ordernumber },
+ { result_class => 'DBIx::Class::ResultClass::HashRefInflator' } );
+
+ return $class->new( $rs->first );
+}
+
+sub insert {
+ my ($self) = @_;
+
+ # if these parameters are missing, we can't continue
+ for my $key (qw( basketno quantity biblionumber budget_id )) {
+ croak "Cannot insert order: Mandatory parameter $key is missing"
+ unless $self->{$key};
+ }
+
+ $self->{quantityreceived} ||= 0;
+ $self->{entrydate} ||=
+ output_pref( { dt => dt_from_string, dateformat => 'iso' } );
+
+ my $schema = Koha::Database->new->schema;
+ my @columns = $schema->source('Aqorder')->columns;
+
+ $self->{ordernumber} ||= undef;
+
+ my $rs = $schema->resultset('Aqorder')->create(
+ {
+ map {
+ exists $self->{$_} ? ( $_ => $self->{$_} ) : ()
+ } @columns
+ }
+ );
+ $self->{ordernumber} = $rs->id;
+
+ unless ( $self->{parent_ordernumber} ) {
+ $rs->update( { parent_ordernumber => $self->{ordernumber} } );
+ }
+
+ return $self;
+}
+
+sub add_item {
+ my ( $self, $itemnumber ) = @_;
+ my $schema = Koha::Database->new->schema;
+ my $rs = $schema->resultset('AqordersItem');
+ $rs->create({ ordernumber => $self->{ordernumber}, itemnumber => $itemnumber });
+}
+
+# TODO Move code from ModItemOrder
+sub update_item {
+ die "not implemented yet";
+}
+
+sub del_item {
+ die "not implemented yet";
+}
+
+# TODO Move code from ModOrder
+sub update {
+ die "not implemented yet";
+}
+
+# TODO Move code from DelOrder
+sub delete {
+ die "not implemented yet";
+}
+
+# TODO Move code from TransferOrder
+sub transfer {
+ die "not implemented yet";
+}
+
+1;
use warnings;
use CGI;
use C4::Auth; # get_template_and_user
-use C4::Acquisition; # NewOrder DelOrder ModOrder
+use C4::Acquisition; # DelOrder ModOrder
use C4::Suggestions; # ModStatus
use C4::Biblio; # AddBiblio TransformKohaToMarc
use C4::Budgets;
$orderinfo->{unitprice} = $orderinfo->{ecost} if not defined $orderinfo->{unitprice} or $orderinfo->{unitprice} eq '';
# if we already have $ordernumber, then it's an ordermodif
+ my $order = Koha::Acquisition::Order->new($orderinfo);
if ($$orderinfo{ordernumber}) {
ModOrder( $orderinfo);
}
else { # else, it's a new line
- $orderinfo->{ordernumber} = NewOrder($orderinfo);
+ $order->insert;
}
# now, add items if applicable
'ITEM');
my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$$orderinfo{biblionumber});
- NewOrderItem($itemnumber, $$orderinfo{ordernumber});
-
+ $order->add_item($itemnumber);
}
}
use C4::Members;
use Koha::Number::Price;
+use Koha::Acquisition::Order;
my $input = new CGI;
my ($template, $loggedinuser, $cookie, $userflags) = get_template_and_user({
# remove uncertainprice flag if we have found a price in the MARC record
$orderinfo{uncertainprice} = 0 if $orderinfo{listprice};
- my $ordernumber = NewOrder( \%orderinfo );
+ my $order = Koha::Acquisition::Order->new( \%orderinfo )->insert;
# 4th, add items if applicable
# parse the item sent by the form, and create an item just for the import_record_id we are dealing with
my $record = MARC::Record::new_from_xml( $xml, 'UTF-8' );
for (my $qtyloop=1;$qtyloop <= $c_quantity;$qtyloop++) {
my ( $biblionumber, $bibitemnum, $itemnumber ) = AddItemFromMarc( $record, $biblionumber );
- NewOrderItem( $itemnumber, $ordernumber );
+ $order->add_item( $itemnumber );
}
} else {
SetImportRecordStatus( $biblio->{'import_record_id'}, 'imported' );
push @{$itemhash{$itemid[$i]}->{'ind_tag'}},$ind_tag[$i];
push @{$itemhash{$itemid[$i]}->{'indicator'}},$indicator[$i];
}
+ my $order = Koha::Acquisition::Order->fetch({ ordernumber => $new_ordernumber });
foreach my $item (keys %itemhash){
my $xml = TransformHtmlToXml( $itemhash{$item}->{'tags'},
$itemhash{$item}->{'subfields'},
$itemhash{$item}->{'indicator'},'ITEM');
my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
my (undef,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$biblionumber);
- NewOrderItem($itemnumber, $new_ordernumber);
+ $order->add_item( $itemnumber );
}
}
}
use C4::Bookseller qw( GetBookSellerFromId );
-use Test::More tests => 74;
+use Test::More tests => 75;
BEGIN {
use_ok('C4::Acquisition');
use_ok('C4::Biblio');
use_ok('C4::Budgets');
use_ok('C4::Bookseller');
+ use_ok('Koha::Acquisition::Order');
}
# Sub used for testing C4::Acquisition subs returning order(s):
# params :
# $exp_fields : arrayref whose elements are the keys we expect to find
# $original_order_content : hashref whose 2 keys str and num contains hashrefs
-# containing content fields of the order created with NewOrder
+# containing content fields of the order created with Koha::Acquisition::Order
# $order_to_check : hashref whose keys/values are the content of an order
# returned by the C4::Acquisition sub we are testing
# returns :
values %{ $order_content[$_]->{num} };
@ocontent{ keys %{ $order_content[$_]->{str} } } =
values %{ $order_content[$_]->{str} };
- $ordernumbers[$_] = C4::Acquisition::NewOrder( \%ocontent );
+ $ordernumbers[$_] = Koha::Acquisition::Order->new( \%ocontent )->insert->{ordernumber};
$order_content[$_]->{str}->{ordernumber} = $ordernumbers[$_];
}
use t::lib::Mocks;
use Koha::DateUtils;
+use Koha::Acquisition::Order;
use MARC::Record;
my $dbh = C4::Context->dbh;
my $itemnumber = AddItem({}, $biblionumber);
t::lib::Mocks::mock_preference('AcqCreateItem', 'receiving');
-my $ordernumber = C4::Acquisition::NewOrder(
+my $order = Koha::Acquisition::Order->new(
{
basketno => $basketno1,
quantity => 2,
biblionumber => $biblionumber,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber = $order->{ordernumber};
ModReceiveOrder(
{
}
);
-NewOrderItem($itemnumber, $ordernumber);
+$order->add_item( $itemnumber );
CancelReceipt($ordernumber);
-my $order = GetOrder( $ordernumber );
+$order = GetOrder( $ordernumber );
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 0, "Create items on receiving: 0 item exist after cancelling a receipt");
my $itemnumber1 = AddItem({}, $biblionumber);
my $itemnumber2 = AddItem({}, $biblionumber);
t::lib::Mocks::mock_preference('AcqCreateItem', 'ordering');
t::lib::Mocks::mock_preference('AcqItemSetSubfieldsWhenReceiptIsCancelled', '7=9'); # notforloan is mapped with 952$7
-$ordernumber = C4::Acquisition::NewOrder(
+$order = Koha::Acquisition::Order->new(
{
basketno => $basketno1,
quantity => 2,
biblionumber => $biblionumber,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+$ordernumber = $order->{ordernumber};
-NewOrderItem($itemnumber1, $ordernumber);
-NewOrderItem($itemnumber2, $ordernumber);
+$order->add_item( $itemnumber1 );
+$order->add_item( $itemnumber2 );
my ( undef, $new_ordernumber ) = ModReceiveOrder(
{
use Test::More tests => 18;
use Data::Dumper;
-use C4::Acquisition qw( NewOrder NewBasket GetBasketsInfosByBookseller );
+use C4::Acquisition qw( NewBasket GetBasketsInfosByBookseller );
use C4::Biblio qw( AddBiblio );
use C4::Bookseller qw( AddBookseller );
use C4::Budgets qw( AddBudget );
use C4::Context;
+
+use Koha::Acquisition::Order;
+
my $dbh = C4::Context->dbh;
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
);
my $budget = C4::Budgets::GetBudget( $budgetid );
-my ($ordernumber1, $ordernumber2, $ordernumber3);
my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, '');
-$ordernumber1 = C4::Acquisition::NewOrder(
+my $order1 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 2,
biblionumber => $biblionumber1,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber1 = $order1->{ordernumber};
-$ordernumber2 = C4::Acquisition::NewOrder(
+my $order2 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 4,
biblionumber => $biblionumber2,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber2 = $order2->{ordernumber};
my $baskets = C4::Acquisition::GetBasketsInfosByBookseller( $supplierid );
is( scalar(@$baskets), 1, 'Start: 1 basket' );
use C4::Biblio;
use C4::Bookseller;
use C4::Budgets;
+
+use Koha::Acquisition::Order;
+
use MARC::Record;
#Start transaction
my $budget = C4::Budgets::GetBudget( $budgetid );
-my ($ordernumber1, $ordernumber2, $ordernumber3);
my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
-$ordernumber1 = C4::Acquisition::NewOrder(
+my $order1 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 24,
biblionumber => $biblionumber1,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber1 = $order1->{ordernumber};
-$ordernumber2 = C4::Acquisition::NewOrder(
+my $order2 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 42,
biblionumber => $biblionumber2,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber2 = $order1->{ordernumber};
-$ordernumber3 = C4::Acquisition::NewOrder(
+my $order3 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 4,
biblionumber => $biblionumber2,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber3 = $order1->{ordernumber};
my @orders = GetOrdersByBiblionumber();
is(scalar(@orders), 0, 'GetOrdersByBiblionumber : no argument, return undef');
use C4::Bookseller qw( GetBookSellerFromId );
use C4::Biblio qw( AddBiblio );
+use Koha::Acquisition::Order;
+
use Test::More tests => 22;
BEGIN {
);
my $budget = C4::Budgets::GetBudget( $budgetid );
-my ($ordernumber1, $ordernumber2, $ordernumber3);
my $bibrec1 = MARC::Record->new();
$bibrec1->append_fields(
MARC::Field->new('020', '', '', 'a' => '1234567890'),
my ($biblionumber1, $biblioitemnumber1) = AddBiblio($bibrec1, '');
my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, '');
-$ordernumber1 = C4::Acquisition::NewOrder(
+
+my $order1 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 2,
biblionumber => $biblionumber1,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber1 = $order1->{ordernumber};
-$ordernumber2 = C4::Acquisition::NewOrder(
+my $order2 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 1,
biblionumber => $biblionumber2,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber2 = $order2->{ordernumber};
-$ordernumber3 = C4::Acquisition::NewOrder(
+my $order3 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 1,
ecost => 42,
rrp => 42,
}
-);
+)->insert;
+my $ordernumber3 = $order3->{ordernumber};
my $invoiceid1 = AddInvoice(invoicenumber => 'invoice1', booksellerid => $booksellerid, unknown => "unknown");
my $invoiceid2 = AddInvoice(invoicenumber => 'invoice2', booksellerid => $booksellerid, unknown => "unknown",
use C4::Budgets;
use MARC::Record;
use Koha::DateUtils qw( dt_from_string output_pref );
+use Koha::Acquisition::Order;
my $dbh = C4::Context->dbh;
$dbh->{AutoCommit} = 0;
# returns undef and croaks if basketno, quantity, biblionumber or budget_id is missing
-my $ordernumber = eval { C4::Acquisition::NewOrder() };
+my $order = eval { Koha::Acquisition::Order->new->insert };
my $return_error = $@;
ok(
- ( ! defined $ordernumber )
+ ( ! defined $order )
&& ( defined $return_error ),
- "NewOrder with no params returns undef and croaks"
+ "Inserting an order with no params returns undef and croaks"
);
my $mandatoryparams = {
foreach my $mandatoryparams_key (@mandatoryparams_keys) {
my %test_missing_mandatoryparams = %$mandatoryparams;
delete $test_missing_mandatoryparams{$mandatoryparams_key};
- eval {
- $ordernumber =
- C4::Acquisition::NewOrder( \%test_missing_mandatoryparams );
+ $order = eval {
+ Koha::Acquisition::Order->new( \%test_missing_mandatoryparams )->insert;
};
$return_error = $@;
my $expected_error = "Cannot insert order: Mandatory parameter $mandatoryparams_key is missing";
ok(
- ( !( defined $ordernumber ) )
+ ( !( defined $order ) )
&& ( index( $return_error, $expected_error ) >= 0 ),
-"NewOrder with no $mandatoryparams_key returns undef and croaks with expected error message"
+"Inserting an order with no $mandatoryparams_key returns undef and croaks with expected error message"
);
}
-$ordernumber = C4::Acquisition::NewOrder(
+$order = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 24,
biblionumber => $biblionumber1,
budget_id => $budget->{budget_id},
}
-);
-
-my $order = C4::Acquisition::GetOrder( $ordernumber );
-is( $order->{quantityreceived}, 0, 'NewOrder set quantityreceivedto 0 if undef is given' );
-is( $order->{entrydate}, output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }), 'NewOrder set entrydate to today' );
+)->insert;
+my $ordernumber = $order->{ordernumber};
+$order = Koha::Acquisition::Order->fetch({ ordernumber => $ordernumber });
+is( $order->{quantityreceived}, 0, 'Koha::Acquisition::Order->insert set quantityreceivedto 0 if undef is given' );
+is( $order->{entrydate}, output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }), 'Koha::Acquisition::Order->insert set entrydate to today' );
use_ok('C4::Budgets');
use_ok('C4::Serials');
+use Koha::Acquisition::Order;
+
# Start transaction
my $dbh = C4::Context->dbh;
$dbh->{AutoCommit} = 0;
my $cost = 42.00;
my $subscription = GetSubscription( $subscriptionid );
-my $ordernumber;
-$ordernumber = NewOrder({
+
+my $order = Koha::Acquisition::Order->new({
biblionumber => $subscription->{biblionumber},
entrydate => '01-01-2013',
quantity => 1,
orderstatus => 'new',
subscriptionid => $subscription->{subscriptionid},
budget_id => $budget_id,
-});
+})->insert;
+my $ordernumber = $order->{ordernumber};
my $is_currently_on_order = subscriptionCurrentlyOnOrder( $subscription->{subscriptionid} );
is ( $is_currently_on_order, 1, "The subscription is currently on order");
-my $order = GetLastOrderNotReceivedFromSubscriptionid( $subscription->{subscriptionid} );
+$order = GetLastOrderNotReceivedFromSubscriptionid( $subscription->{subscriptionid} );
is ( $order->{subscriptionid}, $subscription->{subscriptionid}, "test subscriptionid for the last order not received");
ok( $order->{ecost} == $cost, "test cost for the last order not received");
use C4::Bookseller;
use C4::Budgets;
use Koha::DateUtils;
+use Koha::Acquisition::Order;
use MARC::Record;
my $dbh = C4::Context->dbh;
my ($biblionumber, $biblioitemnumber) = AddBiblio(MARC::Record->new, '');
my $itemnumber = AddItem({}, $biblionumber);
-my $ordernumber = C4::Acquisition::NewOrder(
+my $order = Koha::Acquisition::Order->new(
{
basketno => $basketno1,
quantity => 2,
biblionumber => $biblionumber,
budget_id => $budget->{budget_id},
}
-);
-NewOrderItem($itemnumber, $ordernumber);
+)->insert;
+my $ordernumber = $order->{ordernumber};
+$order->add_item( $itemnumber );
# Begin tests
-my $order;
is(scalar GetOrders($basketno1), 1, "1 order in basket1");
($order) = GetOrders($basketno1);
is(scalar GetItemnumbersFromOrder($order->{ordernumber}), 1, "1 item in basket1's order");
use C4::Budgets;
use C4::Context;
+use Koha::Acquisition::Order;
+
# Start transaction
my $dbh = C4::Context->dbh;
$dbh->{AutoCommit} = 0;
my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, '');
my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, '');
-my ($ordernumber1, $ordernumber2);
-$ordernumber1 = C4::Acquisition::NewOrder(
+my $order1 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 24,
biblionumber => $biblionumber1,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber1 = $order1->{ordernumber};
-$ordernumber2 = C4::Acquisition::NewOrder(
+my $order2 = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 42,
biblionumber => $biblionumber2,
budget_id => $budget->{budget_id},
}
-);
+)->insert;
+my $ordernumber2 = $order2->{ordernumber};
my $nb_biblio = C4::Acquisition::GetBiblioCountByBasketno( $basketno );
is ( $nb_biblio, 2, "There are 2 biblio for this basket" );
use C4::Budgets;
use C4::Biblio;
+use Koha::Acquisition::Order;
+
BEGIN {
use_ok('C4::Bookseller');
}
is(scalar(@subscriptions), 1, 'search for subscriptions by location');
#Add 4 orders
-my ( $ordernumber1, $ordernumber2, $ordernumber3, $ordernumber4 );
-$ordernumber1 = C4::Acquisition::NewOrder(
+my $order1 = Koha::Acquisition::Order->new(
{
basketno => $basketno1,
quantity => 24,
ecost => 10,
datereceived => '01-06-2013'
}
-);
-$ordernumber2 = C4::Acquisition::NewOrder(
+)->insert;
+my $ordernumber1 = $order1->{ordernumber};
+
+my $order2 = Koha::Acquisition::Order->new(
{
basketno => $basketno2,
quantity => 20,
rrp => 10,
ecost => 10,
}
-);
-$ordernumber3 = C4::Acquisition::NewOrder(
+)->insert;
+my $ordernumber2 = $order2->{ordernumber};
+
+my $order3 = Koha::Acquisition::Order->new(
{
basketno => $basketno3,
quantity => 20,
rrp => 11,
ecost => 11,
}
-);
-$ordernumber4 = C4::Acquisition::NewOrder(
+)->insert;
+my $ordernumber3 = $order3->{ordernumber};
+
+my $order4 = Koha::Acquisition::Order->new(
{
basketno => $basketno4,
quantity => 20,
ecost => 11,
quantityreceived => 20
}
-);
+)->insert;
+my $ordernumber4 = $order4->{ordernumber};
#Test cases:
# Sample datas :
use C4::Acquisition;
use C4::Dates;
+use Koha::Acquisition::Order;
+
use YAML;
my $dbh = C4::Context->dbh;
$dbh->{AutoCommit} = 0;
my $number_of_orders_to_move = 0;
for my $infos (@order_infos) {
for ( 1 .. $infos->{pending_quantity} ) {
- my $ordernumber = C4::Acquisition::NewOrder(
+ my $order = Koha::Acquisition::Order->new(
{
basketno => $basketno,
biblionumber => $biblionumber,
uncertainprice => 0,
gstrate => 0,
}
- );
+ )->insert;
+ my $ordernumber = $order->{ordernumber};
push @{ $budgets{$infos->{budget_id}} }, $ordernumber;
$number_of_orders_to_move++;
}
for ( 1 .. $infos->{spent_quantity} ) {
- my $ordernumber = C4::Acquisition::NewOrder(
+ my $order = Koha::Acquisition::Order->new(
{
basketno => $basketno,
biblionumber => $biblionumber,
uncertainprice => 0,
gstrate => 0,
}
- );
+ )->insert;
+ my $ordernumber = $order->{ordernumber};
ModReceiveOrder({
biblionumber => $biblionumber,
ordernumber => $ordernumber,
use_ok('C4::Letters');
use t::lib::Mocks;
use Koha::DateUtils qw( dt_from_string output_pref );
+use Koha::Acquisition::Order;
my $dbh = C4::Context->dbh;
budget_name => "budget_name_test_letters",
});
-my $ordernumber;
my $bib = MARC::Record->new();
if (C4::Context->preference('marcflavour') eq 'UNIMARC') {
$bib->append_fields(
}
($biblionumber, $biblioitemnumber) = AddBiblio($bib, '');
-$ordernumber = C4::Acquisition::NewOrder(
+my $order = Koha::Acquisition::Order->new(
{
basketno => $basketno,
quantity => 1,
biblionumber => $biblionumber,
budget_id => $budgetid,
}
-);
+)->insert;
+my $ordernumber = $order->{ordernumber};
C4::Acquisition::CloseBasket( $basketno );
my $err;