X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FPriceRuleItem.pm;h=006556d4ca586bc6af02a14d30033ac6e225f3b0;hb=b775c378552e6b5bf59f98046cdf4e577cd351df;hp=35620554c1152bb9ba96fccf99dc58b2be717101;hpb=3f5c7866bc6ee20f028afa3862de2e14745bf795;p=kivitendo-erp.git diff --git a/SL/DB/PriceRuleItem.pm b/SL/DB/PriceRuleItem.pm index 35620554c..006556d4c 100644 --- a/SL/DB/PriceRuleItem.pm +++ b/SL/DB/PriceRuleItem.pm @@ -7,7 +7,6 @@ use strict; use SL::DB::MetaSetup::PriceRuleItem; use SL::DB::Manager::PriceRuleItem; -use Rose::DB::Object::Helpers qw(clone_and_reset); use SL::Locale::String qw(t8); __PACKAGE__->meta->initialize; @@ -43,9 +42,9 @@ sub match_part { sub match_qty { if ($_[0]->op eq 'eq') { return $_[0]->value_num == $_[1]{record_item}->qty - } elsif ($_[0]->op eq 'lt') { + } elsif ($_[0]->op eq 'le') { return $_[0]->value_num < $_[1]{record_item}->qty; - } elsif ($_[0]->op eq 'gt') { + } elsif ($_[0]->op eq 'ge') { return $_[0]->value_num > $_[1]{record_item}->qty; } } @@ -109,13 +108,15 @@ sub full_description { $type eq 'customer' ? t8('Customer') . ' ' . $self->customer->displayable_name : $type eq 'vendor' ? t8('Vendor') . ' ' . $self->vendor->displayable_name : $type eq 'business' ? t8('Type of Business') . ' ' . $self->business->displayable_name - : $type eq 'partsgroup' ? t8('Group') . ' ' . $self->partsgroup->displayable_name + : $type eq 'partsgroup' ? t8('Partsgroup') . ' ' . $self->partsgroup->displayable_name : $type eq 'pricegroup' ? t8('Pricegroup') . ' ' . $self->pricegroup->displayable_name - : $type eq 'part' ? t8('Part') . ' ' . $self->part->long_description + : $type eq 'part' ? t8('Part') . ' ' . $self->part->displayable_name : $type eq 'qty' ? ( - $op eq 'eq' ? t8('Qty equals #1', $self->value_num_as_number) - : $op eq 'lt' ? t8('Qty less than #1', $self->value_num_as_number) - : $op eq 'gt' ? t8('Qty more than #1', $self->value_num_as_number) + $op eq 'eq' ? t8('Qty equals #1', $self->value_num_as_number) + : $op eq 'lt' ? t8('Qty less than #1', $self->value_num_as_number) + : $op eq 'gt' ? t8('Qty more than #1', $self->value_num_as_number) + : $op eq 'le' ? t8('Qty equal or less than #1', $self->value_num_as_number) + : $op eq 'ge' ? t8('Qty equal or more than #1', $self->value_num_as_number) : do { die "unknown op $op for type $type" } ) : $type eq 'reqdate' ? ( $op eq 'eq' ? t8('Reqdate is #1', $self->value_date_as_date) @@ -130,4 +131,15 @@ sub full_description { : do { die "unknown type $type" } } +sub validate { + my ($self) = @_; + + my @errors; + push @errors, t8('Rule for part must not be empty') if $self->type eq 'part' && !$self->value_int; + push @errors, t8('Rule for customer must not be empty') if $self->type eq 'customer' && !$self->value_int; + push @errors, t8('Rule for vendor must not be empty') if $self->type eq 'vendor' && !$self->value_int; + + return @errors; +} + 1;