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

(-)a/C4/Acquisition.pm (-2 / +3 lines)
Lines 1434-1439 sub ModReceiveOrder { Link Here
1434
        $sth->finish;
1434
        $sth->finish;
1435
1435
1436
        delete $order->{'ordernumber'};
1436
        delete $order->{'ordernumber'};
1437
        $order->{'budget_id'} = ( $budget_id || $order->{'budget_id'} );
1437
        $order->{'quantity'} = $quantrec;
1438
        $order->{'quantity'} = $quantrec;
1438
        $order->{'quantityreceived'} = $quantrec;
1439
        $order->{'quantityreceived'} = $quantrec;
1439
        $order->{'datereceived'} = $datereceived;
1440
        $order->{'datereceived'} = $datereceived;
Lines 1452-1460 sub ModReceiveOrder { Link Here
1452
    } else {
1453
    } else {
1453
        $sth=$dbh->prepare("update aqorders
1454
        $sth=$dbh->prepare("update aqorders
1454
                            set quantityreceived=?,datereceived=?,invoiceid=?,
1455
                            set quantityreceived=?,datereceived=?,invoiceid=?,
1455
                                unitprice=?,rrp=?,ecost=?
1456
                                unitprice=?,rrp=?,ecost=?,budget_id=?
1456
                            where biblionumber=? and ordernumber=?");
1457
                            where biblionumber=? and ordernumber=?");
1457
        $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber);
1458
        $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$budget_id,$biblionumber,$ordernumber);
1458
        $sth->finish;
1459
        $sth->finish;
1459
    }
1460
    }
1460
    return ($datereceived, $new_ordernumber);
1461
    return ($datereceived, $new_ordernumber);
