1 # @tag: delete_wrong_charts_for_taxkeys_04
2 # @description: SKR04: 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_04;
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
22 my $q_update_04 = <<SQL;
27 AND (taxkey = 3 OR taxkey = 9)
28 AND EXISTS (SELECT * FROM defaults WHERE coa = 'Germany-DATEV-SKR04EU')
32 my $h_fetch = $self->dbh->prepare($q_fetch);
33 $h_fetch->execute || $::form->dberror($q_fetch);
35 my $h_update_04 = $self->dbh->prepare($q_update_04);
37 while (my $entry = $h_fetch->fetchrow_hashref) {
38 $h_update_04->execute($entry->{chart_id}) || $::form->dberror($q_update_04);
41 $h_fetch->execute || $::form->dberror($q_fetch);
43 if (!$h_fetch->fetchrow_hashref) {
46 ADD CONSTRAINT chart_id_unique_tax UNIQUE (chart_id)
48 my $q_unique_p = $self->dbh->prepare($q_unique);
49 $q_unique_p->execute || $::form->dberror($q_unique_p);
56 return 1 unless $self->check_coa('Germany-DATEV-SKR04EU');
58 $self->delete_chart_id_tax;