+ $selected_accno = '' if ($init);
+ $selected_taxchart = $taxchart_init unless ($selected_taxchart ne "");
+
+ $accno = qq|<td>| .
+ NTI($cgi->popup_menu('-name' => "accno_$i",
+ '-id' => "accno_$i",
+ '-onChange' => "setTaxkey(this, $i)",
+ '-style' => 'width:200px',
+ '-values' => \@chart_values,
+ '-labels' => \%chart_labels,
+ '-default' => $selected_accno_full))
+ . $cgi->hidden('-name' => "previous_accno_$i",
+ '-default' => $selected_accno_full)
+ . qq|</td>|;
+ $tax = qq|<td>| .
+ NTI($cgi->popup_menu('-name' => "taxchart_$i",
+ '-id' => "taxchart_$i",
+ '-style' => 'width:200px',
+ '-values' => \@taxchart_values,
+ '-labels' => \%taxchart_labels,
+ '-default' => $selected_taxchart))
+ . qq|</td>|;
+
+ if ($init) {
+ $korrektur =
+ qq|<td><input type="checkbox" name="korrektur_$i" value="1"></td>|;
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <td><input name="fx_transaction_$i" class=checkbox type=checkbox value=1></td>
+ |;
+ }
+
+ } else {
+ if ($form->{"debit_$i"} != 0) {
+ $form->{totaldebit} += $form->{"debit_$i"};
+ if (!$form->{taxincluded}) {
+ $form->{totaldebit} += $form->{"tax_$i"};
+ }
+ } else {
+ $form->{totalcredit} += $form->{"credit_$i"};
+ if (!$form->{taxincluded}) {
+ $form->{totalcredit} += $form->{"tax_$i"};
+ }
+ }
+
+ for (qw(debit credit tax)) {
+ $form->{"${_}_$i"} =
+ ($form->{"${_}_$i"})
+ ? $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2)
+ : "";
+ }
+
+ if ($i < $form->{rowcount}) {
+ if ($form->{transfer}) {
+ $checked = ($form->{"fx_transaction_$i"}) ? "1" : "";
+ $x = ($checked) ? "x" : "";
+ $fx_transaction = qq|
+ <td><input type=hidden name="fx_transaction_$i" value="$checked">$x</td>
+ |;
+ }
+ $checked = ($form->{"korrektur_$i"}) ? "checked" : "";
+ $korrektur =
+ qq|<td><input type="checkbox" name="korrektur_$i" value="1" $checked></td>|;
+ $form->hide_form("accno_$i");
+
+ } else {
+ $korrektur =
+ qq|<td><input type="checkbox" name="korrektur_$i" value="1"></td>|;
+ if ($form->{transfer}) {
+ $fx_transaction = qq|
+ <td><input name="fx_transaction_$i" class=checkbox type=checkbox value=1></td>
+ |;
+ }
+ }
+ }
+ my $debitreadonly = "";
+ my $creditreadonly = "";
+ if ($i == $form->{rowcount}) {
+ if ($debitlock) {
+ $debitreadonly = "readonly";
+ } elsif ($creditlock) {
+ $creditreadonly = "readonly";
+ }
+ }
+
+ my $projectnumber =
+ NTI($cgi->popup_menu('-name' => "project_id_$i",
+ '-values' => \@project_values,
+ '-labels' => \%project_labels,
+ '-default' => $form->{"project_id_$i"} ));
+
+ my $copy2credit = 'onkeyup="copy_debit_to_credit()"' if $i == 1;
+
+ print qq|<tr valign=top>
+ $accno
+ $fx_transaction
+ <td><input name="debit_$i" size="8" value="$form->{"debit_$i"}" accesskey=$i $copy2credit $debitreadonly></td>
+ <td><input name="credit_$i" size=8 value="$form->{"credit_$i"}" $creditreadonly></td>
+ <td><input name="tax_$i" size=6 value="$form->{"tax_$i"}"></td>
+ $korrektur
+ $tax|;
+
+ if ($form->{show_details}) {
+ print qq|
+ $source
+ $memo
+ <td>$projectnumber</td>
+|;
+ }
+ print qq|
+ </tr>
+|;
+ }
+
+ $form->hide_form(qw(rowcount selectaccno));
+
+ $lxdebug->leave_sub();
+
+}
+
+sub form_header {
+ my ($init) = @_;
+ $lxdebug->enter_sub();
+ $title = $form->{title};
+ $form->{title} = $locale->text("$title General Ledger Transaction");
+ $readonly = ($form->{id}) ? "readonly" : "";
+
+ $show_details_checked = "checked" if $form->{show_details};
+
+ # $locale->text('Add General Ledger Transaction')
+ # $locale->text('Edit General Ledger Transaction')
+
+ map { $form->{$_} =~ s/\"/"/g }
+ qw(reference description chart taxchart);
+
+ $form->{javascript} = qq|<script type="text/javascript">
+ <!--
+ function setTaxkey(accno, row) {
+ var taxkey = accno.options[accno.selectedIndex].value;
+ var reg = /--([0-9]*)/;
+ var found = reg.exec(taxkey);
+ var index = found[1];
+ index = parseInt(index);
+ var tax = 'taxchart_' + row;
+ for (var i = 0; i < document.getElementById(tax).options.length; ++i) {
+ var reg2 = new RegExp("^"+ index, "");
+ if (reg2.exec(document.getElementById(tax).options[i].value)) {
+ document.getElementById(tax).options[i].selected = true;
+ break;
+ }
+ }
+ };
+
+ function copy_debit_to_credit() {
+ var txt = document.getElementsByName('debit_1')[0].value;
+ document.getElementsByName('credit_2')[0].value = txt;
+ };
+
+ //-->
+ </script>|;
+ $form->{javascript} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
+
+ $form->{selectdepartment} =~ s/ selected//;
+ $form->{selectdepartment} =~
+ s/option>\Q$form->{department}\E/option selected>$form->{department}/;
+
+ if (($rows = $form->numtextrows($form->{description}, 50)) > 1) {
+ $description =
+ qq|<textarea name=description rows=$rows cols=50 wrap=soft $readonly >$form->{description}</textarea>|;
+ } else {
+ $description =
+ qq|<input name=description size=50 value="$form->{description}" $readonly>|;
+ }
+
+ $taxincluded = ($form->{taxincluded}) ? "checked" : "";
+
+ if ($init) {
+ $taxincluded = "checked";
+ }
+
+ $department = qq|
+ <tr>
+ <th align=right nowrap>| . $locale->text('Department') . qq|</th>
+ <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
+ <input type=hidden name=selectdepartment value="$form->{selectdepartment}">
+ </tr>
+| if $form->{selectdepartment};
+ if ($init) {
+ $form->{fokus} = "gl.reference";
+ } else {
+ $form->{fokus} = qq|gl.accno_$form->{rowcount}|;
+ }
+
+ # use JavaScript Calendar or not
+ $form->{jsscript} = 1;
+ $jsscript = "";
+ if ($form->{jsscript}) {
+
+ # with JavaScript Calendar
+ $button1 = qq|
+ <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" $readonly onBlur=\"check_right_date_format(this)\">
+ <input type=button name=transdate id="trigger1" value=|
+ . $locale->text('button') . qq|></td>
+ |;
+
+ #write Trigger
+ $jsscript =
+ Form->write_trigger(\%myconfig, "1", "transdate", "BL", "trigger1");
+ } else {
+
+ # without JavaScript Calendar
+ $button1 =
+ qq|<td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" $readonly onBlur=\"check_right_date_format(this)\"></td>|;
+ }
+
+ $form->{previous_id} ||= "--";
+ $form->{previous_gldate} ||= "--";
+
+ $form->header;
+