# -*- coding: utf-8 -*- """End-to-end battle test — Phase 1: reconnaissance.""" # Find ABC Manufacturing abc = env['res.partner'].search([('name', 'ilike', 'ABC Manufactor')], limit=1) if not abc: abc = env['res.partner'].search([('name', 'ilike', 'ABC Manuf')], limit=1) print('ABC partner:', abc.id, abc.name if abc else 'NOT FOUND') # List recipes (process nodes that are recipe roots) recipes = env['fusion.plating.process.node'].search([ ('node_type', '=', 'recipe'), ('parent_id', '=', False), ('is_template', '=', False), ]) print('\nRecipes (non-template):') for r in recipes[:10]: step_count = env['fusion.plating.process.node'].search_count([ ('parent_id', '=', r.id), ('node_type', '=', 'step'), ]) print(' id=%d name=%s steps=%d code=%s' % (r.id, r.name, step_count, r.code or '')) # Anodize-specific recipes anodize = env['fusion.plating.process.node'].search([ ('node_type', '=', 'recipe'), ('name', 'ilike', 'anodize'), ]) print('\nAnodize-related:') for r in anodize[:5]: print(' id=%d name=%s' % (r.id, r.name)) # Find parts in the catalog for ABC (or any) parts = env['fp.part.catalog'].search([], limit=5) print('\nSample parts in catalog:') for p in parts: print(' id=%d num=%s partner=%s' % (p.id, p.part_number, p.partner_id.name or '')) # Existing fp.job records jobs = env['fp.job'].search([], limit=5, order='id desc') print('\nRecent fp.job rows:') for j in jobs: print(' id=%d origin=%s state=%s recipe=%s' % ( j.id, j.origin or '', j.state or '', j.recipe_id.name if j.recipe_id else 'no_recipe' )) # Check what kinds of steps exist on a sample recipe if recipes: big_recipe = max(recipes, key=lambda r: env['fusion.plating.process.node'].search_count([ ('parent_id', '=', r.id), ])) print('\nBiggest recipe: id=%d name=%s' % (big_recipe.id, big_recipe.name)) steps = env['fusion.plating.process.node'].search([ ('parent_id', '=', big_recipe.id), ('node_type', '=', 'step'), ], order='sequence') for s in steps[:20]: print(' step %d: %s (kind=%s)' % (s.sequence, s.name, s.default_kind or '-'))