1 # @tag: clean_tax_18_19
2 # @description: Vorbereitung für neue Steuerschlüssel 18,19
3 # @depends: release_3_6_0
5 package SL::DBUpgrade2::clean_tax_18_19;
10 use parent qw(SL::DBUpgrade2::Base);
12 sub delete_alter_tax {
17 where chart_id is not null
19 and reverse_charge_chart_id is null
23 FROM acc_trans where tax_id = ?
27 my $delete_taxkey = <<SQL;
28 DELETE from taxkeys where tax_id = ?
31 my $delete_tax = <<SQL;
32 DELETE from tax where id = ?
37 UPDATE tax set chart_id = NULL
42 my $h_fetch = $self->dbh->prepare($query);
43 my $acc_fetch = $self->dbh->prepare($q_fetch);
44 my $delete_tk = $self->dbh->prepare($delete_taxkey);
45 my $delete_t = $self->dbh->prepare($delete_tax);
46 my $edit_q = $self->dbh->prepare($edit_tax);
50 foreach ( qw(18 19) ) {
51 $h_fetch->execute($_) || $::form->dberror($query);
52 while (my $entry = $h_fetch->fetchrow_hashref) {
53 $tax_id = $entry->{id};
55 $edit_q->execute($tax_id) || $::form->dberror($edit_tax);
56 $acc_fetch->execute($tax_id) || $::form->dberror($q_fetch);
57 if (!$acc_fetch->fetchrow_hashref) {
58 $delete_tk->execute($tax_id) || $::form->dberror($delete_tk);
59 $delete_t ->execute($tax_id) || $::form->dberror($delete_t);
68 return 1 unless ($self->check_coa('Germany-DATEV-SKR03EU') ||$self->check_coa('Germany-DATEV-SKR04EU'));
70 $self->delete_alter_tax;