1 # This file has been auto-generated only because it didn't exist.
2 # Feel free to modify it at will; it will not be overwritten automatically.
4 package SL::DB::PriceRuleItem;
8 use SL::DB::MetaSetup::PriceRuleItem;
9 use SL::DB::Manager::PriceRuleItem;
10 use Rose::DB::Object::Helpers qw(clone_and_reset);
11 use SL::Locale::String qw(t8);
13 __PACKAGE__->meta->initialize;
15 use Rose::Object::MakeMethods::Generic (
16 'scalar --get_set_init' => [ qw(object operator) ],
20 my ($self, %params) = @_;
22 die 'need record' unless $params{record};
23 die 'need record_item' unless $params{record_item};
25 $self->${\ "match_" . $self->type }(%params);
29 $_[0]->value_int == $_[1]{record}->customer_id;
32 $_[0]->value_int == $_[1]{record}->vendor_id;
35 $_[0]->value_int == $_[1]{record}->customervendor->business_id;
37 sub match_partsgroup {
38 $_[0]->value_int == $_[1]{record_item}->parts->partsgroup_id;
41 $_[0]->value_int == $_[1]{record_item}->parts_id;
44 if ($_[0]->op eq 'eq') {
45 return $_[0]->value_num == $_[1]{record_item}->qty
46 } elsif ($_[0]->op eq 'lt') {
47 return $_[0]->value_num < $_[1]{record_item}->qty;
48 } elsif ($_[0]->op eq 'gt') {
49 return $_[0]->value_num > $_[1]{record_item}->qty;
53 if ($_[0]->op eq 'eq') {
54 return $_[0]->value_date == $_[1]{record}->reqdate;
55 } elsif ($_[0]->op eq 'lt') {
56 return $_[0]->value_date < $_[1]{record}->reqdate;
57 } elsif ($_[0]->op eq 'gt') {
58 return $_[0]->value_date > $_[1]{record}->reqdate;
61 sub match_pricegroup {
62 $_[0]->value_int == $_[1]{record_item}->customervendor->pricegroup_id;
67 SL::DB::Part->load_cached($_[0]->value_int);
70 require SL::DB::Customer;
71 SL::DB::Customer->load_cached($_[0]->value_int);
75 require SL::DB::Vendor;
76 SL::DB::Vendor->load_cached($_[0]->value_int);
80 require SL::DB::Business;
81 SL::DB::Business->load_cached($_[0]->value_int);
85 require SL::DB::PartsGroup;
86 SL::DB::PartsGroup->load_cached($_[0]->value_int);
90 require SL::DB::Pricegroup;
91 SL::DB::Pricegroup->load_cached($_[0]->value_int);
94 sub full_description {
97 my $type = $self->type;
100 $type eq 'customer' ? t8('Customer') . ' ' . $self->customer->displayable_name
101 : $type eq 'vendor' ? t8('Vendor') . ' ' . $self->vendor->displayable_name
102 : $type eq 'business' ? t8('Type of Business') . ' ' . $self->business->displayable_name
103 : $type eq 'partsgroup' ? t8('Group') . ' ' . $self->partsgroup->displayable_name
104 : $type eq 'pricegroup' ? t8('Pricegroup') . ' ' . $self->pricegroup->displayable_name
105 : $type eq 'part' ? t8('Part') . ' ' . $self->part->long_description
107 $op eq 'eq' ? t8('Qty equals #1', $self->value_num_as_number)
108 : $op eq 'lt' ? t8('Qty less than #1', $self->value_num_as_number)
109 : $op eq 'gt' ? t8('Qty more than #1', $self->value_num_as_number)
110 : do { die "unknown op $op for type $type" } )
111 : $type eq 'reqdate' ? (
112 $op eq 'eq' ? t8('Reqdate is #1', $self->value_date_as_date)
113 : $op eq 'lt' ? t8('Reqdate is before #1', $self->value_date_as_date)
114 : $op eq 'gt' ? t8('Reqdate is after #1', $self->value_date_as_date)
115 : do { die "unknown op $op for type $type" } )
116 : do { die "unknown type $type" }