One is to add auto_renewal as a field in the Circ::Circulater::Circulator class and pass auto_renewal => 1 as an argument when doing the renewals via the auto-renewal trigger. Then, modifying the Circulator object's constructor to not set desk_renewal if auto_renewal is true.
The second way is to modify the Circulator's build_checkout_object method to set desk_renewal to false when it detects that an auto-renewal is being done.
The second method touches less code, but the first seems to fit in better with the way that Evergreen already processes renewals, and it looks like the second method will need to be done in both cases if the open-ils.circ.renew.auto method is retained because someone may call it in custom code without the auto_renewal argument.
I see two obvious ways to fix this:
One is to add auto_renewal as a field in the Circ::Circulate r::Circulator class and pass auto_renewal => 1 as an argument when doing the renewals via the auto-renewal trigger. Then, modifying the Circulator object's constructor to not set desk_renewal if auto_renewal is true.
The second way is to modify the Circulator's build_checkout_ object method to set desk_renewal to false when it detects that an auto-renewal is being done.
The second method touches less code, but the first seems to fit in better with the way that Evergreen already processes renewals, and it looks like the second method will need to be done in both cases if the open-ils. circ.renew. auto method is retained because someone may call it in custom code without the auto_renewal argument.