use SL::GL;
use SL::PE;
-require "$form->{path}/arap.pl";
+require "bin/mozilla/arap.pl";
+require "bin/mozilla/common.pl";
1;
$form->{title} = "Add";
$form->{callback} =
- "$form->{script}?action=add&path=$form->{path}&login=$form->{login}&password=$form->{password}"
+ "$form->{script}?action=add&login=$form->{login}&password=$form->{password}"
unless $form->{callback};
# we use this only to set a default date
GL->transaction(\%myconfig, \%$form);
- map {
- $chart .=
- "<option value=\"$_->{accno}--$_->{tax_id}\">$_->{accno}--$_->{description}</option>"
- } @{ $form->{chart} };
map {
$tax .=
qq|<option value="$_->{id}--$_->{rate}">$_->{taxdescription} |
. ($_->{rate} * 100) . qq| %|
} @{ $form->{TAX} };
- $form->{chart} = $chart;
- $form->{chartinit} = $chart;
$form->{rowcount} = 2;
- $form->{debitchart} = $chart;
- $form->{creditchart} = $chart;
- $form->{taxchart} = $tax;
-
$form->{debit} = 0;
$form->{credit} = 0;
$form->{tax} = 0;
$lxdebug->enter_sub();
GL->transaction(\%myconfig, \%$form);
- map {
- $chart .=
- "<option value=\"$_->{accno}--$_->{tax_id}\">$_->{accno}--$_->{description}</option>"
- } @{ $form->{chart} };
map {
$tax .=
. ($_->{rate} * 100) . qq| %|
} @{ $form->{TAX} };
- $form->{chart} = $chart;
-
- $form->{taxchart} = $tax;
-
$form->{amount} = $form->format_amount(\%myconfig, $form->{amount}, 2);
# departments
my $tax = 0;
my $taxaccno = "";
foreach $ref (@{ $form->{GL} }) {
- $form->{"projectnumber_$i"} = "$ref->{projectnumber}--$ref->{project_id}";
-
$j = $i - 1;
if ($tax && ($ref->{accno} eq $taxaccno)) {
$form->{"tax_$j"} = abs($ref->{amount});
$form->{"credit_$j"} += $form->{"tax_$j"};
}
}
+ $form->{"project_id_$j"} = $ref->{project_id};
+
} else {
$form->{"accno_$i"} = "$ref->{accno}--$ref->{tax_id}";
for (qw(fx_transaction source memo)) { $form->{"${_}_$i"} = $ref->{$_} }
$form->{"credit_$i"} = $ref->{amount};
}
$form->{"taxchart_$i"} = "0--0.00";
+ $form->{"project_id_$i"} = $ref->{project_id};
$i++;
}
if ($ref->{taxaccno} && !$tax) {
$taxaccno = "";
$tax = 0;
}
-
}
$form->{rowcount} = $i;
</tr>
| if $form->{selectdepartment};
+ $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
+ "all" => 1 });
+
+ my %project_labels = ();
+ my @project_values = ("");
+ foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
+ push(@project_values, $item->{"id"});
+ $project_labels{$item->{"id"}} = $item->{"projectnumber"};
+ }
+
+ my $projectnumber =
+ NTI($cgi->popup_menu('-name' => "project_id",
+ '-values' => \@project_values,
+ '-labels' => \%project_labels));
+
# use JavaScript Calendar or not
$form->{jsscript} = $jscalendar;
$jsscript = "";
# with JavaScript Calendar
$button1 = qq|
- <td><input name=datefrom id=datefrom size=11 title="$myconfig{dateformat}">
+ <td><input name=datefrom id=datefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
<input type=button name=datefrom id="trigger1" value=|
. $locale->text('button') . qq|></td>
|;
$button2 = qq|
- <td><input name=dateto id=dateto size=11 title="$myconfig{dateformat}">
+ <td><input name=dateto id=dateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">
<input type=button name=dateto id="trigger2" value=|
. $locale->text('button') . qq|></td>
|;
# without JavaScript Calendar
$button1 =
- qq|<td><input name=datefrom id=datefrom size=11 title="$myconfig{dateformat}"></td>|;
+ qq|<td><input name=datefrom id=datefrom size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\"></td>|;
$button2 =
- qq|<td><input name=dateto id=dateto size=11 title="$myconfig{dateformat}"></td>|;
+ qq|<td><input name=dateto id=dateto size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\"></td>|;
}
-
+ $form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
$form->header;
-
+ $onload = qq|focus()|;
+ $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
+ $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
print qq|
-<body>
+<body onLoad="$onload">
<form method=post action=$form->{script}>
<th align=right>| . $locale->text('Notes') . qq|</th>
<td colspan=3><input name=notes size=40></td>
</tr>
+ <tr>
+ <th align=right>| . $locale->text('Project Number') . qq|</th>
+ <td colspan=3>$projectnumber</td>
+ </tr>
<tr>
<th align=right>| . $locale->text('From') . qq|</th>
$button1
<td>| . $locale->text('Source') . qq|</td>
<td align=right><input name="l_accno" class=checkbox type=checkbox value=Y checked></td>
<td>| . $locale->text('Account') . qq|</td>
- <td align=right><input name="l_gifi_accno" class=checkbox type=checkbox value=Y></td>
- <td>| . $locale->text('GIFI') . qq|</td>
</tr>
<tr>
<td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
<td>| . $locale->text('Subtotal') . qq|</td>
+ <td align=right><input name="l_projectnumbers" class=checkbox type=checkbox value=Y></td>
+ <td>| . $locale->text('Project Number') . qq|</td>
</tr>
</table>
</tr>
<input type=hidden name=nextsub value=generate_report>
-<input type=hidden name=path value=$form->{path}>
<input type=hidden name=login value=$form->{login}>
<input type=hidden name=password value=$form->{password}>
GL->all_transactions(\%myconfig, \%$form);
$callback =
- "$form->{script}?action=generate_report&path=$form->{path}&login=$form->{login}&password=$form->{password}";
+ "$form->{script}?action=generate_report&login=$form->{login}&password=$form->{password}";
$href = $callback;
$locale->text('Account')
. " : $form->{accno} $form->{account_description}";
}
- if ($form->{gifi_accno}) {
- $href .= "&gifi_accno=" . $form->escape($form->{gifi_accno});
- $callback .= "&gifi_accno=" . $form->escape($form->{gifi_accno}, 1);
- $option .= "\n<br>" if $option;
- $option .=
- $locale->text('GIFI')
- . " : $form->{gifi_accno} $form->{gifi_account_description}";
- }
if ($form->{source}) {
$href .= "&source=" . $form->escape($form->{source});
$callback .= "&source=" . $form->escape($form->{source}, 1);
$option .= "\n<br>" if $option;
$option .= $locale->text('Notes') . " : $form->{notes}";
}
+ if ($form->{project_id}) {
+ $href .= "&project_id=" . $form->escape($form->{project_id});
+ $callback .= "&project_id=" . $form->escape($form->{project_id});
+ }
if ($form->{datefrom}) {
$href .= "&datefrom=$form->{datefrom}";
. $locale->date(\%myconfig, $form->{dateto}, 1);
}
- @columns = $form->sort_columns(
- qw(transdate id reference description notes source debit debit_accno credit credit_accno debit_tax debit_tax_accno credit_tax credit_tax_accno accno gifi_accno)
+ @columns = $form->sort_columns( qw(
+ transdate id reference description
+ notes source debit debit_accno
+ credit credit_accno debit_tax debit_tax_accno
+ credit_tax credit_tax_accno accno
+ projectnumbers
+ )
);
- if ($form->{accno} || $form->{gifi_accno}) {
- @columns = grep !/(accno|gifi_accno)/, @columns;
+ if ($form->{accno}) {
+ @columns = grep !/accno/, @columns;
push @columns, "balance";
$form->{l_balance} = "Y";
"<th><a class=listheading href=$href&sort=accno>"
. $locale->text('Credit Tax Account')
. "</a></th>";
- $column_header{gifi_accno} =
- "<th><a class=listheading href=$href&sort=gifi_accno>"
- . $locale->text('GIFI')
- . "</a></th>";
$column_header{balance} = "<th>" . $locale->text('Balance') . "</th>";
+ $column_header{projectnumbers} =
+ "<th class=listheading>" . $locale->text('Project Numbers') . "</th>";
$form->{landscape} = 1;
$sameitem = $form->{GL}->[0]->{ $form->{sort} };
}
- if (($form->{accno} || $form->{gifi_accno}) && $form->{balance}) {
+ if ($form->{accno} && $form->{balance}) {
map { $column_data{$_} = "<td> </td>" } @column_index;
$column_data{balance} =
}
}
+ $transdate = "";
+ foreach $key (sort keys(%{ $ref->{ac_transdate} })) {
+ if ($key == 0) {
+ $transdate = "$ref->{ac_transdate}{$key}";
+ } else {
+ $transdate .= "<br>$ref->{ac_transdate}{$key}";
+ }
+ }
+
# $ref->{debit} = $form->format_amount(\%myconfig, $ref->{debit}, 2, " ");
# $ref->{credit} = $form->format_amount(\%myconfig, $ref->{credit}, 2, " ");
$column_data{id} = "<td align=right> $ref->{id} </td>";
- $column_data{transdate} =
- "<td align=center> $ref->{transdate} </td>";
+ $column_data{transdate} = "<td align=center>$transdate</td>";
$column_data{reference} =
- "<td align=center><a href=$ref->{module}.pl?action=edit&id=$ref->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{reference}</td>";
- $column_data{description} =
- "<td align=center>$ref->{description} </td>";
+ "<td align=center><a href=$ref->{module}.pl?action=edit&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{reference}</td>";
+ $column_data{description} = "<td align=center>$ref->{description} </td>";
$column_data{source} = "<td align=center>$ref->{source} </td>";
$column_data{notes} = "<td align=center>$ref->{notes} </td>";
$column_data{debit} = "<td align=right>$debit</td>";
? "<td align=right>$debittax</td>"
: "<td></td>";
$column_data{debit_tax_accno} = "<td align=center>$debittaxaccno</td>";
- $column_data{gifi_accno} =
- "<td><a href=$href&gifi_accno=$ref->{gifi_accno}&callback=$callback>$ref->{gifi_accno}</a> </td>";
$column_data{credit_tax} =
($ref->{credit_tax_accno} ne "")
? "<td align=right>$credittax</td>"
: "<td></td>";
$column_data{credit_tax_accno} = "<td align=center>$credittaxaccno</td>";
- $column_data{gifi_accno} =
- "<td><a href=$href&gifi_accno=$ref->{gifi_accno}&callback=$callback>$ref->{gifi_accno}</a> </td>";
$column_data{balance} =
"<td align=right>"
. $form->format_amount(\%myconfig, $form->{balance}, 2, 0) . "</td>";
+ $column_data{projectnumbers} =
+ "<td>" . join(", ", sort({ lc($a) cmp lc($b) } keys(%{ $ref->{projectnumbers} }))) . "</td>";
$i++;
$i %= 2;
map { $column_data{$_} = "<td> </td>" } @column_index;
+ my $balanced_ledger = $totaldebit
+ + $totaldebittax
+ - $totalcredit
+ - $totalcredittax;
+ # = 0 for balanced ledger
+
$column_data{debit} =
"<th align=right class=listtotal>"
. $form->format_amount(\%myconfig, $totaldebit, 2, " ") . "</th>";
print qq|
</tr>
+ <tr>|;
+
+
+ if ( abs($balanced_ledger) > 0.001 ) {
+
+ print qq|<td colspan="4" style="background-color:#FFA0A0" >|
+ . $locale->text('Unbalanced Ledger')
+ . ": "
+ . $form->format_amount(\%myconfig, $balanced_ledger, 3, " ")
+
+ } elsif ( abs($balanced_ledger) <= 0.001 ) {
+
+ print qq|<td colspan="3">|
+ . $locale->text('Balanced Ledger')
+
+ }
+
+
+ print qq|
+ </td>
+ </tr>
</tbody>
</table>
</td>
<input name=callback type=hidden value="$form->{callback}">
-<input type=hidden name=path value=$form->{path}>
<input type=hidden name=login value=$form->{login}>
<input type=hidden name=password value=$form->{password}>
<input class=submit type=submit name=action value="|
. $locale->text('Sales Invoice') . qq|">
<input class=submit type=submit name=action value="|
- . $locale->text('Vendor Invoice') . qq|">|;
-
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
-
- print qq|
+ . $locale->text('Vendor Invoice') . qq|">
</form>
sub update {
$lxdebug->enter_sub();
- if ($form->{transdate} ne $form->{oldtransdate}) {
- if ($form->{selectprojectnumber}) {
- $form->all_projects(\%myconfig, undef, $form->{transdate});
- if (@{ $form->{all_project} }) {
- $form->{selectprojectnumber} = "<option>\n";
- for (@{ $form->{all_project} }) {
- $form->{selectprojectnumber} .=
- qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n|;
- }
- $form->{selectprojectnumber} =
- $form->escape($form->{selectprojectnumber}, 1);
- }
- }
- $form->{oldtransdate} = $form->{transdate};
- }
+ $form->{oldtransdate} = $form->{transdate};
my @a = ();
my $count = 0;
my ($init) = @_;
$lxdebug->enter_sub();
- $form->{selectprojectnumber} = $form->unescape($form->{selectprojectnumber})
- if $form->{selectprojectnumber};
-
$form->{totaldebit} = 0;
$form->{totalcredit} = 0;
- my $chart = $form->{chart};
- $chart = $form->unquote($chart);
- $form->{taxchart} = $form->unquote($form->{taxchart});
- $taxchart = $form->{taxchart};
+
+ my @old_project_ids = ();
+ map({ push(@old_project_ids, $form->{"project_id_$_"})
+ if ($form->{"project_id_$_"}); } (1..$form->{"rowcount"}));
+
+ $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
+ "all" => 0,
+ "old_id" => \@old_project_ids },
+ "charts" => { "key" => "ALL_CHARTS",
+ "transdate" => $form->{transdate} },
+ "taxcharts" => "ALL_TAXCHARTS");
+
+ my %project_labels = ();
+ my @project_values = ("");
+ foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
+ push(@project_values, $item->{"id"});
+ $project_labels{$item->{"id"}} = $item->{"projectnumber"};
+ }
+
+ my %chart_labels = ();
+ my @chart_values = ();
+ my %charts = ();
+ my $taxchart_init;
+ foreach my $item (@{ $form->{ALL_CHARTS} }) {
+ my $key = Q($item->{accno}) . "--" . Q($item->{tax_id});
+ $taxchart_init = $item->{taxkey_id} unless (@chart_values);
+ push(@chart_values, $key);
+ $chart_labels{$key} = H($item->{accno}) . "--" . H($item->{description});
+ $charts{$item->{accno}} = $item;
+ }
+
+ my %taxchart_labels = ();
+ my @taxchart_values = ();
+ my %taxcharts = ();
+ foreach my $item (@{ $form->{ALL_TAXCHARTS} }) {
+ my $key = Q($item->{id}) . "--" . Q($item->{rate});
+ $taxchart_init = $key if ($taxchart_init eq $item->{taxkey});
+ push(@taxchart_values, $key);
+ $taxchart_labels{$key} = H($item->{taxdescription}) . " " .
+ H($item->{rate} * 100) . ' %';
+ $taxcharts{$item->{id}} = $item;
+ }
+
for $i (1 .. $form->{rowcount}) {
$source = qq|
- <td><input name="source_$i" value="$form->{"source_$i"}" size="16" tabindex=|
- . ($i + 11 + (($i - 1) * 8)) . qq|></td>|;
+ <td><input name="source_$i" value="$form->{"source_$i"}" size="16"></td>|;
$memo = qq|
- <td><input name="memo_$i" value="$form->{"memo_$i"}" size="16" tabindex=|
- . ($i + 12 + (($i - 1) * 8)) . qq|></td>|;
+ <td><input name="memo_$i" value="$form->{"memo_$i"}" size="16"></td>|;
+
+ my $selected_accno_full;
+ my ($accno_row) = split(/--/, $form->{"accno_$i"});
+ my $item = $charts{$accno_row};
+ $selected_accno_full = "$item->{accno}--$item->{tax_id}";
+
+ my $selected_taxchart = $form->{"taxchart_$i"};
+ my ($selected_accno, $selected_tax_id) = split(/--/, $selected_accno_full);
+ my ($previous_accno, $previous_tax_id) = split(/--/, $form->{"previous_accno_$i"});
+
+ if ($previous_accno &&
+ ($previous_accno eq $selected_accno) &&
+ ($previous_tax_id ne $selected_tax_id)) {
+ my $item = $taxcharts{$selected_tax_id};
+ $selected_taxchart = "$item->{id}--$item->{rate}";
+ }
+
+ $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) {
- $accno = qq|
- <td><select name="accno_$i" onChange="setTaxkey(this, $i)" style="width:200px" tabindex=|
- . ($i + 5 + (($i - 1) * 8)) . qq|>$form->{chartinit}</select></td>|;
- $tax =
- qq|<td><select id="taxchart_$i" name="taxchart_$i" style="width:200px" tabindex=|
- . ($i + 10 + (($i - 1) * 8))
- . qq|>$form->{taxchart}</select></td>|;
-
- # if ($form->{selectprojectnumber}) {
- # $project = qq|
- # <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
- # }
$korrektur =
- qq|<td><input type="checkbox" name="korrektur_$i" value="1" tabindex=|
- . ($i + 9 + (($i - 1) * 8))
- . qq|></td>|;
+ 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>
}
if ($i < $form->{rowcount}) {
-
- $accno = $chart;
- $chart_selected = $form->{"accno_$i"};
- $accno =~
- s/value=\"$chart_selected\"/value=\"$chart_selected\" selected/;
- $accno =
- qq|<td><select name="accno_$i" onChange="setTaxkey(this, $i)" style="width:200px" tabindex=|
- . ($i + 5 + (($i - 1) * 8))
- . qq|>$accno</select></td>|;
- $tax = $taxchart;
- $tax_selected = $form->{"taxchart_$i"};
- print(STDERR "TAX_SELCTED $tax_selected\n");
- $tax =~ s/value=\"$tax_selected\"/value=\"$tax_selected\" selected/;
- $tax =
- qq|<td><select id="taxchart_$i" name="taxchart_$i" tabindex=|
- . ($i + 10 + (($i - 1) * 8))
- . qq|>$tax</select></td>|;
-
- # if ($form->{selectprojectnumber}) {
- # $form->{"projectnumber_$i"} = ""
- # if $form->{selectprojectnumber} !~ /$form->{"projectnumber_$i"}/;
- #
- # $project = $form->{"projectnumber_$i"};
- # $project =~ s/--.*//;
- # $project = qq|<td>$project</td>|;
- # }
-
if ($form->{transfer}) {
$checked = ($form->{"fx_transaction_$i"}) ? "1" : "";
$x = ($checked) ? "x" : "";
}
$checked = ($form->{"korrektur_$i"}) ? "checked" : "";
$korrektur =
- qq|<td><input type="checkbox" name="korrektur_$i" value="1" $checked tabindex=|
- . ($i + 9 + (($i - 1) * 8))
- . qq|></td>|;
+ qq|<td><input type="checkbox" name="korrektur_$i" value="1" $checked></td>|;
$form->hide_form("accno_$i");
} else {
-
- $accno = qq|
- <td><select name="accno_$i" onChange="setTaxkey(this, $i)" style="width:300px" tabindex=|
- . ($i + 5 + (($i - 1) * 8)) . qq|>$chart</select></td>|;
- $tax = qq|
- <td><select id="taxchart_$i" name="taxchart_$i" tabindex=|
- . ($i + 10 + (($i - 1) * 8)) . qq|>$taxchart</select></td>|;
-
- # if ($form->{selectprojectnumber}) {
- # $project = qq|
- # <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
- # }
$korrektur =
- qq|<td><input type="checkbox" name="korrektur_$i" value="1" tabindex=|
- . ($i + 9 + (($i - 1) * 8))
- . qq|></td>|;
+ 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 $projectnumber =
+ NTI($cgi->popup_menu('-name' => "project_id_$i",
+ '-values' => \@project_values,
+ '-labels' => \%project_labels,
+ '-default' => $form->{"project_id_$i"} ));
+
print qq|<tr valign=top>
$accno
$fx_transaction
- <td><input name="debit_$i" size=8 value="$form->{"debit_$i"}" accesskey=$i tabindex=|
- . ($i + 6 + (($i - 1) * 8)) . qq| $debitreadonly></td>
- <td><input name="credit_$i" size=8 value="$form->{"credit_$i"}" tabindex=|
- . ($i + 7 + (($i - 1) * 8)) . qq| $creditreadonly></td>
- <td><input name="tax_$i" size=6 value="$form->{"tax_$i"}" tabindex=|
- . ($i + 8 + (($i - 1) * 8)) . qq|></td>
+ <td><input name="debit_$i" size=8 value="$form->{"debit_$i"}" accesskey=$i $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
$source
$memo
+ <td>$projectnumber</td>
</tr>
|;
$form->hide_form(qw(rowcount selectaccno));
- # print qq|
- # <input type=hidden name=selectprojectnumber value="|
- # . $form->escape($form->{selectprojectnumber}, 1) . qq|">|;
$lxdebug->leave_sub();
}
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}" tabindex="3" $readonly>|;
+ qq|<input name=description size=50 value="$form->{description}" $readonly>|;
}
$taxincluded = ($form->{taxincluded}) ? "checked" : "";
# with JavaScript Calendar
$button1 = qq|
- <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" tabindex="2" $readonly>
+ <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>
|;
# without JavaScript Calendar
$button1 =
- qq|<td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" tabindex="2" $readonly></td>|;
+ qq|<td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" $readonly onBlur=\"check_right_date_format(this)\"></td>|;
}
$form->header;
<input type=hidden name=closedto value=$form->{closedto}>
<input type=hidden name=locked value=$form->{locked}>
<input type=hidden name=title value="$title">
-<input type=hidden name=taxchart value="$form->{taxchart}">
-<input type=hidden name=chart value="$form->{chart}">
<table width=100%>
<td>
<table width=100%>
<tr>
- <th align=left>| . $locale->text('Reference') . qq|</th>
- <td><input name=reference size=20 value="$form->{reference}" tabindex="1" $readonly></td>
+ <th align=right>| . $locale->text('Reference') . qq|</th>
+ <td><input name=reference size=20 value="$form->{reference}" $readonly></td>
<td align=left>
<table>
<tr>
<table>
<tr>
<th align=right width=50%>| . $locale->text('Buchungsdatum') . qq|</th>
- <td align=left><input name=gldate size=11 title="$myconfig{dateformat}" value=$form->{gldate} $readonly></td>
+ <td align=left><input name=gldate size=11 title="$myconfig{dateformat}" value=$form->{gldate} $readonly onBlur=\"check_right_date_format(this)\"></td>
</tr>
</table>
</td>
if ($form->{id}) {
print qq|
<tr>
- <th align=left width=1%>| . $locale->text('Description') . qq|</th>
+ <th align=right width=1%>| . $locale->text('Description') . qq|</th>
<td width=1%>$description</td>
<td>
<table>
<tr>
<th align=left>| . $locale->text('MwSt. inkl.') . qq|</th>
- <td><input type=checkbox name=taxincluded value=1 tabindex="5" $taxincluded></td>
+ <td><input type=checkbox name=taxincluded value=1 $taxincluded></td>
</tr>
</table>
</td>
<table width=100%>
<tr>
<th align=right width=50%>| . $locale->text('Mitarbeiter') . qq|</th>
- <td align=left><input name=employee size=11 value=$form->{employee} $readonly></td>
+ <td align=left><input name=employee size=20 value="| . H($form->{employee}) . qq|" readonly></td>
</tr>
</table>
</td>
<table>
<tr>
<th align=left>| . $locale->text('MwSt. inkl.') . qq|</th>
- <td><input type=checkbox name=taxincluded value=1 tabindex="5" $taxincluded></td>
+ <td><input type=checkbox name=taxincluded value=1 $taxincluded></td>
</tr>
</table>
</td>
<th class=listheading style="width:20%">|
. $locale->text('Source') . qq|</th>
<th class=listheading style="width:20%">| . $locale->text('Memo') . qq|</th>
- $project
+ <th class=listheading style="width:20%">|
+ . $locale->text('Project Number') . qq|</th>
</tr>
$jsscript
<td></td>
<th align=right class=listtotal> $form->{totaldebit}</th>
<th align=right class=listtotal> $form->{totalcredit}</th>
- <td colspan=5></td>
+ <td colspan=6></td>
</tr>
</table>
</td>
</tr>
</table>
-<input type=hidden name=path value=$form->{path}>
<input type=hidden name=login value=$form->{login}>
<input type=hidden name=password value=$form->{password}>
print qq|<input class=submit type=submit name=action value="|
. $locale->text('Storno') . qq|">|;
- # Löschen und ändern von Buchungen nicht mehr möglich (GoB) nur am selben Tag möglich
+ # Löschen und Ändern von Buchungen nicht mehr möglich (GoB) nur am selben Tag möglich
if (!$form->{locked} && $radieren) {
print qq|
}
}
- if ($form->{menubar}) {
- require "$form->{path}/menu.pl";
- &menubar;
- }
-
print "
</form>
<form method=post action=$form->{script}>
|;
- map { $form->{$_} =~ s/\"/"/g } qw(reference description chart taxchart);
+ map { $form->{$_} =~ s/\"/"/g } qw(reference description);
delete $form->{header};
sub yes {
$lxdebug->enter_sub();
-
- $form->redirect($locale->text('Transaction deleted!'))
- if (GL->delete_transaction(\%myconfig, \%$form));
+ if (GL->delete_transaction(\%myconfig, \%$form)){
+ # saving the history
+ if(!exists $form->{addition} && $form->{id} ne "") {
+ $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
+ $form->{addition} = "DELETED";
+ $form->save_history($form->dbconnect(\%myconfig));
+ }
+ # /saving the history
+ $form->redirect($locale->text('Transaction deleted!'))
+ }
$form->error($locale->text('Cannot delete transaction!'));
$lxdebug->leave_sub();
$transdate = $form->datetonum($form->{transdate}, \%myconfig);
$closedto = $form->datetonum($form->{closedto}, \%myconfig);
- # check project
- &check_project;
-
my @a = ();
my $count = 0;
my $debittax = 0;
if ($form->round_amount($debit, 2) != $form->round_amount($credit, 2)) {
$form->error($locale->text('Out of balance transaction!'));
}
+
+ if ($form->round_amount($debit, 2) + $form->round_amount($credit, 2) == 0) {
+ $form->error($locale->text('Empty transaction!'));
+ }
+
if (($errno = GL->post_transaction(\%myconfig, \%$form)) <= -1) {
$errno *= -1;
$err[1] = $locale->text('Cannot have a value in both Debit and Credit!');
$form->error($err[$errno]);
}
undef($form->{callback});
+ # saving the history
+ if(!exists $form->{addition} && $form->{id} ne "") {
+ $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
+ $form->{addition} = "SAVED";
+ $form->{what_done} = $locale->text("Buchungsnummer") . " = " . $form->{id};
+ $form->save_history($form->dbconnect(\%myconfig));
+ }
+ # /saving the history
$form->redirect("Buchung gespeichert. Buchungsnummer = " . $form->{id});
$lxdebug->leave_sub();
$form->{id} = 0;
$form->{storno} = 1;
+ # saving the history
+ if(!exists $form->{addition} && $form->{id} ne "") {
+ $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
+ $form->{addition} = "STORNO";
+ $form->save_history($form->dbconnect(\%myconfig));
+ }
+ # /saving the history
&post;
$lxdebug->leave_sub();