+
+ my @values = ($form->{description}, $form->{inventory_accno_id},
+ $form->{income_accno_id_0}, $form->{expense_accno_id_0},
+ $form->{income_accno_id_1}, $form->{expense_accno_id_1},
+ $form->{income_accno_id_2}, $form->{expense_accno_id_2},
+ $form->{income_accno_id_3}, $form->{expense_accno_id_3});
+
+ my $query;
+
+ # id is the old record
+ if ($form->{id}) {
+ $query = qq|UPDATE buchungsgruppen SET
+ description = ?, inventory_accno_id = ?,
+ income_accno_id_0 = ?, expense_accno_id_0 = ?,
+ income_accno_id_1 = ?, expense_accno_id_1 = ?,
+ income_accno_id_2 = ?, expense_accno_id_2 = ?,
+ income_accno_id_3 = ?, expense_accno_id_3 = ?
+ WHERE id = ?|;
+ push(@values, $form->{id});
+ } else {
+ $query = qq|SELECT COALESCE(MAX(sortkey) + 1, 1) FROM buchungsgruppen|;
+ my ($sortkey) = $dbh->selectrow_array($query);
+ $form->dberror($query) if ($dbh->err);
+ push(@values, $sortkey);
+ $query = qq|INSERT INTO buchungsgruppen
+ (description, inventory_accno_id,
+ income_accno_id_0, expense_accno_id_0,
+ income_accno_id_1, expense_accno_id_1,
+ income_accno_id_2, expense_accno_id_2,
+ income_accno_id_3, expense_accno_id_3,
+ sortkey)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|;
+ }
+ do_query($form, $dbh, $query, @values);
+
+ $dbh->disconnect;
+
+ $main::lxdebug->leave_sub();
+}
+
+sub delete_buchungsgruppe {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect($myconfig);
+
+ $query = qq|DELETE FROM buchungsgruppen WHERE id = ?|;
+ do_query($form, $dbh, $query, $form->{id});
+
+ $dbh->disconnect;
+
+ $main::lxdebug->leave_sub();
+}
+
+sub swap_sortkeys {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form, $table) = @_;
+
+ # connect to database
+ my $dbh = $form->dbconnect_noauto($myconfig);
+
+ my $query =
+ qq|SELECT
+ (SELECT sortkey FROM $table WHERE id = ?) AS sortkey1,
+ (SELECT sortkey FROM $table WHERE id = ?) AS sortkey2|;
+ my @values = ($form->{"id1"}, $form->{"id2"});
+ my @sortkeys = selectrow_query($form, $dbh, $query, @values);
+ $main::lxdebug->dump(0, "v", \@values);
+ $main::lxdebug->dump(0, "s", \@sortkeys);
+
+ $query = qq|UPDATE $table SET sortkey = ? WHERE id = ?|;