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