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

(-)a/C4/Items.pm (-1 / +10 lines)
Lines 1828-1833 sub ToggleNewStatus { Link Here
1828
    my $report;
1828
    my $report;
1829
    for my $rule ( @rules ) {
1829
    for my $rule ( @rules ) {
1830
        my $age = $rule->{age};
1830
        my $age = $rule->{age};
1831
        # Default to using Days if there's an old item modification rule
1832
        # missing an ageunit value
1833
        my $unit = $rule->{ageunit} ? $rule->{ageunit} : 'Days';
1831
        # Default to using items.dateaccessioned if there's an old item modification rule
1834
        # Default to using items.dateaccessioned if there's an old item modification rule
1832
        # missing an agefield value
1835
        # missing an agefield value
1833
        my $agefield = $rule->{agefield} ? $rule->{agefield} : 'items.dateaccessioned';
1836
        my $agefield = $rule->{agefield} ? $rule->{agefield} : 'items.dateaccessioned';
Lines 1863-1869 sub ToggleNewStatus { Link Here
1863
            }
1866
            }
1864
        }
1867
        }
1865
        if ( defined $age ) {
1868
        if ( defined $age ) {
1866
            $query .= qq| AND TO_DAYS(NOW()) - TO_DAYS($agefield) >= ? |;
1869
            if ( defined $rule && $unit eq "Hours" && ( $agefield eq "items.damaged_on" || $agefield eq "items.itemlost_on" || $agefield eq "items.withdrawn_on" )) {
1870
                # Calculate item age based on hours since damaged_on, itemlost_on, withdrawn_on
1871
                $query .= qq| AND HOUR(TIMEDIFF(NOW(), $agefield)) >= ? |;
1872
            } else {
1873
                # Calculate item age based on days
1874
                $query .= qq| AND TO_DAYS(NOW()) - TO_DAYS($agefield) >= ? |;
1875
            }
1867
            push @params, $age;
1876
            push @params, $age;
1868
        }
1877
        }
1869
        my $sth = $dbh->prepare($query);
1878
        my $sth = $dbh->prepare($query);
(-)a/tools/automatic_item_modification_by_age.pl (-1 / +15 lines)
Lines 62-72 if ( $op eq 'update' ) { Link Here
62
    my @rules;
62
    my @rules;
63
    my @unique_ids = $cgi->multi_param('unique_id');
63
    my @unique_ids = $cgi->multi_param('unique_id');
64
    for my $unique_id ( @unique_ids ) {
64
    for my $unique_id ( @unique_ids ) {
65
        warn 'test';
65
        my @substitution_fields = $cgi->multi_param("substitution_field_$unique_id");
66
        my @substitution_fields = $cgi->multi_param("substitution_field_$unique_id");
66
        my @substitution_values = $cgi->multi_param("substitution_value_$unique_id");
67
        my @substitution_values = $cgi->multi_param("substitution_value_$unique_id");
67
        my @condition_fields = $cgi->multi_param("condition_field_$unique_id");
68
        my @condition_fields = $cgi->multi_param("condition_field_$unique_id");
68
        my @condition_values = $cgi->multi_param("condition_value_$unique_id");
69
        my @condition_values = $cgi->multi_param("condition_value_$unique_id");
69
        my @age_fields = $cgi->multi_param("agefield_$unique_id");
70
        my @age_fields = $cgi->multi_param("agefield_$unique_id");
71
        my @age_units = $cgi->multi_param("ageunit_$unique_id");
70
        my $rule = {
72
        my $rule = {
71
            substitutions => [],
73
            substitutions => [],
72
            conditions => [],
74
            conditions => [],
Lines 90-95 if ( $op eq 'update' ) { Link Here
90
        for my $age_field ( @age_fields ) {
92
        for my $age_field ( @age_fields ) {
91
            $rule->{agefield} = $age_field ? $age_field : "items.dateaccessioned";
93
            $rule->{agefield} = $age_field ? $age_field : "items.dateaccessioned";
92
        }
94
        }
95
96
        for my $age_unit ( @age_units ) {
97
            if ($rule->{agefield} ne 'items.damaged_on'
98
                && $rule->{agefield} ne 'items.itemlost_on'
99
                && $rule->{agefield} ne 'items.withdrawn_on') {
100
                $rule->{ageunit} = "Days";
101
            } else {
102
                $rule->{ageunit} = $age_unit ? $age_unit : "Days";
103
            }
104
        }
105
93
        push @rules, $rule;
106
        push @rules, $rule;
94
    }
107
    }
95
    my $syspref_content = to_json( \@rules );
108
    my $syspref_content = to_json( \@rules );
Lines 116-124 if ( $@ ) { Link Here
116
my @item_fields = map { "items.$_" } Koha::Items->columns;
129
my @item_fields = map { "items.$_" } Koha::Items->columns;
117
my @biblioitem_fields = map { "biblioitems.$_" } Koha::Biblioitems->columns;
130
my @biblioitem_fields = map { "biblioitems.$_" } Koha::Biblioitems->columns;
118
my @age_fields = ('items.dateaccessioned', 'items.replacementpricedate', 'items.datelastborrowed', 'items.datelastseen', 'items.damaged_on', 'items.itemlost_on', 'items.withdrawn_on');
131
my @age_fields = ('items.dateaccessioned', 'items.replacementpricedate', 'items.datelastborrowed', 'items.datelastseen', 'items.damaged_on', 'items.itemlost_on', 'items.withdrawn_on');
132
my @age_units = ('Hours', 'Days');
119
$template->param(
133
$template->param(
120
    op => $op,
134
    op => $op,
121
    messages => \@messages,
135
    messages => \@messages,
136
    ageunits => [ @age_units ],
122
    agefields => [ @age_fields ],
137
    agefields => [ @age_fields ],
123
    condition_fields => [ @item_fields, @biblioitem_fields ],
138
    condition_fields => [ @item_fields, @biblioitem_fields ],
124
    substitution_fields => \@item_fields,
139
    substitution_fields => \@item_fields,
125
- 

Return to bug 21173