+sub save_tax {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form) = @_;
+ my $query;
+
+ # connect to database
+ my $dbh = $form->get_standard_dbh($myconfig);
+
+ $form->{rate} = $form->{rate} / 100;
+
+ my $chart_categories = '';
+ $chart_categories .= 'A' if $form->{asset};
+ $chart_categories .= 'L' if $form->{liability};
+ $chart_categories .= 'Q' if $form->{equity};
+ $chart_categories .= 'I' if $form->{revenue};
+ $chart_categories .= 'E' if $form->{expense};
+ $chart_categories .= 'C' if $form->{costs};
+
+ my @values = ($form->{taxkey}, $form->{taxdescription}, $form->{rate}, conv_i($form->{chart_id}), conv_i($form->{chart_id}), conv_i($form->{skonto_sales_chart_id}), conv_i($form->{skonto_purchase_chart_id}), $chart_categories);
+ if ($form->{id} ne "") {
+ $query = qq|UPDATE tax SET
+ taxkey = ?,
+ taxdescription = ?,
+ rate = ?,
+ chart_id = ?,
+ taxnumber = (SELECT accno FROM chart WHERE id = ? ),
+ skonto_sales_chart_id = ?,
+ skonto_purchase_chart_id = ?,
+ chart_categories = ?
+ WHERE id = ?|;
+
+ } else {
+ #ok
+ ($form->{id}) = selectfirst_array_query($form, $dbh, qq|SELECT nextval('id')|);
+ $query = qq|INSERT INTO tax (
+ taxkey,
+ taxdescription,
+ rate,
+ chart_id,
+ taxnumber,
+ skonto_sales_chart_id,
+ skonto_purchase_chart_id,
+ chart_categories,
+ id
+ )
+ VALUES (?, ?, ?, ?, (SELECT accno FROM chart WHERE id = ?), ?, ?, ?, ?)|;
+ }
+ push(@values, $form->{id});
+ do_query($form, $dbh, $query, @values);
+
+ foreach my $language_id (keys %{ $form->{translations} }) {
+ GenericTranslations->save('dbh' => $dbh,
+ 'translation_type' => 'SL::DB::Tax/taxdescription',
+ 'translation_id' => $form->{id},
+ 'language_id' => $language_id,
+ 'translation' => $form->{translations}->{$language_id});
+ }