Files
Aislo/M01_MasterData/M01_MasterData_Store_Find.py
T
eomsangdonandClaude Opus 5.5 98f3ab59cb feat(830-10): M01 재료 찾기가 지역 칸을 봄 — 로직 1,520 시험 계산 전후 다름 0
- master_material.label = 이름 + 지역 칸 · 검색어 지역 낱말 · 자재지역 입력 · 고르는 차례(master_pick)가 이름 글 대신 지역 칸과 맞대짐
- 로직 1,520: 같음 1,517 · 전부터 멈춤 3(GC001199 ~ 1201) — 지역 칸만 고쳤을 때 다르던 11(시멘트 전국 · 포항 모래 · 포항 레미콘)이 원래 줄로
- 계산 줄 품목 칸에 지역 · 상하차 · M01 고르기 창(가격 연결 · 로직 재료 후보) 글에 지역 · 상하차(모름 「-」 뺌)
- M01 표 찾기(Store_Find) 낱말이 지역 칸에도 맞음 — 「레미콘 서울」 · 저장 뒤 찾기 기억 지움도 지역 칸 포함
- 새 줄 지역 기본 「-」 · test_m01_pick 합판 서울 기대를 지역 칸으로
- check_master 틀 · 본문 · 로직 · 조합 · 목차 0 · 단위 27 · 배 7(전과 같음)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-14 20:42:29 +09:00

21 lines
799 B
Python

"""찾기 맞춤 — 낱말(띄어 나눔)마다 키 · 원문번호 · 이름 · 옛이름 · 별칭 · 지역(재료 · 830-10) 가운데 하나에 들면 맞음.
띄어쓰기 · 대소문자 무시 · 별칭 = 설계자가 로직을 찾는 다른 이름(쉼표로 여럿 · 208-1).
짝: `ui_template/ui_template_logic_find.ts` `matchLogic`(화면 쪽) ·
거울 시험 `test_208_1_logic_alias.py`.
"""
from __future__ import annotations
FIELDS = ("키", "원문번호", "이름", "옛이름", "별칭", "지역")
def squash(text) -> str:
return "".join(str(text or "").lower().split())
def hit(row: dict, q: str) -> bool:
words = [squash(w) for w in str(q or "").split()]
fields = [squash(row.get(k)) for k in FIELDS]
return all(any(w in f for f in fields) for w in words)