sub add {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
$form->{title} = $locale->text('Add ' . ucfirst $form->{item});
$form->{callback} =
- "$form->{script}?action=add&item=$form->{item}&login=$form->{login}&password=$form->{password}"
+ "$form->{script}?action=add&item=$form->{item}"
unless $form->{callback};
$form->{"unit_changeable"} = 1;
sub search {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
# switch for backward sorting
$form->{revers} = 0;
sub search_update_prices {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
my $pricegroups = IC->get_pricegroups(\%myconfig, \%$form);
$form->header;
sub confirm_price_update {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
$form->{nextsub} = "update_prices";
$form->header;
sub update_prices {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
if (IC->update_prices(\%myconfig, \%$form)) {
$form->redirect($form->{update_count} . $locale->text('prices updated!'));
} else {
sub choice {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
our ($j, $lastndx);
my ($totop100);
$form->header;
- push @custom_hiddens, qw(login password searchitems title bom titel revers lastsort sort ndxs_counter extras);
+ push @custom_hiddens, qw(searchitems title bom titel revers lastsort sort ndxs_counter extras);
push @custom_hiddens, qw(itemstatus l_linetotal l_partnumber l_description l_onhand l_unit l_sellprice l_linetotalsellprice);
my @HIDDENS = (
+{ name => 'row', value => $j },
sub list {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
our ($lastndx);
our ($partnumber, $description, $unit, $sellprice, $soldtotal);
for ($j = 1; $j <= $i; $j++) {
print qq|
- <tr class=listrow1>|;
+ <tr class=listrow| . ($j % 2) . qq|>|;
if ($j == 1) {
print qq|
<td><input name=ndx class=radio type=radio value=$j checked></td>|;
<br>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
<input type=hidden name=itemstatus value="$form->{itemstatus}">
<input type=hidden name=l_linetotal value="$form->{l_linetotal}">
<input type=hidden name=l_partnumber value="$form->{l_partnumber}">
sub top100 {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
if ($form->{ndx}) {
$form->{ndxs_counter}++;
sub addtop100 {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
my ($revers, $lastsort, $callback, $option, $description, $sameitem,
$partnumber, $unit, $sellprice, $soldtotal, $totop100, $onhand, $align);
my (@column_index, %column_header, %column_data);
} #fi
$callback =
- "$form->{script}?action=top100&login=$form->{login}&password=$form->{password}&searchitems=$form->{searchitems}&itemstatus=$form->{itemstatus}&bom=$form->{bom}&l_linetotal=$form->{l_linetotal}&title="
+ "$form->{script}?action=top100&searchitems=$form->{searchitems}&itemstatus=$form->{itemstatus}&bom=$form->{bom}&l_linetotal=$form->{l_linetotal}&title="
. $form->escape($form->{title}, 1);
# if we have a serialnumber limit search
} #rof
} #fi
# build data for columns
+ my $i = 0;
foreach my $ref (@{ $form->{parts} }) {
- my $i = 0;
if ($form->{l_subtotal} eq 'Y' && !$ref->{assemblyitem}) {
if ($sameitem ne $ref->{ $form->{sort} }) {
$column_data{invnumber} =
($ref->{module} ne 'oe')
- ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&callback=$callback>$ref->{invnumber}</a></td>"
: "<td>$ref->{invnumber}</td>";
$column_data{ordnumber} =
($ref->{module} eq 'oe')
- ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&callback=$callback>$ref->{ordnumber}</a></td>"
: "<td>$ref->{ordnumber}</td>";
$column_data{quonumber} =
($ref->{module} eq 'oe' && !$ref->{ordnumber})
- ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber}</a></td>"
+ ? "<td><a href=$ref->{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&callback=$callback>$ref->{quonumber}</a></td>"
: "<td>$ref->{quonumber}</td>";
$column_data{name} = "<td>$ref->{name}</td>";
<form method=post action=$form->{script}>
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
<input type=hidden name=itemstatus value="$form->{itemstatus}">
<input type=hidden name=l_linetotal value="$form->{l_linetotal}">
<input type=hidden name=l_partnumber value="$form->{l_partnumber}">
# l_partsgroup l_subtotal l_soldtotal l_deliverydate
#
# hiddens:
-# nextsub login password revers lastsort sort ndxs_counter
+# nextsub revers lastsort sort ndxs_counter
#
sub generate_report {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
my ($revers, $lastsort, $description);
$form->{title} = (ucfirst $form->{searchitems}) . "s";
sub parts_subtotal {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
# imports
our (%column_data, @column_index);
our ($subtotalonhand, $totalsellprice, $totallastcost, $totallistprice, $subtotalsellprice, $subtotallastcost, $subtotallistprice);
sub edit {
$lxdebug->enter_sub();
+
+ $auth->assert('part_service_assembly_edit');
+
# show history button
$form->{javascript} = qq|<script type="text/javascript" src="js/show_history.js"></script>|;
#/show hhistory button
sub link_part {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
IC->create_links("IC", \%myconfig, \%$form);
# currencies
sub form_header {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
$form->{eur} = $eur; # config dumps into namespace - yuck
$form->{pg_keys} = sub { "$_[0]->{partsgroup}--$_[0]->{id}" };
$form->{description_area} = ($form->{rows} = $form->numtextrows($form->{description}, 40)) > 1;
$form->{notes_rows} = $rows;
IC->retrieve_buchungsgruppen(\%myconfig, $form);
- @{ $form->{BUCHUNGSGRUPPEN} } = grep { $_->{id} eq $form->{buchungsgruppen_id} || ($form->{id} && $form->{orphaned}) || $form->{id} } @{ $form->{BUCHUNGSGRUPPEN} };
+ @{ $form->{BUCHUNGSGRUPPEN} } = grep { $_->{id} eq $form->{buchungsgruppen_id} || ($form->{id} && $form->{orphaned}) || !$form->{id} } @{ $form->{BUCHUNGSGRUPPEN} };
# use JavaScript Calendar or not (yes!)
$form->{jsscript} = 1;
sub form_footer {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
if ($form->{item} eq "assembly") {
print qq|
}
print qq|
- <input type=hidden name=login value=$form->{login}>
- <input type=hidden name=password value=$form->{password}>
<input type=hidden name=callback value="$form->{callback}">
<input type=hidden name=previousform value="$form->{previousform}">
<input type=hidden name=taxaccount2 value="$form->{taxaccount2}">
} else {
$href =
- qq|$form->{script}?action=edit&id=$form->{"id_$i"}&login=$form->{login}&password=$form->{password}&rowcount=$i&previousform=$previousform|;
+ qq|$form->{script}?action=edit&id=$form->{"id_$i"}&rowcount=$i&previousform=$previousform|;
$column_data{partnumber} =
qq|<td><input type=hidden name="partnumber_$i" value="$form->{"partnumber_$i"}"><a href=$href>$form->{"partnumber_$i"}</a></td>|;
$column_data{runningnumber} =
sub save {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
my ($parts_id, %newform, $previousform, $amount, $callback);
# check if there is a part number - commented out, cause there is an automatic allocation of numbers
map { $form->{"${_}_$i"} = $newform{$_} } qw(partnumber description bin unit listprice inventory_accno income_accno expense_accno sellprice lastcost price_factor_id);
+ $form->{"longdescription_$i"} = $newform{notes};
+
$form->{"sellprice_$i"} = $newform{lastcost} if ($form->{vendor_id});
if ($form->{exchangerate} != 0) {
sub save_as_new {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|partnumber_| . $form->{partnumber};
sub delete {
$lxdebug->enter_sub();
+
+ $auth->assert('part_service_assembly_edit');
+
# saving the history
if(!exists $form->{addition}) {
$form->{snumbers} = qq|partnumber_| . $form->{partnumber};
sub price_row {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
my ($numrows) = @_;
- print qq|
- <tr>
- <td>
- <table width=100%>
- <tr>
- <th class="listheading">| . $locale->text('Preisklasse') . qq|</th>
- <th class="listheading">| . $locale->text('Preis') . qq|</th>
- </tr>
-|;
- for my $i (1 .. $numrows) {
- print qq|
- <tr>
- <td width=50%><input type=hidden name="pricegroup_$i" size=30 value="$form->{"pricegroup_$i"}">$form->{"pricegroup_$i"}</td>
- <td width=50%><input name="price_$i" size=11 value="$form->{"price_$i"}"></td>
- <input type=hidden name="pricegroup_id_$i" value="$form->{"pricegroup_id_$i"}">
- </tr>
-|;
- }
+ my @PRICES = map +{
+ pricegroup => $form->{"pricegroup_$_"},
+ pricegroup_id => $form->{"pricegroup_id_$_"},
+ price => $form->{"price_$_"},
+ }, 1 .. $numrows;
- print qq|
- </table>
- </td>
- </tr>
-|;
+ print $form->parse_html_template('ic/price_row', { PRICES => \@PRICES });
$lxdebug->leave_sub();
}
sub parts_language_selection {
$lxdebug->enter_sub();
+ $auth->assert('part_service_assembly_edit');
+
our ($onload);
my $languages = IC->retrieve_languages(\%myconfig, $form);