"""Manual new/old choice, independent of the calculated product-age field.""" from services.db import query def normalize_new_old(value, default='旧品'): """Return the canonical labels used by planning and overseas orders. ``是/否`` was the original storage format. Keep accepting it while old rows are being migrated so historical pending/order records remain usable. """ value = str(value or '').strip() return {'是': '新品', '否': '旧品', '新品': '新品', '旧品': '旧品'}.get(value, default) def snapshot_new_old(product_code, saved_value=None): """Preserve an existing pending snapshot during quantity/remark edits.""" if saved_value in ('是', '否', '新品', '旧品'): return normalize_new_old(saved_value) rows = query('SELECT planning_new_old FROM products WHERE product_code=%s', (product_code,)) return normalize_new_old(rows[0].get('planning_new_old') if rows else '')