statement=@db.prepare("SELECT part.id, part.name, part.description, part.datasheet, manufacturer.name AS manufacturer, package.name AS package, part.pincount AS pincount, part.page AS page, part.family AS parent FROM part LEFT JOIN package ON package.id = part.package LEFT JOIN manufacturer ON manufacturer.id = part.manufacturer WHERE part.id = ?")
statement=@db.prepare("SELECT location.name AS location, inventory.quantity AS stock FROM inventory LEFT JOIN location ON location.id = inventory.location WHERE inventory.part = ? ORDER BY inventory.quantity DESC LIMIT 1")
statement=@db.prepare("SELECT property.name AS name, property_value.value AS value FROM property_value JOIN property ON property.id = property_value.property WHERE property_value.part = ?")
family_stmt=@db.prepare("SELECT family FROM part WHERE id = ?")
statements<<@db.prepare("SELECT id FROM part WHERE name LIKE ?")
statements<<@db.prepare("SELECT id FROM part WHERE description LIKE ?")
statements<<@db.prepare("SELECT property_value.part AS id FROM property_value JOIN property ON property.id = property_value.property WHERE property.name = 'category' AND property_value.value LIKE ?")
term_ids=[]
terms.eachdo|term|
ids=Set.new
# OR term location
statements.eachdo|statement|
statement.execute("%#{term}%").eachdo|row|
ids<<row["id"]
end
end
term_ids<<ids
end
# get all children
statement=@db.prepare("SELECT id FROM part WHERE family IN (?)")