-    
-      
-        
-          | | . $locale->text('Account') . qq| | 
-          | . $locale->text('Amount') . qq| | 
-          | . $locale->text('Tax') . qq| | 
-          | . $locale->text('Taxkey') . qq| | 
-          | . $locale->text('Project') . qq| | 
-         
-|;
-
-  my $amount  = $locale->text('Amount');
-  my $project = $locale->text('Project');
+  $form->header();
 
   for my $i (1 .. $form->{rowcount}) {
 
     # format amounts
-    $form->{"amount_$i"} =
-      $form->format_amount(\%myconfig, $form->{"amount_$i"}, 2);
+    $form->{"amount_$i"} = $form->format_amount(\%myconfig, $form->{"amount_$i"}, 2);
     $form->{"tax_$i"} = $form->format_amount(\%myconfig, $form->{"tax_$i"}, 2);
 
     my $selected_accno_full;
@@ -546,144 +330,61 @@ $jsscript
 
     $selected_taxchart = $taxchart_init unless ($form->{"taxchart_$i"});
 
-    my $selectAP_amount =
-      NTI($cgi->popup_menu('-name' => "AP_amount_$i",
-                           '-id' => "AP_amount_$i",
-                           '-style' => 'width:400px',
-                           '-onChange' => "setTaxkey(this, $i)",
-                           '-values' => \@AP_amount_values,
-                           '-labels' => \%AP_amount_labels,
-                           '-default' => $selected_accno_full))
-      . $cgi->hidden('-name' => "previous_AP_amount_$i",
-                     '-default' => $selected_accno_full);
-
-    my $tax = qq|| .
-      NTI($cgi->popup_menu('-name' => "taxchart_$i",
-                           '-id' => "taxchart_$i",
-                           '-style' => 'width:200px',
-                           '-values' => \@taxchart_values,
-                           '-labels' => \%taxchart_labels,
-                           '-default' => $selected_taxchart))
-      . qq| | |;
-
-    my $projectnumber =
-      NTI($cgi->popup_menu('-name' => "project_id_$i",
-                           '-values' => \@project_values,
-                           '-labels' => \%project_labels,
-                           '-default' => $form->{"project_id_$i"} ));
-
-    print qq|
-        
-          | $selectAP_amount | 
-          {"amount_$i"}> | 
-          $form->{"tax_$i"} | 
-          $tax
-          $projectnumber | 
-         
-|;
-    $amount  = "";
-    $project = "";
+    $form->{'selected_accno_full_'. $i} = $selected_accno_full;
+
+    $form->{'selected_taxchart_'. $i} = $selected_taxchart;
   }
 
-  my $taxlabel =
-    ($form->{taxincluded})
-    ? $locale->text('Tax Included')
-    : $locale->text('Tax');
+  $form->{AP_amount_value_title_sub} = sub {
+    my $item = shift;
+    return [
+      $item->{accno} .'--'. $item->{tax_id},
+      $item->{accno} .'--'. $item->{description},
+    ];
+  };
+
+  $form->{taxchart_value_title_sub} = sub {
+    my $item = shift;
+    return [
+      $item->{id} .'--'. $item->{rate},
+      $item->{taxdescription} .' '. ($item->{rate} * 100) .' %',
+    ];
+  };
+
+  $form->{AP_paid_value_title_sub} = sub {
+    my $item = shift;
+    return [
+      $item->{accno},
+      $item->{accno} .'--'. $item->{description}
+    ];
+  };
+
+  $form->{APselected_value_title_sub} = sub {
+    my $item = shift;
+    return [
+      $item->{accno},
+      $item->{accno} .'--'. $item->{description}
+    ];
+  };
 
   $form->{invtotal_unformatted} = $form->{invtotal};
   $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2);
 
-  my $APselected =
-    NTI($cgi->popup_menu('-name' => "APselected", '-id' => "APselected",
-                         '-style' => 'width:400px',
-                         '-values' => \@AP_values, '-labels' => \%AP_labels,
-                         '-default' => $form->{APselected}));
-  print qq|
-        
-          
-             
-           | 
-         
-        
-          | ${APselected} | 
-          $form->{invtotal} | 
-
-          {oldinvtotal}>
-          {oldtotalpaid}>
-
-          
-
-           | 
-
-
-         
-       
-      | 
-    
-    
-    
-      
-        
-          | | . $locale->text('Payments') . qq| | 
-         
-|;
+  $form->{totalpaid} = 0;
 
