X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIC.pm;h=74cfe17023fa683234f52db6ad368d424a4ece55;hb=7edc24445cf7d204f1a4693daed38d866ee9f422;hp=8d46c2d90c29ffd75768002d361a75216cb76de9;hpb=23a596b95dea45e369cc676fd9c8deda6c4d2162;p=kivitendo-erp.git diff --git a/SL/IC.pm b/SL/IC.pm index 8d46c2d90..74cfe1702 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -156,20 +156,8 @@ SQL } $trq->finish; - # now get accno for taxes - $query = - qq|SELECT c.accno - FROM chart c, partstax pt - WHERE (pt.chart_id = c.id) AND (pt.parts_id = ?)|; - $sth = prepare_execute_query($form, $dbh, $query, conv_i($form->{id})); - while (my ($key) = $sth->fetchrow_array) { - $form->{amount}{$key} = $key; - } - - $sth->finish; - # is it an orphan - my @referencing_tables = qw(invoice orderitems inventory rmaitems); + my @referencing_tables = qw(invoice orderitems inventory); my %column_map = ( ); my $parts_id = conv_i($form->{id}); @@ -295,9 +283,6 @@ sub save { do_query($form, $dbh, qq|DELETE FROM assembly WHERE id = ?|, conv_i($form->{id})); } - # delete tax records - do_query($form, $dbh, qq|DELETE FROM partstax WHERE parts_id = ?|, conv_i($form->{id})); - # delete translations do_query($form, $dbh, qq|DELETE FROM translation WHERE parts_id = ?|, conv_i($form->{id})); @@ -470,17 +455,6 @@ sub save { } } - # insert taxes - foreach my $item (split(/ /, $form->{taxaccounts})) { - if ($form->{"IC_tax_$item"}) { - $query = - qq|INSERT INTO partstax (parts_id, chart_id) - VALUES (?, (SELECT id FROM chart WHERE accno = ?))|; - @values = (conv_i($form->{id}), $item); - do_query($form, $dbh, $query, @values); - } - } - # add assembly records if ($form->{item} eq 'assembly') { @@ -617,7 +591,7 @@ sub delete { my %columns = ( "assembly" => "id", "parts" => "id" ); - for my $table (qw(prices partstax makemodel inventory assembly translation parts)) { + for my $table (qw(prices makemodel inventory assembly translation parts)) { my $column = defined($columns{$table}) ? $columns{$table} : "parts_id"; do_query($form, $dbh, qq|DELETE FROM $table WHERE $column = ?|, @values); } @@ -1513,8 +1487,22 @@ sub retrieve_accounts { # transdate madness. my $transdate = ""; - if ($form->{type} eq "invoice") { - if (($form->{vc} eq "vendor") || !$form->{deliverydate}) { + if ($form->{type} eq "invoice" or $form->{type} eq "credit_note") { + # use deliverydate for sales and purchase invoice, if it exists + # also use deliverydate for credit notes + if (!$form->{deliverydate}) { + $transdate = $form->{invdate}; + } else { + $transdate = $form->{deliverydate}; + } + } elsif ($form->{script} eq 'ir.pl') { + # when a purchase invoice is opened from the report of purchase invoices + # $form->{type} isn't set, but $form->{script} is, not sure why this is or + # whether this distinction matters in some other scenario. Otherwise one + # could probably take out this elsif and add a + # " or $form->{script} eq 'ir.pl' " + # to the above if-statement + if (!$form->{deliverydate}) { $transdate = $form->{invdate}; } else { $transdate = $form->{deliverydate}; @@ -1523,6 +1511,8 @@ sub retrieve_accounts { # if credit_note has a deliverydate, use this instead of invdate # useful for credit_notes of invoices from an old period with different tax # if there is no deliverydate then invdate is used, old default (see next elsif) + # Falls hier der Stichtag für Steuern anders bestimmt wird, + # entsprechend auch bei Taxkeys.pm anpassen $transdate = $form->{deliverydate}; } elsif (($form->{type} eq "credit_note") || ($form->{script} eq 'ir.pl')) { $transdate = $form->{invdate}; @@ -1642,8 +1632,8 @@ sub prepare_parts_for_printing { my $self = shift; my %params = @_; - my $myconfig = \%main::myconfig; - my $form = $main::form; + my $myconfig = $params{myconfig} || \%main::myconfig; + my $form = $params{form} || $main::form; my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);