Lines 79-84
BEGIN {
Link Here
|
79 |
CloneBudgetPeriod |
79 |
CloneBudgetPeriod |
80 |
CloneBudgetHierarchy |
80 |
CloneBudgetHierarchy |
81 |
MoveOrders |
81 |
MoveOrders |
|
|
82 |
FieldsForCalculatingFundValues |
82 |
); |
83 |
); |
83 |
} |
84 |
} |
84 |
|
85 |
|
Lines 341-350
sub ModBudgetPlan {
Link Here
|
341 |
sub GetBudgetSpent { |
342 |
sub GetBudgetSpent { |
342 |
my ($budget_id) = @_; |
343 |
my ($budget_id) = @_; |
343 |
my $dbh = C4::Context->dbh; |
344 |
my $dbh = C4::Context->dbh; |
344 |
# unitprice_tax_included should always been set here |
345 |
|
345 |
# we should not need to retrieve ecost_tax_included |
346 |
# Choose correct unitprice and ecost fields |
|
|
347 |
my ( $unitprice_field, $ecost_field ) = FieldsForCalculatingFundValues(); |
348 |
|
346 |
my $sth = $dbh->prepare(qq| |
349 |
my $sth = $dbh->prepare(qq| |
347 |
SELECT SUM( | . C4::Acquisition::get_rounding_sql("COALESCE(unitprice_tax_included, ecost_tax_included)") . qq| * quantity ) AS sum FROM aqorders |
350 |
SELECT SUM( | . C4::Acquisition::get_rounding_sql("COALESCE($unitprice_field, $ecost_field)") . qq| * quantity ) AS sum FROM aqorders |
348 |
WHERE budget_id = ? AND |
351 |
WHERE budget_id = ? AND |
349 |
quantityreceived > 0 AND |
352 |
quantityreceived > 0 AND |
350 |
datecancellationprinted IS NULL |
353 |
datecancellationprinted IS NULL |
Lines 374-381
sub GetBudgetSpent {
Link Here
|
374 |
sub GetBudgetOrdered { |
377 |
sub GetBudgetOrdered { |
375 |
my ($budget_id) = @_; |
378 |
my ($budget_id) = @_; |
376 |
my $dbh = C4::Context->dbh; |
379 |
my $dbh = C4::Context->dbh; |
|
|
380 |
|
381 |
# Get correct unitprice and ecost prices as possible |
382 |
my ( $unitprice_field, $ecost_field ) = FieldsForCalculatingFundValues(); |
383 |
|
377 |
my $sth = $dbh->prepare(qq| |
384 |
my $sth = $dbh->prepare(qq| |
378 |
SELECT SUM(| . C4::Acquisition::get_rounding_sql(qq|ecost_tax_included|) . qq| * quantity) AS sum FROM aqorders |
385 |
SELECT SUM(| . C4::Acquisition::get_rounding_sql(qq|$ecost_field|) . qq| * quantity) AS sum FROM aqorders |
379 |
WHERE budget_id = ? AND |
386 |
WHERE budget_id = ? AND |
380 |
quantityreceived = 0 AND |
387 |
quantityreceived = 0 AND |
381 |
datecancellationprinted IS NULL |
388 |
datecancellationprinted IS NULL |
Lines 550-567
sub GetBudgetHierarchy {
Link Here
|
550 |
foreach my $first_parent (@first_parents) { |
557 |
foreach my $first_parent (@first_parents) { |
551 |
_add_budget_children(\@sort, $first_parent, 0); |
558 |
_add_budget_children(\@sort, $first_parent, 0); |
552 |
} |
559 |
} |
|
|
560 |
|
561 |
# Get correct unitprice and ecost prices as possible |
562 |
my ( $unitprice_field, $ecost_field ) = FieldsForCalculatingFundValues(); |
563 |
|
553 |
if (!$skiptotals) { |
564 |
if (!$skiptotals) { |
554 |
# Get all the budgets totals in as few queries as possible |
565 |
# Get all the budgets totals in as few queries as possible |
555 |
my $hr_budget_spent = $dbh->selectall_hashref(q| |
566 |
my $hr_budget_spent = $dbh->selectall_hashref(q| |
556 |
SELECT aqorders.budget_id, aqbudgets.budget_parent_id, |
567 |
SELECT aqorders.budget_id, aqbudgets.budget_parent_id, |
557 |
SUM( | . C4::Acquisition::get_rounding_sql(qq|COALESCE(unitprice_tax_included, ecost_tax_included)|) . q| * quantity ) AS budget_spent |
568 |
SUM( | . C4::Acquisition::get_rounding_sql(qq|COALESCE($unitprice_field, $ecost_field)|) . q| * quantity ) AS budget_spent |
558 |
FROM aqorders JOIN aqbudgets USING (budget_id) |
569 |
FROM aqorders JOIN aqbudgets USING (budget_id) |
559 |
WHERE quantityreceived > 0 AND datecancellationprinted IS NULL |
570 |
WHERE quantityreceived > 0 AND datecancellationprinted IS NULL |
560 |
GROUP BY budget_id, budget_parent_id |
571 |
GROUP BY budget_id, budget_parent_id |
561 |
|, 'budget_id'); |
572 |
|, 'budget_id'); |
562 |
my $hr_budget_ordered = $dbh->selectall_hashref(q| |
573 |
my $hr_budget_ordered = $dbh->selectall_hashref(q| |
563 |
SELECT aqorders.budget_id, aqbudgets.budget_parent_id, |
574 |
SELECT aqorders.budget_id, aqbudgets.budget_parent_id, |
564 |
SUM( | . C4::Acquisition::get_rounding_sql(qq|ecost_tax_included|) . q| * quantity) AS budget_ordered |
575 |
SUM( | . C4::Acquisition::get_rounding_sql(qq|$ecost_field|) . q| * quantity) AS budget_ordered |
565 |
FROM aqorders JOIN aqbudgets USING (budget_id) |
576 |
FROM aqorders JOIN aqbudgets USING (budget_id) |
566 |
WHERE quantityreceived = 0 AND datecancellationprinted IS NULL |
577 |
WHERE quantityreceived = 0 AND datecancellationprinted IS NULL |
567 |
GROUP BY budget_id, budget_parent_id |
578 |
GROUP BY budget_id, budget_parent_id |
Lines 1399-1404
sub MoveOrders {
Link Here
|
1399 |
return \@report; |
1410 |
return \@report; |
1400 |
} |
1411 |
} |
1401 |
|
1412 |
|
|
|
1413 |
=head2 FieldsForCalculatingFundValues |
1414 |
|
1415 |
my ( $unitprice_field, $ecost_field ) = FieldsForCalculatingFundValues(); |
1416 |
|
1417 |
Fetch the tax inclusive or tax exclusive database fields for caclulating fund values based |
1418 |
on the value of the CalculateFundValuesIncludingTax system preference. |
1419 |
|
1420 |
=cut |
1421 |
|
1422 |
sub FieldsForCalculatingFundValues { |
1423 |
|
1424 |
# Choose correct unitprice and ecost fields |
1425 |
my $unitprice_field = 'unitprice_tax_included'; |
1426 |
my $ecost_field = 'ecost_tax_included'; |
1427 |
|
1428 |
if ( !C4::Context->preference('CalculateFundValuesIncludingTax') ) { |
1429 |
$unitprice_field = 'unitprice_tax_excluded'; |
1430 |
$ecost_field = 'ecost_tax_excluded'; |
1431 |
} |
1432 |
|
1433 |
return ( $unitprice_field, $ecost_field); |
1434 |
} |
1435 |
|
1402 |
END { } # module clean-up code here (global destructor) |
1436 |
END { } # module clean-up code here (global destructor) |
1403 |
|
1437 |
|
1404 |
1; |
1438 |
1; |