+ # Add valid taxkeys into the array
+ push @taxkeys ,
+ {
+ id => ($form->{"taxkey_id_$tk_count"} eq 'NEW') ? conv_i('') : conv_i($form->{"taxkey_id_$tk_count"}),
+ tax_id => conv_i($form->{"taxkey_tax_$tk_count"}),
+ startdate => conv_date($form->{"taxkey_startdate_$tk_count"}),
+ chart_id => conv_i($form->{"id"}),
+ pos_ustva => conv_i($form->{"taxkey_pos_ustva_$tk_count"}),
+ delete => ( $form->{"taxkey_del_$tk_count"} eq 'delete' ) ? '1' : '',
+ };
+
+ $tk_count++;
+ }
+
+ TAXKEY:
+ for my $j (0 .. $#taxkeys){
+ if ( defined $taxkeys[$j]{'id'} ){
+ # delete Taxkey?
+
+ if ($taxkeys[$j]{'delete'}){
+ $query = qq{
+ DELETE FROM taxkeys WHERE id = ?
+ };
+
+ @values = ($taxkeys[$j]{'id'});
+
+ do_query($form, $dbh, $query, @values);
+
+ next TAXKEY;
+ }
+
+ # UPDATE Taxkey
+
+ $query = qq{
+ UPDATE taxkeys
+ SET taxkey_id = (SELECT taxkey FROM tax WHERE tax.id = ?),
+ chart_id = ?,
+ tax_id = ?,
+ pos_ustva = ?,
+ startdate = ?
+ WHERE id = ?
+ };
+ @values = (
+ $taxkeys[$j]{'tax_id'},
+ $taxkeys[$j]{'chart_id'},
+ $taxkeys[$j]{'tax_id'},
+ $taxkeys[$j]{'pos_ustva'},
+ $taxkeys[$j]{'startdate'},
+ $taxkeys[$j]{'id'},
+ );
+ do_query($form, $dbh, $query, @values);
+ }
+ else {
+ # INSERT Taxkey
+
+ $query = qq{
+ INSERT INTO taxkeys (
+ taxkey_id,
+ chart_id,
+ tax_id,
+ pos_ustva,
+ startdate
+ )
+ VALUES ((SELECT taxkey FROM tax WHERE tax.id = ?), ?, ?, ?, ?)
+ };
+ @values = (
+ $taxkeys[$j]{'tax_id'},
+ $taxkeys[$j]{'chart_id'},
+ $taxkeys[$j]{'tax_id'},
+ $taxkeys[$j]{'pos_ustva'},
+ $taxkeys[$j]{'startdate'},
+ );
+
+ do_query($form, $dbh, $query, @values);