]> wagnertech.de Git - mfinanz.git/blobdiff - SL/IS.pm
Merge branch 'master' of ssh://git-sdonath@lx-office.linet-services.de/~/lx-office-erp
[mfinanz.git] / SL / IS.pm
index e5b403675aa8de7a8cec99ee752bd43aa66b9de7..e9e4711b1c02fa6830434a2336a906bff1e5b1a6 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -561,7 +561,7 @@ sub post_invoice {
   if ($form->{currency} eq $defaultcurrency) {
     $form->{exchangerate} = 1;
   } else {
-    $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{transdate}, 'buy');
+    $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{invdate}, 'buy');
   }
 
   $form->{exchangerate} =
@@ -1251,7 +1251,7 @@ sub cogs {
   my $transdate  = $form->{invdate} ? $dbh->quote($form->{invdate}) : "current_date";
   my $taxzone_id = $form->{"taxzone_id"} * 1;
   my $query =
-    qq|SELECT i.id, i.trans_id, i.base_qty, i.allocated, i.sellprice,
+    qq|SELECT i.id, i.trans_id, i.base_qty, i.allocated, i.sellprice, i.price_factor,
          c1.accno AS inventory_accno, c1.new_chart_id AS inventory_new_chart, date($transdate) - c1.valid_from AS inventory_valid,
          c2.accno AS    income_accno, c2.new_chart_id AS    income_new_chart, date($transdate) - c2.valid_from AS    income_valid,
          c3.accno AS   expense_accno, c3.new_chart_id AS   expense_new_chart, date($transdate) - c3.valid_from AS   expense_valid
@@ -1277,7 +1277,7 @@ sub cogs {
 
     # total expenses and inventory
     # sellprice is the cost of the item
-    my $linetotal = $form->round_amount(($ref->{sellprice} * $qty) / ( $basefactor || 1 ), 2);
+    my $linetotal = $form->round_amount(($ref->{sellprice} * $qty) / ( ($ref->{price_factor} || 1) * ( $basefactor || 1 )), 2);
 
     if (!$main::eur) {
       $ref->{expense_accno} = ($form->{"expense_accno_$row"}) ? $form->{"expense_accno_$row"} : $ref->{expense_accno};
@@ -2076,14 +2076,14 @@ sub get_pricegroups_for_parts {
           $pkr->{price}    = $form->{"sellprice_$i"};
           $pkr->{selected} = ' selected';
         }
-      }
-
-      if ($selectedpricegroup_id or $selectedpricegroup_id == 0) {
+      } else {
         if ($selectedpricegroup_id ne $pricegroup_old) {
           if ($pkr->{pricegroup_id} eq $selectedpricegroup_id) {
             $pkr->{selected}  = ' selected';
           }
-        } elsif (($price_new != $form->{"sellprice_$i"}) and ($price_new ne 0)) {
+        } elsif (    (   $form->parse_amount($myconfig, $price_new)
+                      != $form->parse_amount($myconfig, $form->{"sellprice_$i"}))
+                 and ($price_new ne 0)) {
           if ($pkr->{pricegroup_id} == 0) {
             $pkr->{price}     = $form->{"sellprice_$i"};
             $pkr->{selected}  = ' selected';
@@ -2159,4 +2159,21 @@ sub is_storno {
   return $result;
 }
 
+sub get_standard_accno_current_assets {
+  $main::lxdebug->enter_sub();
+
+  my ($self, $myconfig, $form) = @_;
+
+  my $dbh = $form->dbconnect($myconfig);
+
+  my $query = qq| SELECT accno FROM chart WHERE id = (SELECT ar_paid_accno_id FROM defaults)|;
+  my ($result) = selectrow_query($form, $dbh, $query);
+
+  $dbh->disconnect();
+
+  $main::lxdebug->leave_sub();
+
+  return $result;
+}
+
 1;