Revision 4b1666b7
Von Felix Eichler vor fast 5 Jahren hinzugefügt
SL/DB/Order.pm | ||
---|---|---|
|
||
use SL::DB::MetaSetup::Order;
|
||
use SL::DB::Manager::Order;
|
||
use SL::DB::Helper::Attr;
|
||
use SL::DB::Helper::AttrHTML;
|
||
use SL::DB::Helper::AttrSorted;
|
||
use SL::DB::Helper::FlattenToForm;
|
||
... | ... | |
column_map => { id => 'trans_id' },
|
||
query_args => [ module => 'OE' ],
|
||
},
|
||
exchangerate_obj => {
|
||
type => 'one to one',
|
||
class => 'SL::DB::Exchangerate',
|
||
column_map => { currency_id => 'currency_id', transdate => 'transdate' },
|
||
},
|
||
);
|
||
|
||
SL::DB::Helper::Attr::make(__PACKAGE__, exchangerate => 'numeric');
|
||
|
||
__PACKAGE__->meta->initialize;
|
||
|
||
__PACKAGE__->attr_html('notes');
|
||
... | ... | |
return !!shift->customer_id;
|
||
}
|
||
|
||
sub exchangerate {
|
||
my ($self, $val) = @_;
|
||
|
||
return 1 if $self->currency_id == $::instance_conf->get_currency_id;
|
||
|
||
my $rate = $self->is_sales ? 'buy' : 'sell';
|
||
|
||
if (defined $val) {
|
||
croak 'exchange rate has to be positive' if $val <= 0;
|
||
if (!$self->exchangerate_obj) {
|
||
$self->exchangerate_obj(SL::DB::Exchangerate->new(
|
||
currency_id => $self->currency_id,
|
||
transdate => $self->transdate,
|
||
$rate => $val,
|
||
));
|
||
} elsif (!defined $self->exchangerate_obj->$rate) {
|
||
$self->exchangerate_obj->$rate($val);
|
||
} else {
|
||
croak 'exchange rate already exists, no update allowed';
|
||
}
|
||
}
|
||
return $self->exchangerate_obj->$rate if $self->exchangerate_obj;
|
||
}
|
||
|
||
sub invoices {
|
||
my $self = shift;
|
||
my %params = @_;
|
Auch abrufbar als: Unified diff
Auftragsschnellerfassung: Währung und Wechselkurs definierbar
impl. #9491
(cherry picked from commit 6cdc5a4a33df4530ce4e141151e83138320e27a2)
(cherry pick von odyn)