2026-10-12 17:07:25,770 INFO inventory.services.inventory_service: Auto-listed Success Card: You're Adding Up To Success! at Tai Bookstore/website.
2026-10-12 17:08:41,893 INFO inventory.services.inventory_service: Auto-listed Success Card: Stay Cool. Think Big.Win! at Tai Bookstore/website.
2026-10-12 17:09:55,553 INFO inventory.services.inventory_service: Auto-listed Success Card: Good Luck On Your Exams at Tai Bookstore/website.
2026-10-12 17:11:08,850 INFO inventory.services.inventory_service: Auto-listed Success Card: You Goat This at Tai Bookstore/website.
2026-10-12 17:13:50,671 INFO inventory.services.inventory_service: Auto-listed Success Card: We Bee Leaf In You at Tai Bookstore/website.
2026-10-12 17:21:45,399 INFO inventory.services.inventory_service: Auto-listed Success Card: Rooting For You at Tai Bookstore/website.
2026-10-12 17:27:16,862 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #570.
2026-10-12 17:27:41,058 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #571.
2026-10-12 17:27:59,033 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #572.
2026-10-12 17:28:35,921 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #573.
2026-10-12 17:28:53,394 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #574.
2026-10-12 17:29:11,272 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #575.
2026-10-12 17:29:32,575 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #576.
2026-10-12 17:29:49,764 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #577.
2026-10-12 17:30:18,496 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #578.
2026-10-12 17:31:34,015 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #579.
2026-10-12 17:31:57,774 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #580.
2026-10-12 17:32:16,133 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #581.
2026-10-12 17:32:34,112 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #582.
2026-10-12 17:32:48,998 INFO inventory.services.inventory_service: Stock received: Birthday Card: Happy Birthday × 3 → Main Warehouse (ref=)
2026-10-12 17:32:57,479 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #583.
2026-10-12 17:35:52,886 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #584.
2026-10-12 17:36:25,545 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #585.
2026-10-12 17:36:43,953 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #586.
2026-10-12 17:37:05,955 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #587.
2026-10-12 17:37:26,824 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #588.
2026-10-12 18:06:20,171 INFO inventory.services.sales_service: Sale recorded: INV-20261012-C24DE1 | KES 90.00 | channel=walk_in
2026-10-12 18:07:29,537 INFO inventory.services.sales_service: Sale recorded: INV-20261012-6FD3C5 | KES 100.00 | channel=walk_in
2026-10-12 18:19:05,835 INFO inventory.services.inventory_service: Stock received: Graduation Card: Congradulations on Your Graduation × 5 → Main Warehouse (ref=)
2026-10-12 18:19:33,206 INFO inventory.services.inventory_service: Stock received: Graduation Card: The Tassel was Worth the Hassle × 5 → Main Warehouse (ref=)
2026-10-12 18:19:47,748 INFO inventory.services.inventory_service: Stock received: Graduation Card: You Did it, Go and Make it Count × 5 → Main Warehouse (ref=)
2026-10-12 18:19:56,755 INFO inventory.services.inventory_service: Stock received: Success Card: Good Luck On Your Exams × 2 → Main Warehouse (ref=)
2026-10-12 18:20:06,640 INFO inventory.services.inventory_service: Stock received: Success Card: Rooting For You × 2 → Main Warehouse (ref=)
2026-10-12 18:20:21,818 INFO inventory.services.inventory_service: Stock received: Success Card: Stay Cool. Think Big.Win! × 2 → Main Warehouse (ref=)
2026-10-12 18:20:35,903 INFO inventory.services.inventory_service: Stock received: Success Card: We Bee Leaf In You × 2 → Main Warehouse (ref=)
2026-10-12 18:20:47,474 INFO inventory.services.inventory_service: Stock received: Success Card: You Goat This × 2 → Main Warehouse (ref=)
2026-10-12 18:20:58,706 INFO inventory.services.inventory_service: Stock received: Success Card: You're Adding Up To Success! × 2 → Main Warehouse (ref=)
2026-10-12 18:21:09,503 INFO inventory.services.inventory_service: Stock received: Birthday Card: Another Year? Donut Worry About it × 3 → Main Warehouse (ref=)
2026-10-12 18:22:20,369 INFO inventory.services.inventory_service: Stock received: Birthday Card: Crown Me Birthday Boy × 3 → Main Warehouse (ref=)
2026-10-12 18:22:29,949 INFO inventory.services.inventory_service: Stock received: Birthday Card: Grow Up Too Fast × 3 → Main Warehouse (ref=)
2026-10-12 18:22:50,771 INFO inventory.services.inventory_service: Stock received: Birthday Card: Have A Purr-fect Birthday × 3 → Main Warehouse (ref=)
2026-10-12 18:22:59,817 INFO inventory.services.inventory_service: Stock received: Birthday Card: Late But With Love × 3 → Main Warehouse (ref=)
2026-10-12 18:23:11,822 INFO inventory.services.inventory_service: Stock received: Birthday Card: Have A  Uni-Tastic Birthday × 3 → Main Warehouse (ref=)
2026-10-12 18:23:21,259 INFO inventory.services.inventory_service: Stock received: Birthday Card: Oh My Guac! It's Your Birthday × 3 → Main Warehouse (ref=)
2026-10-12 18:23:32,929 INFO inventory.services.inventory_service: Stock received: Birthday Card: Start Your Birthday Engines! × 3 → Main Warehouse (ref=)
2026-10-12 18:23:45,637 INFO inventory.services.inventory_service: Stock received: Birthday Card: Today's Royal Rule; More Cake, More Fun, More Cake! × 3 → Main Warehouse (ref=)
2026-10-13 09:02:29,719 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #589.
2026-10-13 09:06:44,130 INFO inventory.services.inventory_service: Stock received: BASICS OF FINANCIAL LITERACY FOR TEENS AND BEGINNERS × 10 → Main Warehouse (ref=)
2026-10-13 09:59:52,175 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #590.
2026-10-13 10:08:10,864 INFO inventory.services.sales_service: Sale recorded: INV-20261013-D0D41D | KES 290.00 | channel=walk_in
2026-10-13 11:22:49,026 INFO inventory.services.sales_service: Sale recorded: INV-20261013-516D09 | KES 1890.00 | channel=walk_in
2026-10-13 17:49:55,929 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #591.
2026-10-13 17:50:33,663 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #592.
2026-10-13 17:51:14,988 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #593.
2026-10-13 17:51:51,560 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #594.
2026-10-13 17:52:42,267 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #595.
2026-10-13 17:53:21,834 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #596.
2026-10-13 17:53:57,740 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #597.
2026-10-13 17:54:27,453 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #598.
2026-10-13 18:02:14,578 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #599.
2026-10-13 18:06:02,416 ERROR django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-13 18:06:02,422 ERROR system_logs: [system] log.django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/ ref=/admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-13 18:06:41,011 ERROR django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-13 18:06:41,012 ERROR system_logs: [system] log.django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/ ref=/admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-14 07:08:01,117 ERROR django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-14 07:08:01,122 ERROR system_logs: [system] log.django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/ ref=/admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-14 12:22:06,942 INFO inventory.services.sales_service: Sale recorded: INV-20261014-50CBE0 | KES 105.00 | channel=walk_in
2026-10-14 16:50:23,690 INFO catalog_app.services.notification_service: Application-submitted notice sent to 2 admin(s) for application #14.
2026-10-14 17:27:26,519 INFO inventory.services.sales_service: Sale recorded: INV-20261014-202C83 | KES 50.00 | channel=walk_in
2026-10-14 18:15:55,766 INFO catalog_app.services.notification_service: Approval agreement emailed: application=14 author=ian mgenyi cc=2
2026-10-14 19:20:35,767 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #600.
2026-10-14 19:42:42,165 INFO inventory.services.inventory_service: Stock received: Graduation card: Customised × 2 → Main Warehouse (ref=)
2026-10-14 19:46:49,603 INFO inventory.services.sales_service: Sale recorded: INV-20261014-35ADAF | KES 680.00 | channel=phone
2026-10-14 19:47:48,759 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #601.
2026-10-14 19:53:36,817 INFO catalog_app.services.notification_service: Legacy-invitation-submitted notice sent to 2 admin(s) for invitation #2.
2026-10-15 09:09:26,476 INFO catalog_app.services.notification_service: Approval agreement emailed: legacy invitation=2 author=Elijah Opondo Ochiel cc=2
2026-10-15 09:10:13,910 INFO inventory.services.inventory_service: Stock received: GOOD NEWS Bible × 5 → Main Warehouse (ref=)
2026-10-15 15:10:38,292 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #602.
2026-10-15 15:10:55,784 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #603.
2026-10-15 15:11:16,343 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #604.
2026-10-15 15:11:22,187 INFO inventory.services.inventory_service: Auto-listed Faithful Reflections Adult Coloring Book by Citrine Topaz after first stock receipt.
2026-10-15 15:11:22,204 INFO inventory.services.inventory_service: Stock received: Faithful Reflections Adult Coloring Book by Citrine Topaz × 2 → Main Warehouse (ref=)
2026-10-15 15:11:34,320 INFO inventory.services.inventory_service: Auto-listed Unapologetically Her by Citrine Topaz after first stock receipt.
2026-10-15 15:11:34,326 INFO inventory.services.inventory_service: Stock received: Unapologetically Her by Citrine Topaz × 1 → Main Warehouse (ref=)
2026-10-15 15:11:51,616 INFO inventory.services.inventory_service: Auto-listed Sass and Shade Adult Coloring Book by Citrine Topaz after first stock receipt.
2026-10-15 15:11:51,627 INFO inventory.services.inventory_service: Stock received: Sass and Shade Adult Coloring Book by Citrine Topaz × 2 → Main Warehouse (ref=)
2026-10-15 15:12:06,660 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #605.
2026-10-15 15:12:28,585 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #606.
2026-10-15 15:14:34,387 INFO catalog_app.services.notification_service: Application-submitted notice sent to 2 admin(s) for application #15.
2026-10-15 15:29:50,899 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #607.
2026-10-15 15:31:17,519 INFO inventory.services.inventory_service: Stock received: AN AUTOBIOGRAPHY: AVIATOR PAR EXCELLENCE × 3 → Main Warehouse (ref=)
2026-10-15 15:31:58,728 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #608.
2026-10-15 15:33:19,115 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #609.
2026-10-15 15:34:24,408 INFO inventory.services.inventory_service: Stock received: I AM BECAUSE WE ARE × 3 → Main Warehouse (ref=)
2026-10-15 15:34:33,063 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #610.
2026-10-15 15:34:48,563 INFO inventory.services.inventory_service: Stock received: I AM BECAUSE WE ARE × 5 → Main Warehouse (ref=)
2026-10-15 15:35:46,089 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #611.
2026-10-15 15:36:55,362 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #612.
2026-10-15 15:37:26,860 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #613.
2026-10-15 16:22:40,012 INFO inventory.services.inventory_service: Stock received: BORN TO BE UNSTOPPABLE × 5 → Main Warehouse (ref=)
2026-10-15 16:54:34,755 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #614.
2026-10-15 16:54:54,487 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #615.
2026-10-15 16:57:06,477 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #616.
2026-10-15 16:57:56,843 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #617.
2026-10-15 16:58:37,483 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #618.
2026-10-15 16:59:17,092 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #619.
2026-10-15 16:59:40,040 INFO inventory.services.inventory_service: Stock received: WHAT HAPPENED TO US? × 5 → Main Warehouse (ref=)
2026-10-15 17:00:55,153 WARNING system_logs: [inventory] stock.transfer.approval_failed: Approving internal transfer of 5 × "AFRICA IN SEARCH FOR TRANSITION: TOWARDS RESPONSIBLE CITIZENS" failed: Insufficient stock at Main Warehouse: available 3, requested 5. ref=0042
2026-10-15 17:03:03,942 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #620.
2026-10-15 17:04:46,775 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #621.
2026-10-15 17:05:04,557 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #622.
2026-10-15 17:05:27,575 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #623.
2026-10-15 17:05:52,493 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #624.
2026-10-15 17:06:35,703 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #625.
2026-10-15 17:06:55,089 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #626.
2026-10-15 17:07:27,502 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #627.
2026-10-15 17:07:53,829 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #628.
2026-10-15 17:40:41,739 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #629.
2026-10-15 17:41:19,323 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #630.
2026-10-15 17:42:02,050 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #631.
2026-10-15 17:42:51,545 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #632.
2026-10-15 17:43:38,020 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #633.
2026-10-15 17:44:16,978 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #634.
2026-10-15 17:44:50,702 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #635.
2026-10-15 17:45:30,259 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #636.
2026-10-15 17:46:15,962 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #637.
2026-10-15 17:50:31,694 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #638.
2026-10-15 17:51:40,841 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #639.
2026-10-15 17:52:20,422 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #640.
2026-10-15 17:54:41,294 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #641.
2026-10-15 18:12:21,601 INFO inventory.services.inventory_service: Stock received: CŨCŨ × 3 → Main Warehouse (ref=)
2026-10-15 18:27:35,081 INFO inventory.services.inventory_service: Stock received: BORN TO BE UNSTOPPABLE × 4 → Main Warehouse (ref=)
2026-10-15 18:27:58,412 INFO inventory.services.inventory_service: Stock received: WHAT HAPPENED TO US? × 2 → Main Warehouse (ref=)
2026-10-15 18:28:11,957 INFO inventory.services.inventory_service: Stock received: THE GEN Z PARENT × 3 → Main Warehouse (ref=)
2026-10-15 18:28:25,546 INFO inventory.services.inventory_service: Stock received: DESIRE AT DAWN × 3 → Main Warehouse (ref=)
2026-10-15 18:28:37,994 INFO inventory.services.inventory_service: Stock received: Tomorrow I Will Be Here × 3 → Main Warehouse (ref=)
2026-10-15 18:28:51,583 INFO inventory.services.inventory_service: Stock received: WHEN RIVERS SAY GOODBYE × 3 → Main Warehouse (ref=)
2026-10-15 18:29:04,132 INFO inventory.services.inventory_service: Stock received: A REFLECTION ON OUR CULTURES × 5 → Main Warehouse (ref=)
2026-10-15 18:29:15,517 INFO inventory.services.inventory_service: Stock received: BASICS OF FINANCIAL LITERACY FOR TEENS AND BEGINNERS × 5 → Main Warehouse (ref=)
2026-10-15 19:44:48,020 INFO inventory.services.sales_service: Sale recorded: INV-20261015-835FBF | KES 150.00 | channel=walk_in
2026-10-15 23:38:21,215 INFO inventory.services.inventory_service: Stock received: AFRICA IN SEARCH FOR TRANSITION: TOWARDS RESPONSIBLE CITIZENS × 167 → Main Warehouse (ref=)
2026-10-15 23:38:56,000 INFO inventory.services.inventory_service: Stock received: THE CROOKED SOCIETY REVISED EDITION × 4 → Main Warehouse (ref=)
2026-10-15 23:41:44,536 INFO inventory.services.inventory_service: Stock received: NAIROBI NOTES × 20 → Main Warehouse (ref=)
2026-10-15 23:42:39,501 INFO inventory.services.inventory_service: Stock received: DESIRE AT DAWN × 5 → Main Warehouse (ref=)
2026-10-15 23:42:56,258 INFO inventory.services.inventory_service: Stock received: CŨCŨ × 5 → Main Warehouse (ref=)
2026-10-16 10:30:11,628 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #642.
2026-10-16 10:31:51,309 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #643.
2026-10-16 10:33:01,536 INFO inventory.services.inventory_service: Stock received: THE CROOKED SOCIETY REVISED EDITION × 5 → Main Warehouse (ref=)
2026-10-16 10:33:04,363 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #644.
2026-10-16 10:33:50,801 INFO inventory.services.inventory_service: Stock received: SELLING TO INFORMAL MARKETS × 5 → Main Warehouse (ref=)
2026-10-16 10:34:25,956 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #645.
2026-10-16 10:35:28,150 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #646.
2026-10-16 10:36:51,469 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #647.
2026-10-16 11:22:08,308 INFO inventory.services.inventory_service: Stock received: RIITHO NTURENE × 2 → Main Warehouse (ref=)
2026-10-16 12:11:31,953 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #648.
2026-10-16 12:11:52,707 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #649.
2026-10-16 12:12:14,207 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #650.
2026-10-16 12:12:34,309 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #651.
2026-10-16 12:13:19,130 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #652.
2026-10-16 12:14:32,148 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #653.
2026-10-16 12:15:20,833 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #654.
2026-10-16 12:16:17,762 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #655.
2026-10-16 12:17:11,636 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #656.
2026-10-16 12:18:22,787 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #657.
2026-10-16 12:19:22,599 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #658.
2026-10-16 12:19:59,118 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #659.
2026-10-16 12:20:30,006 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #660.
2026-10-16 12:22:25,485 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #661.
2026-10-16 12:23:29,601 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #662.
2026-10-16 12:24:20,585 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #663.
2026-10-16 12:38:51,838 INFO inventory.services.sales_service: Sale recorded: INV-20261016-1DF9C4 | KES 120.00 | channel=walk_in
2026-10-16 14:57:23,302 INFO inventory.services.inventory_service: Stock received: CŨCŨ × 10 → Main Warehouse (ref=)
2026-10-16 14:57:36,921 INFO inventory.services.inventory_service: Stock received: WHAT HAPPENED TO US? × 10 → Main Warehouse (ref=)
2026-10-16 14:57:47,558 INFO inventory.services.inventory_service: Stock received: BORN TO BE UNSTOPPABLE × 10 → Main Warehouse (ref=)
2026-10-16 14:57:57,201 INFO inventory.services.inventory_service: Stock received: WHEN RIVERS SAY GOODBYE × 10 → Main Warehouse (ref=)
2026-10-16 14:58:06,930 INFO inventory.services.inventory_service: Stock received: Tomorrow I Will Be Here × 10 → Main Warehouse (ref=)
2026-10-16 15:02:11,519 INFO inventory.services.inventory_service: Stock received: CŨCŨ × 10 → Main Warehouse (ref=)
2026-10-16 15:02:25,031 INFO inventory.services.inventory_service: Stock received: WHAT HAPPENED TO US? × 5 → Main Warehouse (ref=)
2026-10-16 15:02:57,507 INFO inventory.services.inventory_service: Stock received: BORN TO BE UNSTOPPABLE × 5 → Main Warehouse (ref=)
2026-10-16 20:04:13,076 INFO inventory.services.inventory_service: Auto-listed Illusions of Democracy: A Political Memoir at Tai Bookstore/website.
2026-10-16 20:05:13,512 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #664.
2026-10-16 20:05:45,632 INFO inventory.services.inventory_service: Stock received: Illusions of Democracy: A Political Memoir × 10 → Main Warehouse (ref=)
2026-10-17 11:13:28,731 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #665.
2026-10-17 11:13:47,223 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #666.
2026-10-17 11:14:28,816 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #667.
2026-10-17 11:14:53,808 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #668.
2026-10-17 11:18:55,012 INFO inventory.services.inventory_service: Stock received: TRUST THE CLOCKMASTER × 3 → Main Warehouse (ref=)
2026-10-17 11:25:50,347 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #669.
2026-10-17 11:26:14,239 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #670.
2026-10-17 11:26:34,849 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #671.
2026-10-17 11:27:04,086 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #672.
2026-10-17 11:27:27,355 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #673.
2026-10-17 11:27:52,718 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #674.
2026-10-17 11:28:12,510 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #675.
2026-10-17 11:28:38,598 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #676.
2026-10-17 11:28:59,328 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #677.
2026-10-17 11:29:49,399 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #678.
2026-10-17 11:30:26,444 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #679.
2026-10-17 11:31:09,657 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #680.
2026-10-17 11:31:50,782 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #681.
2026-10-17 12:16:06,237 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #682.
2026-10-17 12:16:37,324 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #683.
2026-10-17 12:17:22,028 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #684.
2026-10-17 12:18:40,170 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #685.
2026-10-17 13:09:04,142 INFO inventory.services.inventory_service: Stock received: WHAT HAPPENED TO US? × 10 → Main Warehouse (ref=)
2026-10-17 13:09:23,694 INFO inventory.services.inventory_service: Stock received: CŨCŨ × 2 → Main Warehouse (ref=)
2026-10-17 13:09:37,598 INFO inventory.services.inventory_service: Stock received: MOUNTAINS DO REMEMBER × 5 → Main Warehouse (ref=)
2026-10-17 13:10:46,277 INFO inventory.services.inventory_service: Stock received: THE POWER OF CHOICE × 3 → Main Warehouse (ref=)
2026-10-17 13:11:03,819 INFO inventory.services.inventory_service: Stock received: THE PRESENT HINDSIGHT × 3 → Main Warehouse (ref=)
2026-10-17 13:13:16,630 INFO inventory.services.inventory_service: Stock received: SELLING TO INFORMAL MARKETS × 6 → Main Warehouse (ref=)
2026-10-17 13:14:28,695 INFO inventory.services.inventory_service: Stock received: DREAM OF AFRICA: CHAOS BEFORE ORDER × 3 → Main Warehouse (ref=)
2026-10-17 13:14:52,345 INFO inventory.services.inventory_service: Stock received: HEART AND SKILL × 3 → Main Warehouse (ref=)
2026-10-17 13:15:07,002 INFO inventory.services.inventory_service: Stock received: THE HEART OF A WORSHIPPER × 3 → Main Warehouse (ref=)
2026-10-17 13:15:18,810 INFO inventory.services.inventory_service: Stock received: THE OVERLAPPER’S MINDSET × 3 → Main Warehouse (ref=)
2026-10-17 13:15:30,679 INFO inventory.services.inventory_service: Stock received: THE DAYS OF HIS POWER × 3 → Main Warehouse (ref=)
2026-10-17 13:15:41,502 INFO inventory.services.sales_service: Sale recorded: INV-20261017-031E53 | KES 1250.00 | channel=walk_in
2026-10-17 13:15:47,250 INFO inventory.services.inventory_service: Stock received: THE LIFE OF A WORSHIPPER × 3 → Main Warehouse (ref=)
2026-10-17 13:16:43,974 INFO inventory.services.sales_service: Sale recorded: INV-20261017-BA1E03 | KES 1290.00 | channel=walk_in
2026-10-17 17:23:14,709 INFO inventory.services.sales_service: Sale recorded: INV-20261017-8136E5 | KES 50.00 | channel=walk_in
2026-10-17 17:26:12,464 INFO inventory.services.sales_service: Sale recorded: INV-20261017-22543C | KES 25.00 | channel=walk_in
2026-10-17 17:47:16,630 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #686.
2026-10-17 17:48:09,026 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #687.
2026-10-17 18:29:51,425 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #688.
2026-10-17 18:30:10,830 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #689.
2026-10-17 18:30:28,569 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #690.
2026-10-17 18:30:53,869 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #691.
2026-10-17 18:31:21,960 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #692.
2026-10-17 18:32:14,922 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #693.
2026-10-17 18:32:36,587 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #694.
2026-10-17 18:33:21,230 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #695.
2026-10-17 18:33:46,795 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #696.
2026-10-17 18:34:11,730 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #697.
2026-10-17 18:34:32,518 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #698.
2026-10-17 18:49:46,739 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #699.
2026-10-17 18:50:37,027 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #700.
2026-10-17 18:51:12,299 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #701.
2026-10-17 18:52:38,601 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #702.
2026-10-17 18:54:38,440 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #703.
2026-10-17 18:55:49,459 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #704.
2026-10-17 18:56:13,995 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #705.
2026-10-17 18:56:46,533 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #706.
2026-10-17 18:57:34,776 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #707.
2026-10-17 18:58:12,713 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #708.
2026-10-17 18:58:39,265 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #709.
2026-10-17 18:59:05,964 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #710.
2026-10-17 18:59:32,358 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #711.
2026-10-17 19:07:47,690 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #712.
2026-10-17 19:08:41,945 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #713.
2026-10-17 19:10:19,794 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #714.
2026-10-17 19:11:02,271 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #715.
2026-10-17 19:12:12,426 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #716.
2026-10-17 19:12:49,991 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #717.
2026-10-17 19:13:24,344 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #718.
2026-10-17 19:13:56,734 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #719.
2026-10-17 19:15:08,959 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #720.
2026-10-17 19:15:47,793 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #721.
2026-10-17 19:17:24,660 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #722.
2026-10-17 19:18:10,205 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #723.
2026-10-17 19:18:42,042 INFO inventory.services.inventory_service: Auto-listed Colorful Thoughts coloring book by Citrine Topaz after first stock receipt.
2026-10-17 19:18:42,061 INFO inventory.services.inventory_service: Stock received: Colorful Thoughts coloring book by Citrine Topaz × 1 → Main Warehouse (ref=)
2026-10-17 19:19:00,916 INFO inventory.services.inventory_service: Stock received: DREAM OF AFRICA: CHAOS BEFORE ORDER × 5 → Main Warehouse (ref=)
2026-10-17 19:21:04,485 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #724.
2026-10-17 19:27:49,845 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #725.
2026-10-17 19:28:29,999 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #726.
2026-10-17 19:29:16,943 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #727.
2026-10-17 19:30:06,629 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #728.
2026-10-17 19:30:29,548 ERROR django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-17 19:30:29,570 ERROR system_logs: [system] log.django.request: Internal Server Error: /admin/inventory/pendinginventorytransaction/592/review/ ref=/admin/inventory/pendinginventorytransaction/592/review/
Traceback (most recent call last):
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
    result = _process_exception(request, e)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
    response = view_func(request, *args, **kwargs)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/contrib/admin/sites.py", line 246, in inner
    return view(request, *args, **kwargs)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/admin.py", line 566, in review_view
    tx = transfer_stock(
  File "/opt/alt/python310/lib64/python3.10/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/home/oiqgdmug/tai.octavestudioske.com/inventory/services/inventory_service.py", line 295, in transfer_stock
    src_balance = InventoryBalance.objects.select_for_update().get(book=book, location=source)
  File "/home/oiqgdmug/virtualenv/tai.octavestudioske.com/3.10/lib/python3.10/site-packages/django/db/models/query.py", line 635, in get
    raise self.model.DoesNotExist(
inventory.models.InventoryBalance.DoesNotExist: InventoryBalance matching query does not exist.
2026-10-17 19:30:49,492 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #729.
2026-10-17 19:31:50,537 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #730.
2026-10-17 19:32:27,130 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #731.
2026-10-17 19:33:08,564 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #732.
2026-10-17 19:34:14,565 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #733.
2026-10-17 19:35:25,937 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #734.
2026-10-17 19:36:00,517 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #735.
2026-10-17 19:59:44,597 INFO inventory.services.sales_service: Sale recorded: INV-20261017-C39A72 | KES 570.00 | channel=walk_in
2026-10-17 21:12:35,028 INFO inventory.services.inventory_service: Stock received: DESIRE AT DAWN × 3 → Main Warehouse (ref=)
2026-10-17 21:24:53,081 INFO inventory.services.inventory_service: Stock received: Tomorrow I Will Be Here × 3 → Main Warehouse (ref=)
2026-10-17 21:25:10,575 INFO inventory.services.inventory_service: Stock received: RENDITIONS OF THE SOUL × 3 → Main Warehouse (ref=)
2026-10-17 21:25:22,586 INFO inventory.services.inventory_service: Stock received: WHEN THE WORLD IN MY VOICE SINGS × 3 → Main Warehouse (ref=)
2026-10-17 21:25:36,484 INFO inventory.services.inventory_service: Stock received: WHEN RIVERS SAY GOODBYE × 3 → Main Warehouse (ref=)
2026-10-17 21:25:48,703 INFO inventory.services.inventory_service: Stock received: THE GEN Z PARENT × 3 → Main Warehouse (ref=)
2026-10-17 21:26:12,462 INFO inventory.services.inventory_service: Stock received: NEW CONFIDENT AFRICA × 3 → Main Warehouse (ref=)
2026-10-17 21:26:27,155 INFO inventory.services.inventory_service: Stock received: WHAT HAPPENED TO US? × 5 → Main Warehouse (ref=)
2026-10-17 21:26:52,759 INFO inventory.services.inventory_service: Stock received: BORN TO BE UNSTOPPABLE × 5 → Main Warehouse (ref=)
2026-10-17 21:27:07,157 INFO inventory.services.inventory_service: Stock received: CŨCŨ × 5 → Main Warehouse (ref=)
2026-10-17 21:27:25,012 INFO inventory.services.inventory_service: Stock received: BREAKING THE ORPHAN SPIRIT × 3 → Main Warehouse (ref=)
2026-10-17 21:27:42,453 INFO inventory.services.inventory_service: Stock received: I AM BECAUSE WE ARE × 3 → Main Warehouse (ref=)
2026-10-17 21:28:03,021 INFO inventory.services.inventory_service: Stock received: A REFLECTION ON OUR CULTURES × 3 → Main Warehouse (ref=)
2026-10-17 21:28:16,875 INFO inventory.services.inventory_service: Stock received: BASICS OF FINANCIAL LITERACY FOR TEENS AND BEGINNERS × 3 → Main Warehouse (ref=)
2026-10-17 21:28:31,546 INFO inventory.services.inventory_service: Stock received: THE DAYS OF HIS POWER × 3 → Main Warehouse (ref=)
2026-10-17 21:28:42,820 INFO inventory.services.inventory_service: Stock received: TRUST THE CLOCKMASTER × 6 → Main Warehouse (ref=)
2026-10-17 21:29:04,209 INFO inventory.services.inventory_service: Stock received: HEART AND SKILL × 3 → Main Warehouse (ref=)
2026-10-17 21:29:17,451 INFO inventory.services.inventory_service: Stock received: THE HEART OF A WORSHIPPER × 3 → Main Warehouse (ref=)
2026-10-17 21:38:38,613 INFO inventory.services.inventory_service: Stock received: THE POWER OF CHOICE × 3 → Main Warehouse (ref=)
2026-10-17 21:38:54,556 INFO inventory.services.inventory_service: Stock received: MIKA'S BIG FEELINGS × 3 → Main Warehouse (ref=)
2026-10-17 21:39:19,436 INFO inventory.services.inventory_service: Stock received: THE HIDDEN HOPE × 3 → Main Warehouse (ref=)
2026-10-17 21:39:52,892 INFO inventory.services.inventory_service: Stock received: MOUNTAINS DO REMEMBER × 3 → Main Warehouse (ref=)
2026-10-17 21:40:04,153 INFO inventory.services.inventory_service: Stock received: THE INCOMPLETE GRAVESTONE × 3 → Main Warehouse (ref=)
2026-10-19 10:04:55,041 INFO inventory.services.sales_service: Sale recorded: INV-20261019-83A184 | KES 279.00 | channel=walk_in
2026-10-19 10:16:34,347 INFO inventory.services.sales_service: Sale recorded: INV-20261019-9A7F50 | KES 1099.00 | channel=walk_in
2026-10-19 17:11:08,072 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #736.
2026-10-19 17:11:27,737 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #737.
2026-10-19 17:12:02,055 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #738.
2026-10-19 17:12:22,113 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #739.
2026-10-19 17:13:06,691 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #740.
2026-10-19 17:13:27,449 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #741.
2026-10-19 17:13:51,365 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #742.
2026-10-19 17:14:10,394 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #743.
2026-10-19 17:14:34,432 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #744.
2026-10-19 17:15:52,797 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #745.
2026-10-19 17:16:43,419 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #746.
2026-10-19 17:17:44,672 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #747.
2026-10-19 17:18:09,917 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #748.
2026-10-19 17:26:08,169 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #749.
2026-10-19 17:26:24,488 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #750.
2026-10-19 17:26:58,857 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #751.
2026-10-19 17:27:28,433 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #753.
2026-10-19 17:27:50,400 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #754.
2026-10-19 17:47:10,969 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #755.
2026-10-19 17:48:35,469 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #756.
2026-10-19 17:49:47,451 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #757.
2026-10-19 17:50:36,574 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #758.
2026-10-19 17:51:17,545 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #759.
2026-10-19 17:53:01,290 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #760.
2026-10-19 17:54:35,542 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #761.
2026-10-19 17:58:53,064 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #762.
2026-10-19 17:59:33,855 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #763.
2026-10-19 18:00:04,123 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #764.
2026-10-19 18:00:48,976 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #765.
2026-10-19 18:01:41,007 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #766.
2026-10-19 18:02:16,916 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #767.
2026-10-19 18:03:51,014 INFO inventory.services.notification_service: Approval request sent to 2 approver(s) for pending tx #768.
2026-10-20 17:52:13,222 INFO inventory.services.inventory_service: Stock received: QUEENEX LANGUAGE ACTIVITIES PRACTICE BOOK - PLAY GROUP × 3 → Main Warehouse (ref=)
2026-10-20 17:52:27,938 INFO inventory.services.inventory_service: Stock received: AN AUTOBIOGRAPHY: AVIATOR PAR EXCELLENCE × 5 → Main Warehouse (ref=)
2026-10-20 17:52:40,324 INFO inventory.services.inventory_service: Stock received: I AM BECAUSE WE ARE × 5 → Main Warehouse (ref=)
2026-10-20 17:53:16,512 INFO inventory.services.inventory_service: Stock received: BLOSSOM READ ALOUD SOUNDS PRACTICE BOOK 1 × 3 → Main Warehouse (ref=)
2026-10-20 17:53:28,703 INFO inventory.services.inventory_service: Stock received: KISWAHILI WARIDI KITABU CHA KWANZA × 3 → Main Warehouse (ref=)
2026-10-20 17:53:39,194 INFO inventory.services.inventory_service: Stock received: QUEENEX CRE ACTIVITIES PRACTICE BOOK - PLAY GROUP × 3 → Main Warehouse (ref=)
2026-10-20 17:53:51,150 INFO inventory.services.inventory_service: Stock received: QUEENEX CRE ACTIVITIES PRACTICE BOOK - PRE-PRIMARY 1 (PP1) × 3 → Main Warehouse (ref=)
2026-10-20 17:54:02,777 INFO inventory.services.inventory_service: Stock received: QUEENEX CRE ACTIVITIES PRACTICE BOOK - PRE-PRIMARY 2 (PP2) × 3 → Main Warehouse (ref=)
2026-10-20 17:54:16,042 INFO inventory.services.inventory_service: Stock received: QUEENEX CREATIVE  ACTIVITIES PRACTICE BOOK FOR PRE-PRIMARY 2 × 3 → Main Warehouse (ref=)
2026-10-20 17:54:28,515 INFO inventory.services.inventory_service: Stock received: QUEENEX ENVIRONMENTAL ACTIVITIES PRACTICE BOOK - PLAY GROUP × 3 → Main Warehouse (ref=)
2026-10-20 17:54:42,523 INFO inventory.services.inventory_service: Stock received: QUEENEX ENVIRONMENTAL  ACTIVITIES PRACTICE BOOK FOR PRE-PRIMARY 2 × 3 → Main Warehouse (ref=)
2026-10-20 17:55:02,549 INFO inventory.services.inventory_service: Stock received: QUEENEX MATHEMATICAL ACTIVITIES PRACTICE BOOK - PLAY GROUP × 3 → Main Warehouse (ref=)
2026-10-20 17:55:14,336 INFO inventory.services.inventory_service: Stock received: QUEENEX MATHEMATICAL ACTIVITIES PRACTICE BOOK - PRE-PRIMARY 1 (PP1) × 3 → Main Warehouse (ref=)
2026-10-20 17:55:25,704 INFO inventory.services.inventory_service: Stock received: QUEENEX MATHEMATICAL ACTIVITIES PRACTICE BOOK - PRE-PRIMARY 2 (PP2) × 3 → Main Warehouse (ref=)
2026-10-20 17:55:37,434 INFO inventory.services.inventory_service: Stock received: QUEENEX LANGUAGE ACTIVITIES PRACTICE BOOK - PRE-PRIMARY 1 (PP1) × 3 → Main Warehouse (ref=)
2026-10-20 17:55:47,934 INFO inventory.services.inventory_service: Stock received: QUEENEX LANGUAGE ACTIVITIES PRACTICE BOOK - PRE-PRIMARY 2 (PP2) × 3 → Main Warehouse (ref=)
