]> wagnertech.de Git - mfinanz.git/commitdiff
Anpassung Rose-Funktionen auf Umstellung currencies
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 21 May 2013 11:19:50 +0000 (13:19 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 21 May 2013 11:19:50 +0000 (13:19 +0200)
SL/DB/Default.pm
SL/DB/Helper/FlattenToForm.pm
SL/DB/Helper/PriceTaxCalculator.pm
SL/DB/Invoice.pm
SL/DB/VC.pm

index b71b0f47421129e09a14cdadc0274fe5dd284e46..4ea7be63f905c25c51ceedc040e077254b5dc66a 100644 (file)
@@ -9,8 +9,8 @@ __PACKAGE__->meta->make_manager_class;
 
 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 {
index d5805b0c06bf6fa1e145f4b5ec202e3c2d5185ce..c2d8a5fe959455222dc20a5c38b309897cf0fa21 100644 (file)
@@ -14,11 +14,11 @@ sub flatten_to_form {
 
   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')
index 0801299fb54d01b6e2a3fb00c3ec3aac36906a9e..73613f89df80419197984dedcdc9cc909828895e 100644 (file)
@@ -53,8 +53,9 @@ sub calculate_prices_and_taxes {
 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;
index 09c7f86e7d11aa4f75e215c5f44087beac4faa8b..d93de711aad58a09823c4f1f3d7ad8c447f46703 100644 (file)
@@ -98,9 +98,9 @@ sub new_from {
 
   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),
index 44b2dbb0952057f976c957475f57603c81698f89..c41f28788fe378f08619b85e60e0fc4ab8be9104 100644 (file)
@@ -26,7 +26,7 @@ SQL
   $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 = ?)