1 # @tag: delete_wrong_charts_for_taxkeys
2 # @description: Uralte falsch angelegte Automatikkonten raus -> Chance auf tax.chart_id unique setzen
3 # @depends: release_3_6_0
5 package SL::DBUpgrade2::delete_wrong_charts_for_taxkeys;
10 use parent qw(SL::DBUpgrade2::Base);
12 sub delete_chart_id_tax {
17 FROM tax where chart_id is not null
18 GROUP BY chart_id HAVING COUNT(*) > 1
27 AND (taxkey = 19 OR taxkey = 13)
28 AND EXISTS (SELECT * FROM defaults WHERE coa = 'Germany-DATEV-SKR03EU')
31 my $h_fetch = $self->dbh->prepare($q_fetch);
32 $h_fetch->execute || $::form->dberror($q_fetch);
34 my $h_update_03 = $self->dbh->prepare($q_update);
36 while (my $entry = $h_fetch->fetchrow_hashref) {
37 $h_update_03->execute($entry->{chart_id}) || $::form->dberror($q_update);
40 $h_fetch->execute || $::form->dberror($q_fetch);
42 if (!$h_fetch->fetchrow_hashref) {
45 ADD CONSTRAINT chart_id_unique_tax UNIQUE (chart_id)
47 my $q_unique_p = $self->dbh->prepare($q_unique);
48 $q_unique_p->execute || $::form->dberror($q_unique_p);
55 return 1 unless $self->check_coa('Germany-DATEV-SKR03EU');
57 $self->delete_chart_id_tax;