Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Migrate all users who have items checked out with "active": "true".
  • Migrate items to inventory. If item is checked out,  status must be set to 'Available' so that the /circulation/check-out-by-barcode API can process them.
  • Create all appropriate loan policies, request policies, overdue fine policies, patron notice policies, lost item policies and circulation rules.
  • Set service point calendar start dates to include the earliest possible loan date and latest possible due date according to loan policies.
  • Turn off circulation notice timers by creating a new module descriptor and deployment descriptor for mod-circulation without timers, and enabling for the tenant. It is desirable to create and POST new module and deployment descriptors rather than updating the existing ones so that the sysadmin can use the Okapi tenant install API to switch the module for the tenant seamlessly, with no other side effects, once the migration is complete. 
  • Load loans:
    • POST json to /circulation/check-out-by-barcode API
    • capture the json for the resulting loan record, change loan date, due dates date, and set "action" : "dueDateChanged" in the loan json. Updating the "action" value will ensure that the system will delete the original notices and create new notices for the loans with the 'nextRunTime' set as appropriate for the updated due date. Can also change "renewalCount" if desired.
    • PUT the updated loan json to /circulation/loans. 
  • Delete patron action sessions from the database, which will keep "just checked out" notices from being sent out. This can be done directly in the database:

    Code Block
    DELETE FROM tenantId_mod_circulation_storage.patron_action_session

    OR via a series of API calls

    • Get the Patron action session for the loan 

      Code Block
      GET {{baseUrl}}/patron-action-session-storage/patron-action-sessions?query=(loanId="LOAN_ID")


    • Delete the session

      Code Block
      DELETE {{baseUrl}}/patron-action-session-storage/patron-action-sessions/SESSION_ID


  • Delete all scheduled notices with date < today from the database. This will keep the system from sending out notices for loans for which the notices were presumably sent by the legacy system. This can be done directly in the database:

    Code Block
    DELETE FROM tenantId_mod_circulation_storage.scheduled_notice WHERE (jsonb->>'nextRunTime')::timestamp < NOW()

    OR via a series of API calls:

    • Capture the patronID from the resulting loan record

    • Get the scheduled notices with a next runtime less than today

      Code Block
      GET {{baseUrl}}/scheduled-notice-storage/scheduled-notices?query=(nextRunTime<"YYYY-MM-DD*" and loanId="LOAN_ID")


    • Capture the ids of the scheduled notices and make DELETE requests for each of them:

      Code Block
      DELETE {{baseUrl}}/scheduled-notice-storage/scheduled-notices/NOTICE_ID


  • Reenable timers by enabling mod-circulation with timers for tenant
  • Update user records to "active": "false" if appropriate.

...

  • Make sure you consider daylight savings saving time for importing loan information - depending on when the loan was created, the time offset may need to be different to get it to display correct correctly in the local time zone in FOLIO.

...