fix(sp28): align Batch.kind filter with prod ('837p' not '837')
The SP28 helpers (batch_envelope_index + lookup_claims_for_ack_set_response + two _batch_lookup closures in handle_ta1 + api.py) all filter Batch.kind == "837", but prod Batch rows are persisted with kind="837p" (lowercase p — see api.py:443 / store/records.py:58). Result: the D10 batch-envelope index was empty on prod and zero 999 / 277CA / TA1 acks auto-linked to their claims via Pass 1 (ST02 via batch.envelope.control_number). Pass 2 (PCN) was the only path firing, which on this codebase matches 0 acks (Gainwell's 999 echoes the 837's ST02, not its CLM01 — see spec §D10). Fix: 4 production sites swapped to Batch.kind == "837p". 3 test files updated to use the prod value (test_apply_claim_ack_links.py + test_api_claim_acks.py + test_e2e_999_to_claim_drawer.py). All 25 SP28 tests + 20 handler tests pass. Expected prod effect: claim t991102989o1c120d's 143 incoming 999 AK2 acks now auto-link via the batch with envelope.control_number=991102989 (Pass 1), plus 727/1,398 total acks across all batches.
This commit is contained in:
@@ -941,7 +941,7 @@ async def parse_ta1_endpoint(
|
||||
rows = (
|
||||
link_s.query(Batch)
|
||||
.filter(
|
||||
Batch.kind == "837",
|
||||
Batch.kind == "837p",
|
||||
Batch.raw_result_json.isnot(None),
|
||||
)
|
||||
.order_by(Batch.parsed_at.desc())
|
||||
|
||||
@@ -141,7 +141,7 @@ def lookup_claims_for_ack_set_response(
|
||||
# callers SHOULD pass the index.
|
||||
rows = (
|
||||
session.query(Batch.id, Batch.raw_result_json)
|
||||
.filter(Batch.kind == "837")
|
||||
.filter(Batch.kind == "837p")
|
||||
.all()
|
||||
)
|
||||
for bid, raw in rows:
|
||||
|
||||
@@ -75,7 +75,7 @@ def handle(
|
||||
rows = (
|
||||
session.query(db.Batch)
|
||||
.filter(
|
||||
db.Batch.kind == "837",
|
||||
db.Batch.kind == "837p",
|
||||
db.Batch.raw_result_json.isnot(None),
|
||||
)
|
||||
.order_by(db.Batch.parsed_at.desc())
|
||||
|
||||
@@ -78,7 +78,7 @@ def batch_envelope_index() -> dict[str, str]:
|
||||
with db.SessionLocal()() as s:
|
||||
rows = (
|
||||
s.query(Batch.id, Batch.raw_result_json)
|
||||
.filter(Batch.kind == "837")
|
||||
.filter(Batch.kind == "837p")
|
||||
.all()
|
||||
)
|
||||
for bid, raw in rows:
|
||||
|
||||
Reference in New Issue
Block a user