use SL::IS;
use SL::LICENSES;
+require "bin/mozilla/common.pl";
+
+use strict;
+
sub quot {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
$_[0] =~ s/\"/\"/g;
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
return $_[0];
}
sub form_header {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+
+ $form->{jsscript} = 1;
$form->header();
print(
qq|<body>
<form method=post action=$form->{script}>|);
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub form_footer {
- $lxdebug->enter_sub();
- my @items = ("path", "login", "password", "old_callback", "previousform");
- push(@items, @{ $form->{"hidden"} });
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+
+ my @items = qw(old_callback previousform);
+ push @items, @{ $form->{"hidden"} } if ref $form->{hidden} eq 'ARRAY';
map({
print("<input type=hidden name=$_ value=\"" . quot($form->{$_}) . "\">\n"
);
} @items);
print(
- qq|</form>
+ qq|<input type="hidden" name="cursor_field" value='$form->{cursor_field}'></form>
</body>
</html>
|);
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub set_std_hidden {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+
$form->{"hidden"} = ["comment", "validuntil", "quantity", @_];
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub print_part_selection {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my $locale = $main::locale;
+
form_header();
set_std_hidden("business");
<table width=100%>
<tr>
<th class=listtop colspan=5>|
- . $locale->text('Select from one of the items below')
- . qq|</th>
+ . $locale->text('Select from one of the items below') . qq|</th>
</tr>
<tr height="5"></tr>
<tr class=listheading>
</tr>
|);
- $j = 1;
- for ($i = 1; $i <= scalar(@{ $form->{"parts"} }); $i++) {
- %p = %{ $form->{"parts"}->[$i - 1] };
+ my $j = 1;
+ for (my $i = 1; $i <= scalar(@{ $form->{"parts"} }); $i++) {
+ my %p = %{ $form->{"parts"}->[$i - 1] };
+ my $checked;
if ($i == 1) {
$checked = "checked";
} else {
qq|<tr class=listrow$j>
<td><input name=ndx class=radio type=radio value=$i $checked></td>
<td><input name=\"new_partnumber_$i\" type=hidden value=\"|
- . $p{"partnumber"} . qq|\">|
- . $p{"partnumber"}
- . qq|</td>
+ . $p{"partnumber"} . qq|\">| . $p{"partnumber"} . qq|</td>
<td><input name=\"new_description_$i\" type=hidden value=\"|
- . $p{"description"} . qq|\">|
- . $p{"description"}
- . qq|</td>
+ . $p{"description"} . qq|\">| . $p{"description"} . qq|</td>
<input name=\"new_parts_id_$i\" type=hidden value=\"| . $p{"id"} . qq|\">
</tr>|);
<input type=submit name=action value=| . $locale->text('Continue') . qq|>|);
form_footer();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub print_customer_selection {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my $locale = $main::locale;
+
form_header();
set_std_hidden("parts_id", "partnumber", "description");
<table width=100%>
<tr>
<th class=listtop colspan=5>|
- . $locale->text('Select from one of the names below')
- . qq|</th>
+ . $locale->text('Select from one of the names below') . qq|</th>
</tr>
<tr height="5"></tr>
<tr class=listheading>
print(qq|<tr><td colspan=6><hr size=3 noshade></td></tr>|);
- $j = 1;
- for ($i = 1; $i <= scalar(@{ $form->{"all_customers"} }); $i++) {
- %c = %{ $form->{"all_customers"}->[$i - 1] };
+ my $j = 1;
+ for (my $i = 1; $i <= scalar(@{ $form->{"all_customers"} }); $i++) {
+ my %c = %{ $form->{"all_customers"}->[$i - 1] };
+ my $checked;
if ($i == 1) {
$checked = "checked";
} else {
qq|<tr class=listrow$j>
<td><input name=ndx class=radio type=radio value=$i $checked></td>
<td><input name=\"new_customer_id_$i\" type=hidden value=\"|
- . $c{"id"}
- . qq|\">$c{"customernumber"}</td>
+ . $c{"id"} . qq|\">$c{"customernumber"}</td>
<td><input name=\"new_customer_name_$i\" type=hidden value=\"|
- . $c{"name"}
- . qq|\">$c{"name"}</td>
+ . $c{"name"} . qq|\">$c{"name"}</td>
<td>$c{"street"}</td>
<td>$c{"zipcode"}</td>
<td>$c{"city"}</td>
<input type=submit name=action value=| . $locale->text('Continue') . qq|>|);
form_footer();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub print_license_form {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
+
print(
qq|
<table width=100%>
<tr>
<th align=right>| . $locale->text('Part Number') . qq|</th>
<td><input name=partnumber value=\"|
- . quot($form->{"partnumber"})
- . qq|\"></td>
+ . quot($form->{"partnumber"}) . qq|\"></td>
</tr>
<tr>
<th align=right>| . $locale->text('Description') . qq|</th>
<td><input name=description value=\"|
- . quot($form->{"description"})
- . qq|\"></td>
+ . quot($form->{"description"}) . qq|\"></td>
</tr>
<tr>
<th align=right>| . $locale->text('Company Name') . qq|</th>|);
if (!defined($form->{"customer_id"})) {
$form->{"customer_id"} = $_->{"id"};
}
- $selected = ($_->{"id"} * 1) == $form->{"customer_id"} ? "selected" : "";
+ my $selected = ($_->{"id"} * 1) == $form->{"customer_id"} ? "selected" : "";
print(qq|<option $selected> $_->{"name"}--$_->{"id"}</option>|);
}
print(qq|</select></td>|);
<tr>
<th align=right>| . $locale->text('Comment') . qq|</th>
<td><input name=comment value=\"|
- . quot($form->{"comment"})
- . qq|\"></td>
+ . quot($form->{"comment"}) . qq|\"></td>
</tr>
<tr>
<th align=right>| . $locale->text('Valid until') . qq|</th>
- <td><input name=validuntil value=\"|
- . quot($form->{"validuntil"})
- . qq|\"></td>
+ <td><input id=validuntil name=validuntil value=\"|
+ . quot($form->{"validuntil"}) . qq|\">
+ <input type="button" name="validuntil" id="trigger_validuntil" value="?"></td>
</tr>
<tr>
<th align=right>| . $locale->text('Quantity') . qq|</th>
<td><input name=quantity value=\"|
- . quot($form->{"quantity"})
- . qq|\"></td>
+ . quot($form->{"quantity"}) . qq|\"></td>
</tr>
<tr>
<th align=right>| . $locale->text('License key') . qq|</th>
<td><input name=licensenumber value=\"|
- . quot($form->{"licensenumber"})
- . qq|\"></td>
+ . quot($form->{"licensenumber"}) . qq|\"></td>
</tr>
<tr>
<th align=right>| . $locale->text('Own Product') . qq|</th>
print(
qq|
<input type=submit name=action value=\"|
- . $locale->text('Save')
- . qq|\">\n|);
+ . $locale->text('Save') . qq|\">\n|);
}
print(
qq|
</tr>
-</table>|);
- $lxdebug->leave_sub();
+</table>| .
+ $form->write_trigger(\%myconfig, 1, "validuntil", "BL",
+ "trigger_validuntil"));
+
+ $main::lxdebug->leave_sub();
}
sub add {
- $lxdebug->enter_sub();
- if (!$lizenzen) {
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my $locale = $main::locale;
+
+ $form->{title} = $locale->text('Add License');
+
+ if (!$::lx_office_conf{features}->{lizenzen}) {
$form->error(
$locale->text(
- 'The licensing module has been deactivated in lx-erp.conf.')
+ 'The licensing module has been deactivated in the configuration.')
);
}
$form->{"initial"} = 1;
do_add();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub do_add {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+
$form->{"hidden"} = ["parts_id"];
form_header();
if ($form->{"ndx"}) {
- $ndx = $form->{"ndx"};
+ my $ndx = $form->{"ndx"};
foreach (keys(%{$form})) {
next unless (/^new_.*_${ndx}$/);
s/^new_//;
if ($form->{"customer_name"}) {
LICENSES->get_customers(\%myconfig, $form);
if (scalar(@{ $form->{"all_customers"} }) == 1) {
- %c = %{ $form->{"all_customers"}->[0] };
+ my %c = %{ $form->{"all_customers"}->[0] };
$form->{"customer_id"} = $c{"id"};
$form->{"customer_name"} = $c{"name"};
} elsif (scalar(@{ $form->{"all_customers"} }) == 0) {
print_license_form($form->{"parts_id"} && $form->{"customer_id"});
form_footer();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub update {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+
do_add();
- $lxdebug->leave_sub();
+
+ $main::lxdebug->leave_sub();
}
sub continue {
- $lxdebug->enter_sub();
- &{ $form->{nextsub} };
- $lxdebug->leave_sub();
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+
+ call_sub($form->{"nextsub"});
+ $main::lxdebug->leave_sub();
}
sub save {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
($form->{customername}, $form->{customer_id}) = split /--/,
$form->{customer};
$form->error($locale->text('Please enter a license key.'));
}
- $rc = LICENSES->save_license(\%myconfig, \%$form);
+ my $rc = LICENSES->save_license(\%myconfig, \%$form);
# load previous variables
if ($form->{previousform}) {
# save the new form variables before splitting previousform
+ my %newform;
map { $newform{$_} = $form->{$_} } keys %$form;
- $previousform = $form->unescape($form->{previousform});
+ my $previousform = $form->unescape($form->{previousform});
# don't trample on previous variables
map { delete $form->{$_} } keys %newform;
# now take it apart and restore original values
- foreach $item (split /&/, $previousform) {
- ($key, $value) = split /=/, $item, 2;
+ foreach my $item (split /&/, $previousform) {
+ my ($key, $value) = split /=/, $item, 2;
$value =~ s/%26/&/g;
$form->{$key} = $value;
}
delete $form->{action};
# restore original callback
- $callback = $form->unescape($form->{callback});
+ my $callback = $form->unescape($form->{callback});
$form->{callback} = $form->unescape($form->{old_callback});
delete $form->{old_callback};
# put callback together
- foreach $key (keys %$form) {
+ foreach my $key (keys %$form) {
+ next if (($key eq 'login') || ($key eq 'password') || ('' ne ref $form->{$key}));
# do single escape for Apache 2.0
- $value = $form->escape($form->{$key}, 1);
+ my $value = $form->escape($form->{$key}, 1);
$callback .= qq|&$key=$value|;
}
$form->{callback} = $callback;
form_footer();
}
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub search {
- $lxdebug->enter_sub();
- if (!$lizenzen) {
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my $locale = $main::locale;
+
+ $form->{title} = $locale->text('Licenses');
+
+ if (!$::lx_office_conf{features}->{lizenzen}) {
$form->error(
$locale->text(
- 'The licensing module has been deactivated in lx-erp.conf.')
+ 'The licensing module has been deactivated in the configuration.')
);
}
. $locale->text('Expiring in x month(s)')
. qq| <input size=4 name=expiring_in value="1"><br>
<input type=checkbox name=show_expired value=1>|
- . $locale->text('Expired licenses')
- . qq|</td>
+ . $locale->text('Expired licenses') . qq|</td>
</tr>
</table>
</tr>
|);
form_footer();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub do_search {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
+
LICENSES->search(\%myconfig, $form);
- $callback = "";
- foreach (
- ("db", "path", "login", "password",
- "partnumber", "description", "customer_name", "all",
- "expiring_in", "show_expired")
- ) {
- $callback .= "\&${_}=" . $form->escape($form->{$_}, 1);
- }
- $details = $form->{"script"} . "?action=details" . $callback . "\&id=";
- $invdetails = "is.pl?action=edit" . $callback . "\&id=";
+ my $callback = "";
+ map { $callback .= "\&${_}=" . $form->escape($form->{$_}, 1) }
+ qw(db partnumber description customer_name all expiring_in show_expired);
+ my $details = $form->{"script"} . "?action=details" . $callback . "\&id=";
+ my $invdetails = "is.pl?action=edit" . $callback . "\&id=";
$callback = $form->{"script"} . "?action=do_search" . $callback;
$form->{"sortby"} = "validuntil" unless ($form->{"sortby"});
$form->{"sortasc"} *= 1;
+ my %columns;
foreach (("partnumber", "description", "name", "validuntil", "invnumber")) {
$columns{$_} = $callback . "\&sortby=${_}\&sortasc=";
if ($form->{"sortby"} eq $_) {
. $locale->text(
"No licenses were found that match the search criteria.")
. qq|</body></html>|);
- exit(0);
+ ::end_of_request();
}
print(
. $locale->text('Description')
. qq|</a></th>
<th class=listtop><a class=listheading href=\"|
- . $columns{"name"} . "\">"
- . $locale->text('Company Name')
- . qq|</a></th>
+ . $columns{"name"} . "\">" . $locale->text('Company Name') . qq|</a></th>
<th class=listtop><a class=listheading href=\"|
. $columns{"validuntil"} . "\">"
. $locale->text('Valid until')
</tr>
|);
- $j = 1;
- for ($i = 0; $i < scalar(@{ $form->{"licenses"} }); $i++) {
- $ref = $form->{"licenses"}->[$i];
+ my $j = 1;
+ for (my $i = 0; $i < scalar(@{ $form->{"licenses"} }); $i++) {
+ my $ref = $form->{"licenses"}->[$i];
print(
qq|
<tr class=listrow$j>
|);
form_footer();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
sub details {
- $lxdebug->enter_sub();
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('license_edit');
+
+ my $form = $main::form;
+ my %myconfig = %main::myconfig;
+ my $locale = $main::locale;
+
LICENSES->get_license(\%myconfig, $form);
map(
{ $form->{$_} = $form->{"license"}->{$_}; } keys(%{ $form->{"license"} }));
|);
form_footer();
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
1;