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

(-)a/C4/Acquisition.pm (-2 / +3 lines)
Lines 1348-1353 sub ModReceiveOrder { Link Here
1348
        $sth->finish;
1348
        $sth->finish;
1349
1349
1350
        delete $order->{'ordernumber'};
1350
        delete $order->{'ordernumber'};
1351
        $order->{'budget_id'} = ( $budget_id || $order->{'budget_id'} );
1351
        $order->{'quantity'} = $quantrec;
1352
        $order->{'quantity'} = $quantrec;
1352
        $order->{'quantityreceived'} = $quantrec;
1353
        $order->{'quantityreceived'} = $quantrec;
1353
        $order->{'datereceived'} = $datereceived;
1354
        $order->{'datereceived'} = $datereceived;
Lines 1366-1374 sub ModReceiveOrder { Link Here
1366
    } else {
1367
    } else {
1367
        $sth=$dbh->prepare("update aqorders
1368
        $sth=$dbh->prepare("update aqorders
1368
                            set quantityreceived=?,datereceived=?,invoiceid=?,
1369
                            set quantityreceived=?,datereceived=?,invoiceid=?,
1369
                                unitprice=?,rrp=?,ecost=?
1370
                                unitprice=?,rrp=?,ecost=?,budget_id=?
1370
                            where biblionumber=? and ordernumber=?");
1371
                            where biblionumber=? and ordernumber=?");
1371
        $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber);
1372
        $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$budget_id,$biblionumber,$ordernumber);
1372
        $sth->finish;
1373
        $sth->finish;
1373
    }
1374
    }
1374
    return ($datereceived, $new_ordernumber);
1375
    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 54-59 my $cnt = 0; Link Here
54
my $ecost            = $input->param('ecost');
54
my $ecost            = $input->param('ecost');
55
my $rrp              = $input->param('rrp');
55
my $rrp              = $input->param('rrp');
56
my $note             = $input->param("note");
56
my $note             = $input->param("note");
57
my $bookfund         = $input->param("bookfund");
57
my $order            = GetOrder($ordernumber);
58
my $order            = GetOrder($ordernumber);
58
59
59
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
60
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
Lines 93-99 if ($quantityrec > $origquantityrec ) { Link Here
93
            $order->{ecost},
94
            $order->{ecost},
94
            $invoiceid,
95
            $invoiceid,
95
            $order->{rrp},
96
            $order->{rrp},
96
            undef,
97
            $bookfund,
97
            $datereceived,
98
            $datereceived,
98
            \@received_items,
99
            \@received_items,
99
        );
100
        );
(-)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 226-231 $template->param( Link Here
226
    firstnamesuggestedby  => $suggestion->{firstnamesuggestedby},
226
    firstnamesuggestedby  => $suggestion->{firstnamesuggestedby},
227
);
227
);
228
228
229
my $borrower = GetMember( 'borrowernumber' => $loggedinuser );
230
my @budget_loop;
231
my $periods = GetBudgetPeriods( { 'budget_period_active' => 1 } );
232
foreach my $period (@$periods) {
233
    my $budget_hierarchy = GetBudgetHierarchy( $period->{'budget_period_id'} );
234
    my @funds;
235
    foreach my $r ( @{$budget_hierarchy} ) {
236
        next unless ( CanUserUseBudget( $borrower, $r, $userflags ) );
237
        if ( !defined $r->{budget_amount} || $r->{budget_amount} == 0 ) {
238
            next;
239
        }
240
        push @funds,
241
          {
242
            b_id  => $r->{budget_id},
243
            b_txt => $r->{budget_name},
244
            b_sel => ( $r->{budget_id} == $order->{budget_id} ) ? 1 : 0,
245
          };
246
    }
247
248
    @funds = sort { uc( $a->{b_txt} ) cmp uc( $b->{b_txt} ) } @funds;
249
250
    push @budget_loop,
251
      {
252
        'id'          => $period->{'budget_period_id'},
253
        'description' => $period->{'budget_period_description'},
254
        'funds'       => \@funds
255
      };
256
}
257
258
$template->{'VARS'}->{'budget_loop'} = \@budget_loop;
259
229
# regardless of the content of $unitprice e.g 0 or '' or any string will return in these cases 0.00
260
# regardless of the content of $unitprice e.g 0 or '' or any string will return in these cases 0.00
230
# and the 'IF' in the .tt will show 0.00 and not 'ecost' (see BZ 7129)
261
# and the 'IF' in the .tt will show 0.00 and not 'ecost' (see BZ 7129)
231
# So if $unitprice == 0 we don't create unitprice
262
# So if $unitprice == 0 we don't create unitprice
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt (-1 / +13 lines)
Lines 274-280 Link Here
274
    <legend>Accounting details</legend>
