if ($self->{OUT}) {
open OUT, '>', $self->{OUT} or $self->error($self->cleanup . "$self->{OUT} : $!");
print OUT while <IN>;
+ close OUT;
seek IN, 0, 0;
} else {
|;
- open(OUT, ">&", \*STDOUT) or $self->error($self->cleanup . "$!: STDOUT");
- $::locale->with_raw_io(*OUT, sub { print while <IN> });
+ $::locale->with_raw_io(\*STDOUT, sub { print while <IN> });
}
- close OUT;
}
close(IN);
}
sub select_project {
- $main::lxdebug->enter_sub();
-
- my $form = $main::form;
- my $locale = $main::locale;
- my $cgi = $main::cgi;
+ $::lxdebug->enter_sub;
- $main::auth->assert('general_ledger | vendor_invoice_edit | sales_order_edit | invoice_edit |' .
- 'request_quotation_edit | sales_quotation_edit | purchase_order_edit | cash | report');
+ $::auth->assert('general_ledger | vendor_invoice_edit | sales_order_edit | invoice_edit |' .
+ 'request_quotation_edit | sales_quotation_edit | purchase_order_edit | cash | report');
my ($is_global, $nextsub) = @_;
+ my $project_list = delete $::form->{project_list};
- my @column_index = qw(ndx projectnumber description);
-
- my %column_data;
- $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;
-
- my $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;
- my $j;
- foreach my $ref (@{ $form->{project_list} }) {
- my $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>
-
-|;
+ map { delete $::form->{$_} } qw(action header update);
- # delete action variable
- map { delete $form->{$_} } qw(action project_list header update);
-
- # save all other form variables
- foreach my $key (keys %${form}) {
- next if (($key eq 'login') || ($key eq 'password') || ('' ne ref $form->{$key}));
- $form->{$key} =~ s/\"/"/g;
- print qq|<input name=$key type=hidden value="$form->{$key}">\n|;
+ my @hiddens;
+ for my $key (keys %$::form) {
+ next if $key eq 'login' || $key eq 'password' || '' ne ref $::form->{$key};
+ push @hiddens, { key => $key, value => $::form->{$key} };
}
+ push @hiddens, { key => 'is_global', value => $is_global },
+ { key => 'project_selected_nextsub', value => $nextsub };
- print
- $cgi->hidden('-name' => 'is_global', '-default' => [$is_global])
- . $cgi->hidden('-name' => 'project_selected_nextsub', '-default' => [$nextsub])
- . qq|<input type=hidden name=nextsub value=project_selected>
-
-<br>
-<input class=submit type=submit name=action value="|
- . $locale->text('Continue') . qq|">
-</form>
+ $::form->header;
+ print $::form->parse_html_template('arap/select_project', { hiddens => \@hiddens, project_list => $project_list });
-</body>
-</html>
-|;
-
- $main::lxdebug->leave_sub();
+ $::lxdebug->leave_sub;
}
sub project_selected {
}
sub list {
- $main::lxdebug->enter_sub();
+ $::lxdebug->enter_sub;
+ $::auth->assert('report');
- my $form = $main::form;
- my %myconfig = %main::myconfig;
- my $locale = $main::locale;
+ $::form->{title} = $::locale->text('List Transactions') . " - " . $::locale->text('Account') . " $::form->{accno}";
- $main::auth->assert('report');
-
- $form->{title} = $locale->text('List Transactions');
- $form->{title} .= " - " . $locale->text('Account') . " $form->{accno}";
- my $year = (localtime)[5] + 1900;
-
- # get departments
- $form->all_departments(\%myconfig);
- if (@{ $form->{all_departments} || [] }) {
- $form->{selectdepartment} = "<option>\n";
-
- map {
- $form->{selectdepartment} .=
- "<option>$_->{description}--$_->{id}\n"
- } (@{ $form->{all_departments} || [] });
- }
-
- my $department = qq|
- <tr>
- <th align=right nowrap>| . $locale->text('Department') . qq|</th>
- <td colspan=3><select name=department>$form->{selectdepartment}</select></td>
- </tr>
-| if $form->{selectdepartment};
- my $accrual = $::instance_conf->get_accounting_method eq 'cash' ? "" : "checked";
- my $cash = $::instance_conf->get_accounting_method eq 'cash' ? "checked" : "";
-
- my $name_1 = "fromdate";
- my $id_1 = "fromdate";
- my $value_1 = "$form->{fromdate}";
- my $trigger_1 = "trigger1";
- my $name_2 = "todate";
- my $id_2 = "todate";
- my $value_2 = "";
- my $trigger_2 = "trigger2";
-
- my ($button1, $button1_2, $button2, $button2_2, $jsscript);
-
- # with JavaScript Calendar
- if ($form->{jsscript}) {
- if ($name_1 eq "") {
-
- $button1 = qq|
- <input name=$name_2 id=$id_2 size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">|;
- $button1_2 = qq|
- <input type=button name=$name_2 id="$trigger_2" value=|
- . $locale->text('button') . qq|>|;
-
- #write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "1", "$name_2", "BR", "$trigger_2");
- } else {
- $button1 = qq|
- <input name=$name_1 id=$id_1 size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\" value="$value_1">|;
- $button1_2 = qq|
- <input type=button name=$name_1 id="$trigger_1" value=|
- . $locale->text('button') . qq|>|;
- $button2 = qq|
- <input name=$name_2 id=$id_2 size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">|;
- $button2_2 = qq|
- <input type=button name=$name_2 id="$trigger_2" value=|
- . $locale->text('button') . qq|>
- |;
-
- #write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "2", "$name_1", "BR", "$trigger_1",
- "$name_2", "BL", "$trigger_2");
- }
- } else {
-
- # without JavaScript Calendar
- if ($name_1 eq "") {
- $button1 =
- qq|<input name=$name_2 id=$id_2 size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">|;
- } else {
- $button1 =
- qq|<input name=$name_1 id=$id_1 size=11 title="$myconfig{dateformat}" value="$value_1" onBlur=\"check_right_date_format(this)\">|;
- $button2 =
- qq|<input name=$name_2 id=$id_2 size=11 title="$myconfig{dateformat}" onBlur=\"check_right_date_format(this)\">|;
- }
- }
- $form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|;
- $form->header;
my $onload = qq|focus()|;
- $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
- $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
-
-
- $form->header;
-
- $form->{description} =~ s/\"/"/g;
-
- my $eur = $::instance_conf->get_accounting_method eq 'cash' ? 1 : 0;
-
- print qq|
-<body onLoad="$onload">
-
-<form method=post action=$form->{script}>
-
-<input type=hidden name=accno value=$form->{accno}>
-<input type=hidden name=description value="$form->{description}">
-<input type=hidden name=sort value=transdate>
-<input type=hidden name=eur value=$eur>
-<input type=hidden name=accounttype value=$form->{accounttype}>
-
-<table border=0 width=100%>
- <tr>
- <th class=listtop>$form->{title}</th>
- </tr>
-
-</table>
-<table>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="custom" checked> |
- . $locale->text('Customized Report') . qq|</th>
- </tr>
- <tr>
- <th colspan=1>| . $locale->text('Year') . qq|</th>
- <td><input name=year size=11 title="|
- . $locale->text('YYYY') . qq|" value="$year"></td>
- </tr>
-|;
-
- print qq|
- <tr>
- <td align=right>
-<b> | . $locale->text('Yearly') . qq|</b> </td>
- <th align=left>| . $locale->text('Quarterly') . qq|</th>
- <th align=left colspan=3>| . $locale->text('Monthly') . qq|</th>
- </tr>
- <tr>
- <td align=right> <input name=duetyp class=radio type=radio value="13"></td>
- <td><input name=duetyp class=radio type=radio value="A"> 1. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="1" "checked"> | . $locale->text('January') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="5" > | . $locale->text('May') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="9" > | . $locale->text('September') . qq|</td>
-
- </tr>
- <tr>
- <td align= right> </td>
- <td><input name=duetyp class=radio type=radio value="B"> 2. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="2" > | . $locale->text('February') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="6" > | . $locale->text('June') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="10" > | . $locale->text('October') . qq|</td>
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="C"> 3. | . $locale->text('Quarter') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="3" > | . $locale->text('March') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="7" > | . $locale->text('July') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="11" > | . $locale->text('November') . qq|</td>
-
- </tr>
- <tr>
- <td> </td>
- <td><input name=duetyp class=radio type=radio value="D"> 4. | . $locale->text('Quarter') . qq| </td>
- <td><input name=duetyp class=radio type=radio value="4" > | . $locale->text('April') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="8" > | . $locale->text('August') . qq|</td>
- <td><input name=duetyp class=radio type=radio value="12" > | . $locale->text('December') . qq|</td>
-
- </tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=left><input name=reporttype class=radio type=radio value="free"> | . $locale->text('Free report period') . qq|</th>
- <td align=left colspan=4>| . $locale->text('From') . qq|
- $button1
- $button1_2
- | . $locale->text('Bis') . qq|
- $button2
- $button2_2
- </td>
- </tr>
- <tr>
- <td colspan=5><hr size=3 noshade></td>
- </tr>
- <tr>
- <th align=leftt>| . $locale->text('Method') . qq|</th>
- <td colspan=3><input name=method class=radio type=radio value=accrual $accrual>| . $locale->text('Accrual') . qq|
- <input name=method class=radio type=radio value=cash $cash>| . $locale->text('EUR') . qq|</td>
- </tr>
- <tr>
- <th align=right colspan=4>| . $locale->text('Decimalplaces') . qq|</th>
- <td><input name=decimalplaces size=3 value="2"></td>
- </tr>
- <tr>
- <td><input name="subtotal" class=checkbox type=checkbox value=1> | . $locale->text('Subtotal') . qq|</td>
- </tr>
-
-$jsscript
- <tr><td colspan=5 ><hr size=3 noshade></td></tr>
-</table>
-
-<br><input class=submit type=submit name=action value="|
- . $locale->text('List Transactions') . qq|">
-</form>
-
-</body>
-</html>
-|;
+ $onload .= qq|;setupDateFormat('$::myconfig{dateformat}', '|. $::locale->text("Falsches Datumsformat!") .qq|')|;
+ $onload .= qq|;setupPoints('$::myconfig{numberformat}', '|. $::locale->text("wrongformat") .qq|')|;
- $main::lxdebug->leave_sub();
+ $::form->header;
+ print $::form->parse_html_template('ca/list', {
+ onload => $onload,
+ year => DateTime->today->year,
+ cash => $::instance_conf->get_accounting_method eq 'cash',
+ });
+
+ $::lxdebug->leave_sub;
}
sub format_debit_credit {
}
sub delete {
- $main::lxdebug->enter_sub();
-
- my $form = $main::form;
- my $locale = $main::locale;
+ $::lxdebug->enter_sub;
check_oe_access();
- $form->header;
-
- my ($msg, $ordnumber);
- if ($form->{type} =~ /_order$/) {
- $msg = $locale->text('Are you sure you want to delete Order Number');
- $ordnumber = 'ordnumber';
- } else {
- $msg = $locale->text('Are you sure you want to delete Quotation Number');
- $ordnumber = 'quonumber';
- }
-
- print qq|
-<body>
-
-<form method=post action=$form->{script}>
-|;
+ $::form->header;
# delete action variable
- map { delete $form->{$_} } qw(action header);
+ delete $::form->{$_} for qw(action header);
- foreach my $key (keys %$form) {
- next if (($key eq 'login') || ($key eq 'password') || ('' ne ref $form->{$key}));
- $form->{$key} =~ s/\"/"/g;
- print qq|<input type=hidden name=$key value="$form->{$key}">\n|;
+ my @hiddens;
+ for my $key (keys %$::form) {
+ next if $key eq 'login' || $key eq 'password' || '' ne ref $::form->{$key};
+ push @hiddens, { key => $key, value => $::form->{$key} };
}
- print qq|
-<h2 class=confirm>| . $locale->text('Confirm!') . qq|</h2>
-
-<h4>$msg $form->{$ordnumber}</h4>
-<p>
-<input type="hidden" name="yes_nextsub" value="delete_order_quotation">
-<input name=action class=submit type=submit value="|
- . $locale->text('Yes') . qq|">
-<button class=submit type=button onclick="history.back()">|
- . $locale->text('No') . qq|</button>
-</form>
+ print $::form->parse_html_template('oe/delete', {
+ hiddens => \@hiddens,
+ is_order => scalar($::form->{type} =~ /_order$/),
+ });
-</body>
-</html>
-|;
- $main::lxdebug->leave_sub();
+ $::lxdebug->leave_sub;
}
sub delete_order_quotation {
}
foreach my $file (@testitems) {
+ local $TODO;
+ $TODO = 'schema updates are not required to be strict now' if $file =~ m{^sql/Pg-upgrade2};
my $found_use_strict = 0;
$file =~ s/\s.*$//; # nuke everything after the first space (#comment)
next if (!$file); # skip null entries
--- /dev/null
+[%- USE HTML %]
+[%- USE T8 %]
+[%- USE L %]
+[%- USE LxERP %]
+<body>
+
+<h1>[% 'Select from one of the projects below' | $T8 %]</h1>
+
+<form method=post action="[% script %]">
+
+<table width=100%>
+ <tr class=listheading>
+ <th> </th>
+ <th>[% 'Number' | $T8 %]</th>
+ <th>[% 'Description' | $T8 %]</th>
+ </tr>
+[%- FOREACH row IN project_list %]
+ <tr class=listrow[% loop.count % 2 %]>
+ <td>[% L.radio_button_tag('ndx', value=loop.count, checked=loop.first) %]</td>
+ <td>[% row.projectnumber | html %]</td>
+ <td>[% row.description | html %]</td>
+ [% L.hidden_tag('new_id_' _ loop.count, row.id) %]
+ [% L.hidden_tag('new_projectnumber_' _ loop.count, row.projectnumber) %]
+ </tr>
+[%- END %]
+</table>
+
+<hr size=3 noshade>
+
+[% L.hidden_tag(row.key, row.value) FOREACH row = hiddens %]
+[% L.hidden_tag('lastndx', project_list.size) %]
+[% L.hidden_tag('nextsub', 'project_selected') %]
+[% L.hidden_tag('rownumber', rownumber) %]
+[% L.submit_tag('action', LxERP.t8('Continue')) %]
+
+</form>
+
+</body>
+</html>
--- /dev/null
+[% USE L %]
+[% USE T8 %]
+[% USE HTML %]
+[% USE LxERP %]
+
+<body onLoad="[% onload %]">
+
+<form method=post action="[% script %]">
+
+[% L.hidden_tag('accno', accno) %]
+[% L.hidden_tag('decription', description) %]
+[% L.hidden_tag('sort', 'transdate') %]
+[% L.hidden_tag('eur', cash) %]
+[% L.hidden_tag('accounttype', accounttype) %]
+
+<table border=0 width=100%>
+ <tr>
+ <th class=listtop>[% title | html %]</th>
+ </tr>
+</table>
+<table>
+ <tr>
+ <th align=left>[% L.radio_button_tag('reporttype', value='custom', label=LxERP.t8('Customized Report')) %]</th>
+ </tr>
+ <tr>
+ <th colspan=1>[% 'Year' | $T8 %]</th>
+ <td><input name=year size=11 title="[% 'YYYY' | $T8 %]" value="[% year %]"></td>
+ </tr>
+
+ <tr>
+ <td align=right><b>[% 'Yearly' | $T8 %]</b></td>
+ <th align=left>[% 'Quarterly' | $T8 %]</th>
+ <th align=left colspan=3>[% 'Monthly' | $T8 %]</th>
+ </tr>
+ <tr>
+ <td align=right>[% L.radio_button_tag('duetyp', value=13) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='A', label='1. ' _ LxERP.t8('Quarter')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='1', label=LxERP.t8('January')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='5', label=LxERP.t8('May')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='9', label=LxERP.t8('September')) %]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>[% L.radio_button_tag('duetyp', value='B', label='2. ' _ LxERP.t8('Quarter')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='2', label=LxERP.t8('February')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='6', label=LxERP.t8('June')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='10', label=LxERP.t8('October')) %]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>[% L.radio_button_tag('duetyp', value='C', label='3. ' _ LxERP.t8('Quarter')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='3', label=LxERP.t8('March')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='7', label=LxERP.t8('July')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='11', label=LxERP.t8('November')) %]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>[% L.radio_button_tag('duetyp', value='D', label='4. ' _ LxERP.t8('Quarter')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='4', label=LxERP.t8('April')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='8', label=LxERP.t8('August')) %]</td>
+ <td>[% L.radio_button_tag('duetyp', value='12', label=LxERP.t8('December')) %]</td>
+
+ </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=left>[% L.radio_button_tag('reporttype', value='free', label=LxERP.t8('Free report period')) %]</th>
+ <td align=left colspan=4>[% 'From' | $T8 %] [% L.date_tag('fromdate') %]
+ [% 'Bis' | $T8 %] [% L.date_tag('todate') %]
+ </td>
+ </tr>
+ <tr>
+ <td colspan=5><hr size=3 noshade></td>
+ </tr>
+ <tr>
+ <th align=leftt>[% 'Method' | $T8 %]</th>
+ <td colspan=3>[% L.radio_button_tag('method', value='accrual', checked=!cash, label=LxERP.t8('Accrual')) %]
+ [% L.radio_button_tag('method', value='cash', checked=cash, label=LxERP.t8('EUR')) %]</td>
+ </tr>
+ <tr>
+ <th align=right colspan=4>[% 'Decimalplaces' | $T8 %]</th>
+ <td><input name=decimalplaces size=3 value="2"></td>
+ </tr>
+ <tr>
+ <td>[% L.checkbox_tag('subtotal', label=LxERP.t8('Subtotal')) %]</td>
+ </tr>
+
+ <tr><td colspan=5 ><hr size=3 noshade></td></tr>
+</table>
+
+<br>[% L.submit_tag('action', LxERP.t8('List Transactions')) %]
+</form>
+
+</body>
+</html>
--- /dev/null
+[%- USE T8 %]
+[%- USE L %]
+[%- USE LxERP %]
+
+<body>
+
+<form method="post" action="[% script %]">
+
+<h2 class="confirm">[% 'Confirm!' | $T8 %]</h2>
+
+[%- IF is_order %]
+<h4>[% 'Are you sure you want to delete Order Number' | $T8 %] [% ordnumber %]</h4>
+[%- ELSE %]
+<h4>[% 'Are you sure you want to delete Quotation Number' | $T8 %] [% quonumber %]</h4>
+[%- END %]
+
+<br>
+
+[% L.hidden_tag(row.key, row.value) FOREACH row = hiddens %]
+[% L.hidden_tag('yes_nextsub', 'delete_order_quotation') %]
+[% L.submit_tag('action', LxERP.t8('Yes')) %]
+
+<button class=submit type=button onclick="history.back()">[% 'No' | $T8 %]</button>
+</form>
+
+</body>
+</html>