X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=sql%2FPg-upgrade2%2Fconvert_taxzone.pl;h=3343c6f1239f6b74ca21313464b9809f8a356e9f;hb=a6e0a7f493d24aec0eebede85eeaa5e724bd2e11;hp=413d772de5c811dadb8718a1d0e99dda68490903;hpb=b989d7cfb4bd8de5c3e290b8df0519ad34d5dd0c;p=kivitendo-erp.git diff --git a/sql/Pg-upgrade2/convert_taxzone.pl b/sql/Pg-upgrade2/convert_taxzone.pl index 413d772de..3343c6f12 100644 --- a/sql/Pg-upgrade2/convert_taxzone.pl +++ b/sql/Pg-upgrade2/convert_taxzone.pl @@ -39,17 +39,26 @@ SQL } $sth->finish; - my $taxzone_charts_update_query; - foreach my $taxzone ( @{$::form->{taxzones}} ) { - foreach my $buchungsgruppe ( @{$::form->{buchungsgruppen}} ) { - my $id = $taxzone->{id}; - my $income_accno_id = $buchungsgruppe->{"income_accno_id_$id"}; - my $expense_accno_id = $buchungsgruppe->{"expense_accno_id_$id"}; - # TODO: check if the variables have a value - $taxzone_charts_update_query .= "INSERT INTO taxzone_charts (taxzone_id, buchungsgruppen_id, income_accno_id, expense_accno_id) VALUES ('$taxzone->{id}', '$buchungsgruppe->{id}', $income_accno_id, $expense_accno_id);\n"; + my $taxzone_charts_update_query = "INSERT INTO taxzone_charts (taxzone_id, buchungsgruppen_id, income_accno_id, expense_accno_id) VALUES (?, ?, ?, ?)"; + $sth = $self->dbh->prepare($taxzone_charts_update_query); + + # convert Buchungsgruppen to taxzone_charts if any exist + # the default swiss COA doesn't have any, for example + if ( scalar @{ $::form->{buchungsgruppen} } > 0 ) { + foreach my $taxzone ( @{$::form->{taxzones}} ) { + foreach my $buchungsgruppe ( @{$::form->{buchungsgruppen}} ) { + my $id = $taxzone->{id}; + my $income_accno_id = $buchungsgruppe->{"income_accno_id_$id"}; + my $expense_accno_id = $buchungsgruppe->{"expense_accno_id_$id"}; + my @values = ($taxzone->{id}, $buchungsgruppe->{id}, $income_accno_id, $expense_accno_id); + $sth->execute(@values) && next; + $taxzone_charts_update_query =~ s{\?}{shift(@values)}eg; + $::form->dberror($taxzone_charts_update_query); + }; }; }; - $self->db_query($taxzone_charts_update_query); + + $sth->finish; my $clean_buchungsgruppen_query = <