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;