-  my @column_index;
-  if ($form->{defaultcurrency} && ($form->{currency} eq $form->{defaultcurrency})) {
-    @column_index = qw(datepaid source memo paid AP_paid paid_project_id);
-  } else {
-    @column_index = qw(datepaid source memo paid exchangerate AP_paid paid_project_id);
+  if ( $form->{'paid_'. $form->{paidaccounts}} ) {
+    $form->{paidaccounts}++;
   }
 
-  my %column_data;
-  $column_data{datepaid}     = "" . $locale->text('Date') . " | ";
-  $column_data{paid}         = "" . $locale->text('Amount') . " | ";
-  $column_data{exchangerate} = "" . $locale->text('Exch') . " | ";
-  $column_data{AP_paid}      = "" . $locale->text('Account') . " | ";
-  $column_data{source}       = "" . $locale->text('Source') . " | ";
-  $column_data{memo}         = "" . $locale->text('Memo') . " | ";
-  $column_data{paid_project_id} = "" . $locale->text('Project Number') . " | ";
-
-  print "
-        
-";
-  map { print "$column_data{$_}\n" } @column_index;
-  print "
-         
-";
-
-  my @triggers  = ();
-  $form->{totalpaid} = 0;
+  # default account for current assets (i.e. 1801 - SKR04)
+  $form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
 
-  $form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
   for my $i (1 .. $form->{paidaccounts}) {
-    print "
-        
-";
-
-    my $selectAP_paid =
-      NTI($cgi->popup_menu('-name' => "AP_paid_$i",
-                           '-id' => "AP_paid_$i",
-                           '-values' => \@AP_paid_values,
-                           '-labels' => \%AP_paid_labels,
-                           '-default' => $form->{"AP_paid_$i"}));
-
     $form->{totalpaid} += $form->{"paid_$i"};
 
     # format amounts
     if ($form->{"paid_$i"}) {
-      $form->{"paid_$i"} =
-        $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+      $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
     }
     if ($form->{"exchangerate_$i"} == 0) {
       $form->{"exchangerate_$i"} = "";
@@ -692,139 +393,24 @@ $jsscript
         $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
     }
 
-    print qq|{"acc_trans_id_$i"}>\n|;
-    print qq|{"gldate_$i"}>\n|;
     my $changeable = 1;
-    if ($::lx_office_conf{features}->{payments_changeable} == 0) {
+    if (SL::DB::Default->get->payments_changeable == 0) {
       # never
       $changeable = ($form->{"acc_trans_id_$i"})? 0 : 1;
     }
-    if ($::lx_office_conf{features}->{payments_changeable} == 2) {
+    if (SL::DB::Default->get->payments_changeable == 2) {
       # on the same day
       $changeable = (($form->{"gldate_$i"} eq '') || $form->current_date(\%myconfig) eq $form->{"gldate_$i"});
     }
 
-    $exchangerate = qq| |;
-    if ($form->{defaultcurrency} && ($form->{currency} ne $form->{defaultcurrency})) {
-      if ($form->{"forex_$i"}) {
-        $exchangerate =
-          qq|{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
-      } else {
-        if ($changeable) {
-          $exchangerate =
-            qq|{"exchangerate_$i"}>|;
-        } else {
-          $exchangerate =
-            qq|{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
-        }
-      }
-    }
-
-    $exchangerate .= qq|
-{"forex_$i"}>
-|;
-
-    my $datepaid;
-    if ($changeable) {
-      $datepaid = qq|| 
-          | |;
-    } else {
-      $datepaid = qq|$form->{"datepaid_$i"} | |.
-        qq|{"datepaid_$i"}>|;
-    }
+    $form->{'paidaccount_changeable_'. $i} = $changeable;
 
-    my $paid;
-    if ($changeable) {
-      $paid = qq| | |;
-    } else {
-      $paid = qq|$form->{"paid_$i"} | |.
-        qq|{"paid_$i"}>|;
-    }
-
-    my $source;
-    if ($changeable) {
-      $source = qq| | |;
-    } else {
-      $source = qq|$form->{"source_$i"} | |.
-        qq|{"source_$i"}>|;
-    }
-
-    my $memo;
-    if ($changeable) {
-      $memo = qq| | |;
-    } else {
-      $memo = qq|$form->{"memo_$i"} | |.
-        qq|{"memo_$i"}>|;
-    }
-
-    my $AP_paid;
-    if ($changeable) {
-      $AP_paid = qq|${selectAP_paid} | |;
-    } else {
-      $AP_paid = qq|$form->{"AP_paid_$i"} | |.
-        qq|{"AP_paid_$i"}>|;
-    }
-
-    my $paid_project_id;
-    if ($changeable) {
-      $paid_project_id =
-      qq||
-      . NTI($cgi->popup_menu('-name' => "paid_project_id_$i",
-                             '-values' => \@project_values,
-                             '-labels' => \%project_labels,
-                             '-default' => $form->{"paid_project_id_$i"} ))
-      . qq| | |;
-    } else {
-      my $projectnumber = $project_labels{$form->{"paid_project_id_$i"}};
-      $paid_project_id = qq|$projectnumber | |.
-        qq|{"paid_project_id_$i"}>|;
-    }
-
-    $column_data{"paid_$i"}            = $paid;
-    $column_data{"AP_paid_$i"}         = $AP_paid;
-    $column_data{"exchangerate_$i"}    = qq|$exchangerate | |;
-    $column_data{"datepaid_$i"}        = $datepaid;
-    $column_data{"source_$i"}          = $source;
-    $column_data{"memo_$i"}            = $memo;
-    $column_data{"paid_project_id_$i"} = $paid_project_id;
-
-    map { print qq|$column_data{"${_}_$i"}\n| } @column_index;
-
-    print "
-         
-";
-    if ($changeable) {
-      push(@triggers, "datepaid_$i", "BL", "trigger_datepaid_$i");
-    }
+    $form->{'labelpaid_project_id_'. $i} = $project_labels{$form->{'paid_project_id_'. $i}};
   }
 
-  my $paid_missing = $form->{invtotal_unformatted} - $form->{totalpaid};
+  $form->{paid_missing} = $form->{invtotal_unformatted} - $form->{totalpaid};
 
-  print qq|
-        
-           | 
-           | 
-          | . $locale->text('Total') . qq| | 
-          | . H($form->format_amount(\%myconfig, $form->{totalpaid}, 2)) . qq| | 
-         
-        
-           | 
-           | 
-          | . $locale->text('Missing amount') . qq| | 
-          | . H($form->format_amount(\%myconfig, $paid_missing, 2)) . qq| | 
-         
-| . $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers) .
-    qq|
-    {paidaccounts}>
-
-       
-     | 
-  
-