Lines 1560-1582
sub PrepareItemrecordDisplay {
Link Here
|
1560 |
} |
1560 |
} |
1561 |
|
1561 |
|
1562 |
sub ToggleNewStatus { |
1562 |
sub ToggleNewStatus { |
1563 |
my ( $params ) = @_; |
1563 |
my ($params) = @_; |
1564 |
my @rules = @{ $params->{rules} }; |
1564 |
my @rules = @{ $params->{rules} }; |
1565 |
my $report_only = $params->{report_only}; |
1565 |
my $report_only = $params->{report_only}; |
1566 |
|
1566 |
|
1567 |
my $dbh = C4::Context->dbh; |
1567 |
my $dbh = C4::Context->dbh; |
1568 |
my @errors; |
1568 |
my @errors; |
1569 |
my @item_columns = map { "items.$_" } Koha::Items->columns; |
1569 |
my @item_columns = map { "items.$_" } Koha::Items->columns; |
1570 |
my @biblioitem_columns = map { "biblioitems.$_" } Koha::Biblioitems->columns; |
1570 |
my @biblioitem_columns = map { "biblioitems.$_" } Koha::Biblioitems->columns; |
|
|
1571 |
my @biblio_columns = map { "biblio.$_" } Koha::Biblios->columns; |
1571 |
my $report; |
1572 |
my $report; |
1572 |
for my $rule ( @rules ) { |
1573 |
for my $rule (@rules) { |
1573 |
my $age = $rule->{age}; |
1574 |
my $age = $rule->{age}; |
|
|
1575 |
|
1574 |
# Default to using items.dateaccessioned if there's an old item modification rule |
1576 |
# Default to using items.dateaccessioned if there's an old item modification rule |
1575 |
# missing an agefield value |
1577 |
# missing an agefield value |
1576 |
my $agefield = $rule->{agefield} ? $rule->{agefield} : 'items.dateaccessioned'; |
1578 |
my $agefield = $rule->{agefield} ? $rule->{agefield} : 'items.dateaccessioned'; |
1577 |
my $conditions = $rule->{conditions}; |
1579 |
my $conditions = $rule->{conditions}; |
1578 |
my $substitutions = $rule->{substitutions}; |
1580 |
my $substitutions = $rule->{substitutions}; |
1579 |
foreach ( @$substitutions ) { |
1581 |
foreach (@$substitutions) { |
1580 |
( $_->{item_field} ) = ( $_->{field} =~ /items\.(.*)/ ); |
1582 |
( $_->{item_field} ) = ( $_->{field} =~ /items\.(.*)/ ); |
1581 |
} |
1583 |
} |
1582 |
my @params; |
1584 |
my @params; |
Lines 1585-1603
sub ToggleNewStatus {
Link Here
|
1585 |
SELECT items.* |
1587 |
SELECT items.* |
1586 |
FROM items |
1588 |
FROM items |
1587 |
LEFT JOIN biblioitems ON biblioitems.biblionumber = items.biblionumber |
1589 |
LEFT JOIN biblioitems ON biblioitems.biblionumber = items.biblionumber |
|
|
1590 |
LEFT JOIN biblio ON biblio.biblionumber = biblioitems.biblionumber |
1588 |
WHERE 1 |
1591 |
WHERE 1 |
1589 |
|; |
1592 |
|; |
1590 |
for my $condition ( @$conditions ) { |
1593 |
for my $condition (@$conditions) { |
1591 |
next unless $condition->{field}; |
1594 |
next unless $condition->{field}; |
1592 |
if ( |
1595 |
if ( grep { $_ eq $condition->{field} } @item_columns |
1593 |
grep { $_ eq $condition->{field} } @item_columns |
1596 |
or grep { $_ eq $condition->{field} } @biblioitem_columns |
1594 |
or grep { $_ eq $condition->{field} } @biblioitem_columns |
1597 |
or grep { $_ eq $condition->{field} } @biblio_columns ) |
1595 |
) { |
1598 |
{ |
1596 |
if ( $condition->{value} =~ /\|/ ) { |
1599 |
if ( $condition->{value} =~ /\|/ ) { |
1597 |
my @values = split /\|/, $condition->{value}; |
1600 |
my @values = split /\|/, $condition->{value}; |
1598 |
$query .= qq| AND $condition->{field} IN (| |
1601 |
$query .= qq| AND $condition->{field} IN (| . join( ',', ('?') x scalar @values ) . q|)|; |
1599 |
. join( ',', ('?') x scalar @values ) |
|
|
1600 |
. q|)|; |
1601 |
push @params, @values; |
1602 |
push @params, @values; |
1602 |
} else { |
1603 |
} else { |
1603 |
$query .= qq| AND $condition->{field} = ?|; |
1604 |
$query .= qq| AND $condition->{field} = ?|; |
Lines 1610-1625
sub ToggleNewStatus {
Link Here
|
1610 |
push @params, $age; |
1611 |
push @params, $age; |
1611 |
} |
1612 |
} |
1612 |
my $sth = $dbh->prepare($query); |
1613 |
my $sth = $dbh->prepare($query); |
1613 |
$sth->execute( @params ); |
1614 |
$sth->execute(@params); |
1614 |
while ( my $values = $sth->fetchrow_hashref ) { |
1615 |
while ( my $values = $sth->fetchrow_hashref ) { |
1615 |
my $biblionumber = $values->{biblionumber}; |
1616 |
my $biblionumber = $values->{biblionumber}; |
1616 |
my $itemnumber = $values->{itemnumber}; |
1617 |
my $itemnumber = $values->{itemnumber}; |
1617 |
my $item = Koha::Items->find($itemnumber); |
1618 |
my $item = Koha::Items->find($itemnumber); |
1618 |
for my $substitution ( @$substitutions ) { |
1619 |
for my $substitution (@$substitutions) { |
1619 |
my $field = $substitution->{item_field}; |
1620 |
my $field = $substitution->{item_field}; |
1620 |
my $value = $substitution->{value}; |
1621 |
my $value = $substitution->{value}; |
1621 |
next unless $substitution->{field}; |
1622 |
next unless $substitution->{field}; |
1622 |
next if ( defined $values->{ $substitution->{item_field} } and $values->{ $substitution->{item_field} } eq $substitution->{value} ); |
1623 |
next |
|
|
1624 |
if ( defined $values->{ $substitution->{item_field} } |
1625 |
and $values->{ $substitution->{item_field} } eq $substitution->{value} ); |
1623 |
$item->$field($value); |
1626 |
$item->$field($value); |
1624 |
push @{ $report->{$itemnumber} }, $substitution; |
1627 |
push @{ $report->{$itemnumber} }, $substitution; |
1625 |
} |
1628 |
} |