274
    <legend>Accounting details</legend>
275
       <ol>
275
       <ol>
276
       <li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
276
       <li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
277
       <li><label for="bookfund">Budget: </label><span> [% bookfund %] </span></li>
277
       <li><label for="bookfund">Fund: </label><select id="bookfund" name="bookfund">
278
            <option value="">Keep current ([% bookfund %])</option>
279
            [% FOREACH period IN budget_loop %]
280
                <optgroup label="[% period.description %]">
281
                [% FOREACH fund IN period.funds %]
282
                    [% IF ( fund.b_sel ) %]
283
                        <option value="[% fund.b_id %]" selected="selected">[% fund.b_txt %]</option>
284
                    [% ELSE %]
285
                        <option value="[% fund.b_id %]">[% fund.b_txt %]</option>
286
                    [% END %]
287
                [% END %]
288
            [% END %]
289
       </select> (Current: [% bookfund %])</li>
278
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
290
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
279
       <li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
291
       <li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
280
           [% IF ( edit and not subscriptionid) %]
292
           [% IF ( edit and not subscriptionid) %]
(-)a/t/db_dependent/Acquisition.t (-2 / +69 lines)
Lines 8-14 use POSIX qw(strftime); Link Here
8
8
9
use C4::Bookseller qw( GetBookSellerFromId );
9
use C4::Bookseller qw( GetBookSellerFromId );
10
10
11
use Test::More tests => 41;
11
use Test::More tests => 56;
12
12
13
BEGIN {
13
BEGIN {
14
    use_ok('C4::Acquisition');
14
    use_ok('C4::Acquisition');
Lines 127-130 for my $field ( @expectedfields ) { Link Here
127
    ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
127
    ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
128
}
128
}
129
129
130
my $invoiceid = AddInvoice(invoicenumber => 'invoice', booksellerid => 1, unknown => "unknown");
131
132
my ($datereceived, $new_ordernumber) = ModReceiveOrder(
133
    $biblionumber2,
134
    $ordernumber2,
135
    2,
136
    undef,
137
    12,
138
    12,
139
    $invoiceid,
140
    42,
141
    );
142
my $order2 = GetOrder( $ordernumber2 );
143
is($order2->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order');
144
is($order2->{'quantity'}, 40, '40 items on original order');
145
is($order2->{'budget_id'}, $budgetid, 'Budget on original order is unchanged');
146
147
$neworder = GetOrder( $new_ordernumber );
148
is($neworder->{'quantity'}, 2, '2 items on new order');
149
is($neworder->{'quantityreceived'}, 2, 'Splitting up order received items on new order');
150
is($neworder->{'budget_id'}, $budgetid, 'Budget on new order is unchanged');
151
152
my $budgetid2 = C4::Budgets::AddBudget(
153
    {
154
        budget_code => "budget_code_test_modrecv",
155
        budget_name => "budget_name_test_modrecv",
156
    }
157
);
158
159
($datereceived, $new_ordernumber) = ModReceiveOrder(
160
    $biblionumber2,
161
    $ordernumber3,
162
    2,
163
    undef,
164
    12,
165
    12,
166
    $invoiceid,
167
    42,
168
    $budgetid2
169
    );
170
171
my $order3 = GetOrder( $ordernumber3 );
172
is($order3->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order');
173
is($order3->{'quantity'}, 2, '2 items on original order');
174
is($order3->{'budget_id'}, $budgetid, 'Budget on original order is unchanged');
175
176
$neworder = GetOrder( $new_ordernumber );
177
is($neworder->{'quantity'}, 2, '2 items on new order');
178
is($neworder->{'quantityreceived'}, 2, 'Splitting up order received items on new order');
179
is($neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed');
180
181
($datereceived, $new_ordernumber) = ModReceiveOrder(
182
    $biblionumber2,
183
    $ordernumber3,
184
    2,
185
    undef,
186
    12,
187
    12,
188
    $invoiceid,
189
    42,
190
    $budgetid2
191
    );
192
193
$order3 = GetOrder( $ordernumber3 );
194
is($order3->{'quantityreceived'}, 2, 'Order not split up');
195
is($order3->{'quantity'}, 2, '2 items on order');
196
is($order3->{'budget_id'}, $budgetid2, 'Budget has changed');
197
130
$dbh->rollback;
198
$dbh->rollback;
131
- 

Return to bug 6473