diff --git a/deploy/services/grouping.py b/deploy/services/grouping.py index d3a4b0f..58a15aa 100644 --- a/deploy/services/grouping.py +++ b/deploy/services/grouping.py @@ -142,16 +142,19 @@ def apply_groups(batch_id, groups_data): counterparty = g.get("counterparty", "") docs = g.get("documents", []) - # Create contract - c = db_contracts.insert(contract_number, counterparty) - contract_id = c["id"] - contract_ids.append(contract_id) + try: + c = db_contracts.insert(contract_number, counterparty) + contract_id = c["id"] + contract_ids.append(contract_id) - # Create supplements in order - for i, d in enumerate(docs): - doc_id = d.get("id") - supp_type = "initial" if i == 0 else "additional" - db_supplements.insert(contract_id, doc_id, supp_type) - created += 1 + for i, d in enumerate(docs): + doc_id = d.get("id") + if not doc_id: + continue + supp_type = "initial" if i == 0 else "additional" + db_supplements.insert(contract_id, doc_id, supp_type) + created += 1 + except Exception as e: + return {"ok": False, "error": f"apply_groups failed at {contract_number}: {e}"} return {"ok": True, "created": created, "contract_ids": contract_ids}