(-)a/C4/SQLHelper.pm (-1 / +1 lines)
Lines 406-412 sub _filter_hash{ Link Here
406
		## supposed to be a hash of simple values, hashes of arrays could be implemented
406
		## supposed to be a hash of simple values, hashes of arrays could be implemented
407
		$filter_input->{$field}=format_date_in_iso($filter_input->{$field})
407
		$filter_input->{$field}=format_date_in_iso($filter_input->{$field})
408
          if $columns->{$field}{Type}=~/date/ &&
408
          if $columns->{$field}{Type}=~/date/ &&
409
             $filter_input->{$field} !~C4::Dates->regexp("iso");
409
             ($filter_input->{$field} && $filter_input->{$field} !~C4::Dates->regexp("iso"));
410
		my ($tmpkeys, $localvalues)=_Process_Operands($filter_input->{$field},"$tablename.$field",$searchtype,$columns);
410
		my ($tmpkeys, $localvalues)=_Process_Operands($filter_input->{$field},"$tablename.$field",$searchtype,$columns);
411
		if (@$tmpkeys){
411
		if (@$tmpkeys){
412
			push @values, @$localvalues;
412
			push @values, @$localvalues;
(-)a/acqui/finishreceive.pl (-1 / +2 lines)
Lines 55-60 my $cnt = 0; Link Here
55
my $ecost            = $input->param('ecost');
55
my $ecost            = $input->param('ecost');
56
my $rrp              = $input->param('rrp');
56
my $rrp              = $input->param('rrp');
57
my $note             = $input->param("note");
57
my $note             = $input->param("note");
58
my $bookfund         = $input->param("bookfund");
58
my $order            = GetOrder($ordernumber);
59
my $order            = GetOrder($ordernumber);
59
60
60
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
61
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
Lines 94-100 if ($quantityrec > $origquantityrec ) { Link Here
94
            $order->{ecost},
95
            $order->{ecost},
95
            $invoiceid,
96
            $invoiceid,
96
            $order->{rrp},
97
            $order->{rrp},
97
            undef,
98
            $bookfund,
98
            $datereceived,
99
            $datereceived,
99
            \@received_items,
100
            \@received_items,
100
        );
101
        );
(-)a/acqui/orderreceive.pl (-2 / +33 lines)
Lines 69-75 use C4::Auth; Link Here
69
use C4::Output;
69
use C4::Output;
70
use C4::Dates qw/format_date/;
70
use C4::Dates qw/format_date/;
71
use C4::Bookseller qw/ GetBookSellerFromId /;
71
use C4::Bookseller qw/ GetBookSellerFromId /;
72
use C4::Budgets qw/ GetBudget /;
72
use C4::Budgets qw/ GetBudget GetBudgetHierarchy CanUserUseBudget GetBudgetPeriods /;
73
use C4::Members;
73
use C4::Members;
74
use C4::Branch;    # GetBranches
74
use C4::Branch;    # GetBranches
75
use C4::Items;
75
use C4::Items;
Lines 93-99 my $bookseller = GetBookSellerFromId($booksellerid); Link Here
93
my $results;
93
my $results;
94
$results = SearchOrder($ordernumber) if $ordernumber;
94
$results = SearchOrder($ordernumber) if $ordernumber;
95
95
96
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
96
my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user(
97
    {
97
    {
98
        template_name   => "acqui/orderreceive.tmpl",
98
        template_name   => "acqui/orderreceive.tmpl",
99
        query           => $input,
99
        query           => $input,
Lines 227-232 $template->param( Link Here
227
    firstnamesuggestedby  => $suggestion->{firstnamesuggestedby},
227
    firstnamesuggestedby  => $suggestion->{firstnamesuggestedby},
228
);
228
);
229
229
230
my $borrower = GetMember( 'borrowernumber' => $loggedinuser );
231
my @budget_loop;
232
my $periods = GetBudgetPeriods( { 'budget_period_active' => 1 } );
233
foreach my $period (@$periods) {
234
    my $budget_hierarchy = GetBudgetHierarchy( $period->{'budget_period_id'} );
235
    my @funds;
236
    foreach my $r ( @{$budget_hierarchy} ) {
237
        next unless ( CanUserUseBudget( $borrower, $r, $userflags ) );
238
        if ( !defined $r->{budget_amount} || $r->{budget_amount} == 0 ) {
239
            next;
240
        }
241
        push @funds,
242
          {
243
            b_id  => $r->{budget_id},
244
            b_txt => $r->{budget_name},
245
            b_sel => ( $r->{budget_id} == $order->{budget_id} ) ? 1 : 0,
246
          };
247
    }
248
249
    @funds = sort { uc( $a->{b_txt} ) cmp uc( $b->{b_txt} ) } @funds;
250
251
    push @budget_loop,
252
      {
253
        'id'          => $period->{'budget_period_id'},
254
        'description' => $period->{'budget_period_description'},
255
        'funds'       => \@funds
256
      };
257
}
258
259
$template->{'VARS'}->{'budget_loop'} = \@budget_loop;
260
230
# regardless of the content of $unitprice e.g 0 or '' or any string will return in these cases 0.00
261
# regardless of the content of $unitprice e.g 0 or '' or any string will return in these cases 0.00
231
# and the 'IF' in the .tt will show 0.00 and not 'ecost' (see BZ 7129)
262
# and the 'IF' in the .tt will show 0.00 and not 'ecost' (see BZ 7129)
232
# So if $unitprice == 0 we don't create unitprice
263
# So if $unitprice == 0 we don't create unitprice
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt (-1 / +13 lines)
Lines 275-281 Link Here
275
    <legend>Accounting details</legend>
275
    <legend>Accounting details</legend>
276
       <ol>
276
       <ol>
277
       <li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
277
       <li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
278
       <li><label for="bookfund">Budget: </label><span> [% bookfund %] </span></li>
278
       <li><label for="bookfund">Fund: </label><select id="bookfund" name="bookfund">
279
            <option value="">Keep current ([% bookfund %])</option>
280
            [% FOREACH period IN budget_loop %]
281
                <optgroup label="[% period.description %]">
282
                [% FOREACH fund IN period.funds %]
283
                    [% IF ( fund.b_sel ) %]
284
                        <option value="[% fund.b_id %]" selected="selected">[% fund.b_txt %]</option>
285
                    [% ELSE %]
286
                        <option value="[% fund.b_id %]">[% fund.b_txt %]</option>
287
                    [% END %]
288
                [% END %]
289
            [% END %]
290
       </select> (Current: [% bookfund %])</li>
279
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
291
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
280
       <li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
292
       <li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
281
           [% IF ( edit and not subscriptionid) %]
293
           [% IF ( edit and not subscriptionid) %]
(-)a/t/db_dependent/Acquisition.t (-2 / +69 lines)
Lines 6-12 Link Here
6
use Modern::Perl;
6
use Modern::Perl;
7
use POSIX qw(strftime);
7
use POSIX qw(strftime);
8
8
9
use Test::More tests => 41;
9
use Test::More tests => 56;
10
10
11
BEGIN {
11
BEGIN {
12
    use_ok('C4::Acquisition');
12
    use_ok('C4::Acquisition');
Lines 119-124 for my $field ( @expectedfields ) { Link Here
119
    ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
119
    ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
120
}
120
}
121
121
122
my $invoiceid = AddInvoice(invoicenumber => 'invoice', booksellerid => 1, unknown => "unknown");
123
124
my ($datereceived, $new_ordernumber) = ModReceiveOrder(
125
    $biblionumber2,
126
    $ordernumber2,
127
    2,
128
    undef,
129
    12,
130
    12,
131
    $invoiceid,
132
    42,
133
    );
134
my $order2 = GetOrder( $ordernumber2 );
135
is($order2->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order');
136
is($order2->{'quantity'}, 40, '40 items on original order');
137
is($order2->{'budget_id'}, $budgetid, 'Budget on original order is unchanged');
138
139
$neworder = GetOrder( $new_ordernumber );
140
is($neworder->{'quantity'}, 2, '2 items on new order');
141
is($neworder->{'quantityreceived'}, 2, 'Splitting up order received items on new order');
142
is($neworder->{'budget_id'}, $budgetid, 'Budget on new order is unchanged');
143
144
my $budgetid2 = C4::Budgets::AddBudget(
145
    {
146
        budget_code => "budget_code_test_modrecv",
147
        budget_name => "budget_name_test_modrecv",
148
    }
149
);
150
151
($datereceived, $new_ordernumber) = ModReceiveOrder(
152
    $biblionumber2,
153
    $ordernumber3,
154
    2,
155
    undef,
156
    12,
157
    12,
158
    $invoiceid,
159
    42,
160
    $budgetid2
161
    );
162
163
my $order3 = GetOrder( $ordernumber3 );
164
is($order3->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order');
165
is($order3->{'quantity'}, 2, '2 items on original order');
166
is($order3->{'budget_id'}, $budgetid, 'Budget on original order is unchanged');
167
168
$neworder = GetOrder( $new_ordernumber );
169
is($neworder->{'quantity'}, 2, '2 items on new order');
170
is($neworder->{'quantityreceived'}, 2, 'Splitting up order received items on new order');
171
is($neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed');
172
173
($datereceived, $new_ordernumber) = ModReceiveOrder(
174
    $biblionumber2,
175
    $ordernumber3,
176
    2,
177
    undef,
178
    12,
179
    12,
180
    $invoiceid,
181
    42,
182
    $budgetid2
183
    );
184
185
$order3 = GetOrder( $ordernumber3 );
186
is($order3->{'quantityreceived'}, 2, 'Order not split up');
187
is($order3->{'quantity'}, 2, '2 items on order');
188
is($order3->{'budget_id'}, $budgetid2, 'Budget has changed');
189
122
END {
190
END {
123
    C4::Acquisition::DelOrder( $biblionumber1, $ordernumber1 );
191
    C4::Acquisition::DelOrder( $biblionumber1, $ordernumber1 );
124
    C4::Acquisition::DelOrder( $biblionumber2, $ordernumber2 );
192
    C4::Acquisition::DelOrder( $biblionumber2, $ordernumber2 );
125
- 

Return to bug 10403