Evergreen ILS Website

IRC log for #evergreen, 2017-07-28

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat

All times shown according to the server's local time.

Time Nick Message
02:15 ahelten joined #evergreen
02:52 Jillianne joined #evergreen
04:31 pinesol_green News from qatests: Test Success <http://testing.evergreen-ils.org/~live>
06:27 rlefaive joined #evergreen
07:14 rjackson_isl joined #evergreen
08:02 Dyrcona joined #evergreen
08:39 mmorgan joined #evergreen
09:00 _adb joined #evergreen
09:03 maryj joined #evergreen
09:03 maryj_ joined #evergreen
09:05 kmlussier joined #evergreen
09:31 jvwoolf joined #evergreen
09:41 kmlussier joined #evergreen
09:46 rjackson_isl can someone point me to the logic that involves collection agency hooks when patron exceeds a designated thresh hold and later drops below that same value?
09:47 rjackson_isl background info: branch wanted all bills forgiven for their patrons that were initiated prior to a give date - forgot to not forgive bills owed to other libraries (oops)
09:48 rjackson_isl when the bills were forgiven(voided) patrons were taken out of collections
09:48 rjackson_isl when the mistake was corrected (unvoiding of same set of bills) the patron accounts did not go back into collections
09:51 bshum Uh, that sounds like a messy situation rjackson_isl
09:51 rjackson_isl yeah - it was rather EXCITING!
09:51 bshum To my recollection, there's a table for users to get added to for collections
09:51 bshum And I would think that adding back bills that would force someone into collections state, would be some sort of penalty threshold
09:52 bshum So refreshing a user's data or recalculating penalities might help
09:53 bshum Taking users out of collections wasn't something I ever touched
09:53 bshum I usually left that to the collections agency
09:54 rjackson_isl bshum: I was thinkg (perhaps in error) there was a hook that the agency had to take the patron out of collections and they collection agency triggered it somehow?
09:54 * bshum does not want to get involved with money
09:54 bshum They do have that ability
09:54 bshum Or they should
09:54 bshum At least, Unique did when I worked with them
09:54 rjackson_isl yeah - rjackson_isl has done some pretty dumb things in the past moeny related!
09:55 Dyrcona Well, it gets complicated when you start dealing with money.
09:55 Dyrcona You might think "it's only math," but you'd be mistaken. :)
09:56 Dyrcona It's easy to mess up, and boy, don't people get mad when you do. :)
09:56 rjackson_isl test plans and reviews are your friend in this case
09:57 berick rjackson_isl: there are 2 parts, the collection agency tracker (money.collections_tracker IIRC) and penalty.  the penalty can be locally cleared when the threshold goes back down, but the agency has to clear the collection_tracker entry
09:58 rjackson_isl berick: in the instance currently being reviewed there is a note on the account showing it going into collections and then back out when I did the oops
09:58 rjackson_isl it doesn't show going back into collections in the note when I corrected (or partially corrected)
09:59 Dyrcona rjackson_isl: Yeah, my first reaction was to think that users don't just get removed from collections. That has to be done manually, but I don't know that API.
09:59 rjackson_isl and the collection agency is indicating the account did not go back into collections even though it is over the thresh hold
09:59 Dyrcona So, kindof what berick said. :)
10:01 berick rjackson_isl: when you say a 'note', like a penalty entry under patron "messages"
10:01 rjackson_isl yeah - no row in money.collections_tracker for this patron
10:01 berick ?
10:02 rjackson_isl under the Notes entry "Patron Removed from Collections" as header with "Patron removed from collections for xxxx on 1/25/2017" in detail
10:03 kmlussier agoben++
10:03 berick the only way for a patron to be removed from money.collections_tracker is for someone (i.e. the agency) to make an API call for open-ils.collections.remove_from_collections
10:03 berick and there /is/ a collections API for adding patron notes too
10:04 berick which may be the source of the note in question
10:04 berick open-ils.collections.patron_note.create
10:04 berick so the agency may remove the patron and add a note indicating as much
10:04 rjackson_isl berick: so would it be up to the collection agency to re-add the patron when I did the adjustment back in January or is it because I un-voided existing bills their logic didn't pick it up?
10:05 rjackson_isl (probably one for the collection agency...)
10:06 Dyrcona I think the answer is, "Don't do that." :)
10:06 berick rjackson_isl: yes, and it depends on how they are doing it.  there are 2 APIs for finding patrons to put into collections.  one is based on amount owed and one is based on the presence of a threshold penalty (PATRON_EXCEEDS_COLLECTIONS_WARNING)
10:06 berick if they are using the penalty method, then the penalty has to exist on the patron beore they can go into collections
10:07 rjackson_isl berick: that sounds familiar - it has been a few months since this fiasco though so my reuse of brain cells comes into play
10:07 rjackson_isl berick++ bshum++ Dyrcona++
10:07 rjackson_isl tgif
10:08 berick :)
10:08 jeff ooh. collections talk.
10:08 * jeff reads up
10:08 jeff (scrolls back, whatever)
10:08 bshum No jeff, don't look at the light!
10:08 rjackson_isl jeff: hopefully you won't get to experince this pleasure
10:09 jeff bshum: I looked at the trap, Ray.
10:12 miker rjackson_isl: IIRC, there's a time threshold in the collections api as well, so it may be that the reinstated fines are too old to cause the patron to cross the threshold now... maybe
10:12 rjackson_isl miker: thanks for that info as well - in this case they were pretty old!
10:13 * miker sees if he can confirm. haven't looked at collections in... a long time
10:13 jeff When using the older (but probably more common) "users of interest" call, the vendor does a sweep using some basic criteria, then retrieves a number of details including transaction details, and can apply all manner of logic external to Evergreen.
10:13 rjackson_isl xact_start: 2015-05-xx
10:15 jeff You will likely have more luck by engaging your collections vendor to help diagnose the issue, rather than trying to fix it without their involvement -- which will likely result in a restart of the collections process on their end, the library being billed freshly for each patron being submitted, a new bill (if any) being added to the patron account, etc.
10:16 rjackson_isl jeff: in this case I think the library is willing to let the isue slide but wanted info on why :(
10:16 jeff You probably don't want much of if any of those things to happen.
10:17 jeff rjackson_isl: simplest is probably (after verifying with your vendor) "once we undid the mistake, the patron no longer met the criteria that originally put them into collections. even though they carried a qualifying balance, the transactions were now too old."
10:18 rjackson_isl once again a big ++ to the Evergreen community!
10:19 jeff "we've identified X patrons that were affected, and after consulting with {vendor} we think that we {can|can't} place them back into collections without a large amount of additional work", etc... :-)
10:19 Dyrcona Don't mess with bills. It's a gateway to Hell.
10:19 rjackson_isl yeah - either that or the other libraries involved didn't have a prosecutor involved :(
10:20 miker rjackson_isl: yeah ... there are a ton of things that could be stopping patrons from falling back into collections, if that's the goal. if it's UMS you're working with, they'll be as helpful with diagnostics as they can be, I'm sure
10:20 rjackson_isl mikre: I think the library is in direct contact on their side so I am going to stay out of this fight unless forced to join!
10:20 rjackson_isl miker: that is...
10:20 * Dyrcona shuts up and goes back to checking if his test db server has finished rebooting.
10:30 Dyrcona On a somewhat related note, I've been having trouble finding patrons that return fine item details with SIP2.
10:30 jeff Oh?
10:30 Dyrcona I'll have to look into because apparently the code isn't doing what I think it does.
10:30 jeff Before or after your format changes?
10:30 Dyrcona Well, I get no patron that return anything other than 0 in the fine items count field.
10:31 Dyrcona I'm dropping words again. Brain faster than the fingers.
10:31 Dyrcona Maybe I should try the charged items field?
10:31 jeff that's "items checked out"
10:31 Dyrcona Right.
10:32 Dyrcona I even ran the fine generator on my server before the last run.
10:32 Dyrcona Not sure if the modifications broke something or what.
10:32 Dyrcona Having a million other things to do and a vacation in between doesn't help.
10:35 Dyrcona It supposedly works with contrived examples in the Concerto data, i.e. after adding a fine to a patron.
10:35 jvwoolf joined #evergreen
10:37 jeff there have been issues in the past with regard to some SIP code using a different mat view (old money owed summaries, iirc), and there were gotchas with auth tokens and/or multiplex personality, but i think most of the ones that would affect this have been addressed.
10:38 jeff Dyrcona: i'm interested in what you find and might be able to help troubleshoot, but nothing immediately comes to mind for you to try.
10:38 jeff Dyrcona: what client are you testing with, and have you checked the raw sip message either over the wire or in the server logs to verify that the client isn't obscuring / mis-parsing the fixed field in question?
10:39 Dyrcona I'm using branches based on Evergreen 2.12.3 and SIPServer master with a copy of production data.
10:39 Dyrcona jeff: PHPSIP2, and yes, I've dumped the raw messages. I'm not getting the results that I expect.
10:40 Dyrcona If I ask for 10 fine item details, I get 10 empty fields on every patron.
10:40 jeff oh, i thought you were dealing with the fixed field being 0 instead of 10.
10:40 jeff the count.
10:40 Dyrcona Yes, I was about to explain. :)
10:41 Dyrcona I started picking patrons that owed money in blocks of ten or so in various intervals from the database.
10:42 Dyrcona I then requested patron info with fine item details requesting up to 10 responses.
10:42 Dyrcona That gave the results above.
10:43 jeff if you don't request any details, does the summary count show a non-zero value for the patron's fine items?
10:43 Dyrcona So, I switched to pulling all patrons that owe money, requesting patron info, and if fine items details was greater than 0, requesting again for that many items.
10:43 Dyrcona I get 0 for every patron.
10:43 jeff and at that point, they were all 0? ah.
10:43 Dyrcona Even after running the fine generator.
10:44 Dyrcona Since I haven't tested with unmodified code, I don't know what's broke. :)
10:44 jeff if you reduce it to one patron with bills that is showing a count of 0 fine items via SIP2, if you open the patron in the staff client and Refresh them, does that then change the fine items count in SIP2?
10:45 Dyrcona I haven't tried that.
10:48 jeff Does the Evergreen user that the SIPServer is authenticating as have VIEW_USER_TRANSACTIONS permission at the proper ou/depth?
10:48 jeff (needs to have it at the home_ou of the user you're looking up)
10:50 rlefaive left #evergreen
10:50 rjackson_isl followup note: found the "fix" script used and it only tried to update actor.usr_standing_penalty for existing collections warning entries - but in this case it should have done an add :(
10:52 jeff rjackson_isl: I will again point out that if you just try to get the patrons eligible for collections again, and they go to collections again, you'll likely make the process worse than if you work with the collections vendor to come up with an idea for fixing the mistake. The patrons are no longer in money.collections_tracker, so even if you get the facts such so that the patrons will match the criteria to be submitted, starting the submission / collectio
10:52 jeff (and i was verbose, and truncated myself)
10:53 rjackson_isl jeff++ thanks for the warning I am not going to mess with this again I promise!!!
10:53 Dyrcona jeff, it has VIEW_USER_FINES_SUMMARY but not VIEW_USER_TRANSACTIONS.
10:53 jeff ...even if you get the facts such so that the patrons will match the criteria to be submitted, starting the submission / collections process fresh is likely a Bad Idea. There isn't a way to put them "back where they were" in the collections process without involving your collections vendor and having careful coordination.
10:54 rjackson_isl messing with money is a bad idea - but I was out-voted!
10:54 jeff rjackson_isl: you're welcome :-)
10:55 Dyrcona jeff thanks for the suggestions, I'm going to rebuild my test vm and give i another whirl.
10:55 Dyrcona s/i/it/
10:56 jeff Dyrcona: it could be as simple as that, then.
10:56 * jeff finds things he wants to change
10:57 Dyrcona It could be as simple as changing/adding a permission.
10:57 Dyrcona Actually, before I blow it all away and resintall, I'll give that a whirl. :)
11:00 jeff also, if you have Evergreen logging turned up to debug, the lines matching "OILS: Patron->fine_items" will be likely helpful/instructive
11:01 jeff especially if they match "OILS: Patron->fine_items() ERROR: "
11:01 jeff which is just one thing that i want to fix.
11:01 jeff (burying an ERROR in a DEBUG)
11:02 jeff (my fault, originally)
11:02 jeff I'm also wondering why I went with the history form of open-ils.actor.user.transac​tions.history.have_balance here.
11:04 Dyrcona Dunno. :)
11:05 Dyrcona I'm trying again.
11:05 Dyrcona Well, after I run the fine generator again, just to be up to date.
11:06 jeff Ah, because that's probably the most appropriate API call anyway.
11:06 jeff (the history variant)
11:06 jeff But I'll double check myself.
11:09 jeff oh, and at least one of the gotchas i was thinking of is probably still present.
11:10 jeff the total amount of money / balance is based on retrieve_money_open_user_summary
11:10 jeff (this doesn't affect you)
11:10 jeff (probably doesn't affect your current problem, that is)
11:14 Dyrcona jeff: Here's the client script, if you're interested: https://pastebin.com/5jm9m2h3
11:15 Dyrcona And, I meant to add debug settings to PHPSIP2 so it can dump the messages, but I didn't get to that, yet. :)
11:20 Dyrcona jeff++ Looks like it was a permissions issue.
11:20 jeff Oh good!
11:21 Dyrcona I'm getting out put at least.
11:21 jeff Excellent.
11:21 Dyrcona Until this happened: PHP Fatal error:  Uncaught Exception: _parse64 failed to parse message in /home/opensrf/PHPSIP2/sip2client.class.php:562
11:23 Dyrcona Bet some field has a | in it.
11:23 jeff encoding error on a title? :-)
11:23 jeff heh.
11:23 Dyrcona Yeah, or an encoding error.
11:24 jeff oh hey, here's why this is taking a while: `Seq Scan on circulation circ`
11:24 Dyrcona yeah, that might take a while. :)
11:25 Dyrcona A dozen or more million rows, I'm sure.
11:27 * jeff disables pager and upgrades to EXPLAIN ANALYZE for the real thing
11:28 * Dyrcona has been using -P pager with psql a lot lately.
11:31 Dyrcona agoben++
11:56 jihpringle joined #evergreen
11:59 Christineb joined #evergreen
12:07 abowling joined #evergreen
12:27 abowling rjackson++ for helping with an error of omission
13:05 * jeff successfully resists the urge to over-optimize a weeding report query
13:05 jeff (for now!)
13:58 jvwoolf left #evergreen
14:39 ningalls joined #evergreen
14:56 Jillianne joined #evergreen
15:06 gmcharlt https://evergreen-ils.org/evergr​een-2-11-7-and-2-12-4-released/
15:11 kmlussier gmcharlt++ dbwells++ Bmagic++
15:11 gmcharlt kmlussier++
15:27 jeff gmcharlt++ dbwells++ Bmagic++ kmlussier++
15:31 pinesol_green [evergreen|Galen Charlton] forward port 2.12.3-2.12.4 schema update - <http://git.evergreen-ils.org/?p=​Evergreen.git;a=commit;h=a7b4349>
15:56 rlefaive joined #evergreen
16:15 jeff When a single library holds a given item, and someone places a hold request on that item, and only THEN is the item found to be missing (and marked as such), I don't think we have an established workflow for letting the patron know that they're not going to be getting the item.
16:15 jeff Instead, the request hangs out until it comes up on somebody's "old unfilled holds" report or similar.
16:16 jeff Or, in this case, a "unfulfillable holds" report.
16:17 mtcarlson joined #evergreen
16:20 mmorgan jeff: this happens a lot in our consortium.
16:20 mmorgan Similarly, if all copies become long overdue when there are still holds to be filled.
16:22 mmorgan We generate and post a "Hopeless Holds" report daily.
16:31 pinesol_green News from qatests: Test Success <http://testing.evergreen-ils.org/~live>
16:44 abneiman jeff: when I was at KCPL we did a weekly "Hopeless Holds" report -- based on a version that NC Cardinal did.  It let us know when the amount of targetable copies dropped to 0 (lost, missing, claimed returned, etc) on titles with holds.  Interacted a little wonkily with metarecord holds, IIRC, but it got the job done.
16:46 mmorgan Ours only looks at title holds, so, not perfect, but also gets the job done (mostly).
16:46 abneiman jeff: see slide 22 of this presentation:  https://evergreen-ils.org/wp-content/uploads/2015/​11/eg16-Oops-I-accidentally-deleted-something-and-​other-small-problems-bite-sized-reports-to-help-yo​u-find-and-fix-problems-in-your-ILS.compressed.pdf
16:47 abneiman the one I used was slightly different but I don't have a version of it handy right now
16:59 mmorgan left #evergreen
17:06 jeff mmorgan++ abneiman++ thanks. Nice to see alternate approaches.
17:28 jeff We're using Jasper for reporting, so I have an SQL query that gives "unfulfillable" holds for a given library based on the hold having no matching rows in action.hold_copy_map. So far, I think I'm getting reasonable results. Some/all of these already show up on our holds/copy ratio reports, but I think we're overdue for having a report dedicated to these that people pay attention to sooner rather than later.
17:30 abneiman jeff: it's definitely a customer service plus.  KCPL was so small, we only had a handful (5-6) per week, but patrons (and the acquisitions librarian) really appreciated being notified.
17:33 jeff And we often have the option of asking them if they'd like us to re-request through the statewide ILL system on their behalf.
17:34 jeff I was interested, so I flipped a NOT EXISTS to an EXISTS in the query, and looked at old holds that have entries in action.hold_copy_map but aren't fulfilled for some reason.
17:34 jeff So far, lots of suspended holds (logical) and lots of holds on "on order" copies that probably aren't ever going to become "real" copies.
17:34 jeff (book cancelled, etc)
17:36 jeff Not all, though... Hrm. More to look at later!
17:38 _adb happy sysadmin appreciation day, everyone. i got you a cat: https://i.imgur.com/YCjGkKL.gifv
17:46 gmcharlt awwwwww
17:46 gmcharlt _adb++
18:25 jvwoolf joined #evergreen
18:26 jvwoolf left #evergreen
20:10 ahelten Question: which GUI do you use for postgresql database management? I'm not very savvy with postgresql command line so prefer a GUI for admin (like scheduling backups). I've used webmin in the past, is that still one of the better options?
22:49 jvwoolf joined #evergreen

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat