sub get_default_currency {
my $self = shift->get;
- my @currencies = grep { $_ } split(/:/, $self->curr || '');
- return $currencies[0] || '';
+ return $self->currency->name || '' if $self->currency_id;
+ return '';
}
sub get {
my $vc = $self->can('customer_id') && $self->customer_id ? 'customer' : 'vendor';
- _copy($self, $form, '', '', 0, qw(id type taxzone_id ordnumber quonumber invnumber donumber cusordnumber taxincluded shippingpoint shipvia notes intnotes curr cp_id
+ _copy($self, $form, '', '', 0, qw(id type taxzone_id ordnumber quonumber invnumber donumber cusordnumber taxincluded shippingpoint shipvia notes intnotes cp_id
employee_id salesman_id closed department_id language_id payment_id delivery_customer_id delivery_vendor_id shipto_id proforma
globalproject_id delivered transaction_description container_type accepted_by_customer invoice terms storno storno_id dunning_config_id
orddate quodate reqdate gldate duedate deliverydate datepaid transdate));
- $form->{currency} = $form->{curr}; # curr is called currency in almost all forms
+ $form->{currency} = $form->{curr} = $self->currency_id ? $self->currency->name || '' : '';
if (_has($self, 'transdate')) {
my $transdate_idx = ref($self) eq 'SL::DB::Order' ? ($self->quotation ? 'quodate' : 'orddate')
sub _get_exchangerate {
my ($self, $data, %params) = @_;
- if (($self->curr || '') ne SL::DB::Default->get_default_currency) {
- $data->{exchangerate} = $::form->check_exchangerate(\%::myconfig, $self->curr, $self->transdate, $data->{is_sales} ? 'buy' : 'sell');
+ my $currency = $self->currency_id ? $self->currency->name || '' : '';
+ if ($currency ne SL::DB::Default->get_default_currency) {
+ $data->{exchangerate} = $::form->check_exchangerate(\%::myconfig, $currency, $self->transdate, $data->{is_sales} ? 'buy' : 'sell');
$data->{exchangerate} ||= $params{exchangerate};
}
$data->{exchangerate} ||= 1;
my $terms = $source->can('payment_id') && $source->payment_id ? $source->payment_terms->terms_netto : 0;
- my %args = ( map({ ( $_ => $source->$_ ) } qw(customer_id taxincluded shippingpoint shipvia notes intnotes curr salesman_id cusordnumber ordnumber quonumber
+ my %args = ( map({ ( $_ => $source->$_ ) } qw(customer_id taxincluded shippingpoint shipvia notes intnotes salesman_id cusordnumber ordnumber quonumber
department_id cp_id language_id payment_id delivery_customer_id delivery_vendor_id taxzone_id shipto_id
- globalproject_id transaction_description)),
+ globalproject_id transaction_description currency_id)),
transdate => DateTime->today_local,
gldate => DateTime->today_local,
duedate => DateTime->today_local->add(days => $terms * 1),
$query = <<SQL;
SELECT o.amount,
(SELECT e.buy FROM exchangerate e
- WHERE e.curr = o.curr
+ WHERE e.currency_id = o.currency_id
AND e.transdate = o.transdate)
FROM oe o
WHERE (o.${type}_id = ?)