1 package BSE::TB::Products;
4 use vars qw(@ISA $VERSION);
5 @ISA = qw(Squirrel::Table BSE::TB::TagOwners);
8 our $VERSION = "1.005";
11 return 'BSE::TB::Product';
14 sub all_visible_children {
17 require BSE::TB::OtherParents;
18 my @normal_prods = BSE::TB::Products->visible_children($id);
19 my @step_prods = BSE::TB::Products->visible_step_children($id);
23 ( map { $_->{id} => $_->{displayOrder} } @normal_prods ),
26 $_->{childId} => $_->{parentDisplayOrder}
27 } BSE::TB::OtherParents->getBy(parentId => $id)
31 my %kids = map { $_->{id} => $_ } @step_prods, @normal_prods;
33 return @kids{ sort { $order{$b} <=> $order{$a} } keys %kids };
36 sub all_visible_product_tags {
39 require BSE::TB::Tags;
40 require BSE::TB::TagMembers;
43 tags => [ BSE::TB::Tags->getSpecial(allprods => $id, $id) ],
44 members => [ BSE::TB::TagMembers->getSpecial(allprods => $id, $id) ],
48 *all_visible_products = \&all_visible_children;
50 sub visible_children {
51 my ($class, $id) = @_;
53 use BSE::Util::SQL qw/now_sqldate/;
54 my $today = now_sqldate();
56 return BSE::TB::Products->getSpecial(visible_children_of => $id, $today);
59 sub visible_step_children {
60 my ($class, $id) = @_;
62 use BSE::Util::SQL qw/now_sqldate/;
63 my $today = now_sqldate();
65 return BSE::TB::Products->getSpecial(visibleStep => $id, $today);
72 require BSE::TB::PriceTiers;
73 $tiers = [ sort { $a->display_order <=> $b->display_order }
74 BSE::TB::PriceTiers->all ];