- map { delete $form->{"new_${_}_$i"} } qw(id name);
- }
-
- map { delete $form->{$_} } qw(ndx lastndx nextsub);
-
- IS->get_customer(\%myconfig, \%$form) if ($form->{vc} eq 'customer');
- IR->get_vendor(\%myconfig, \%$form) if ($form->{vc} eq 'vendor');
-
- &update(1);
-
- $lxdebug->leave_sub();
-}
-
-sub add_transaction {
- $lxdebug->enter_sub();
-
- my ($module) = @_;
-
- delete $form->{script};
- $form->{action} = "add";
- $form->{type} = "invoice" if $module =~ /(is|ir)/;
-
- $form->{callback} = $form->escape($form->{callback}, 1);
- map { $argv .= "$_=$form->{$_}&" } keys %$form;
-
- $form->{callback} = "$module.pl?$argv";
-
- $form->redirect;
-
- $lxdebug->leave_sub();
-}
-
-sub check_project {
- $lxdebug->enter_sub();
-
- for $i (1 .. $form->{rowcount}) {
- my $suffix = $i ? "_$i" : "";
- my $prefix = $i ? "" : "global";
- $form->{"${prefix}project_id${suffix}"} = "" unless $form->{"${prefix}projectnumber$suffix"};
- if ($form->{"${prefix}projectnumber${suffix}"} ne $form->{"old${prefix}projectnumber${suffix}"}) {
- if ($form->{"${prefix}projectnumber${suffix}"}) {
-
- # get new project
- $form->{projectnumber} = $form->{"${prefix}projectnumber${suffix}"};
- if (($rows = PE->projects(\%myconfig, $form)) > 1) {
-
- # check form->{project_list} how many there are
- $form->{rownumber} = $i;
- &select_project($i ? undef : 1);
- exit;
- }
-
- if ($rows == 1) {
- $form->{"${prefix}project_id${suffix}"} =
- $form->{project_list}->[0]->{id};
- $form->{"${prefix}projectnumber${suffix}"} =
- $form->{project_list}->[0]->{projectnumber};
- $form->{"old${prefix}projectnumber${suffix}"} =
- $form->{project_list}->[0]->{projectnumber};
- } else {
-
- # not on file
- $form->error($locale->text('Project not on file!'));
- }
- } else {
- $form->{"old${prefix}projectnumber${suffix}"} = "";
- }
- }
- }
-
- $lxdebug->leave_sub();
-}
-
-sub select_project {
- $lxdebug->enter_sub();
-
- my ($is_global) = @_;
-
- @column_index = qw(ndx projectnumber description);
-
- $column_data{ndx} = qq|<th> </th>|;
- $column_data{projectnumber} = qq|<th>| . $locale->text('Number') . qq|</th>|;
- $column_data{description} =
- qq|<th>| . $locale->text('Description') . qq|</th>|;
-
- # list items with radio button on a form
- $form->header;
-
- $title = $locale->text('Select from one of the projects below');
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<input type=hidden name=rownumber value=$form->{rownumber}>
-
-<table width=100%>
- <tr>
- <th class=listtop>$title</th>
- </tr>
- <tr space=5></tr>
- <tr>
- <td>
- <table width=100%>
- <tr class=listheading>|;
-
- map { print "\n$column_data{$_}" } @column_index;
-
- print qq|
- </tr>
-|;
-
- my $i = 0;
- foreach $ref (@{ $form->{project_list} }) {
- $checked = ($i++) ? "" : "checked";
-
- $ref->{name} =~ s/\"/"/g;
-
- $column_data{ndx} =
- qq|<td><input name=ndx class=radio type=radio value=$i $checked></td>|;
- $column_data{projectnumber} =
- qq|<td><input name="new_projectnumber_$i" type=hidden value="$ref->{projectnumber}">$ref->{projectnumber}</td>|;
- $column_data{description} = qq|<td>$ref->{description}</td>|;
-
- $j++;
- $j %= 2;
- print qq|
- <tr class=listrow$j>|;
-
- map { print "\n$column_data{$_}" } @column_index;
-
- print qq|
- </tr>
-
-<input name="new_id_$i" type=hidden value=$ref->{id}>
-
-|;
-
- }
-
- print qq|
- </table>
- </td>
- </tr>
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
-</table>
-
-<input name=lastndx type=hidden value=$i>
-
-|;
-
- # delete action variable
- map { delete $form->{$_} } qw(action project_list header update);
-
- # save all other form variables
- foreach $key (keys %${form}) {
- $form->{$key} =~ s/\"/"/g;
- print qq|<input name=$key type=hidden value="$form->{$key}">\n|;