X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=bccac308a16fbb2b3cef1ed5a872d78b4a30659f;hb=d467f40de696218e7cde1b78704c32443fa5b986;hp=3765f64a51c323da97ab26fb19f6939621540401;hpb=d7f060429e809653d45e93e86b3c5c8d7129e0a9;p=kivitendo-erp.git
diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl
index 3765f64a5..bccac308a 100644
--- a/bin/mozilla/ic.pl
+++ b/bin/mozilla/ic.pl
@@ -36,6 +36,12 @@ use SL::IC;
#use SL::PE;
+# use strict;
+#use warnings;
+
+# global imports
+our ($form, $locale, %myconfig, $lxdebug);
+
require "bin/mozilla/io.pl";
require "bin/mozilla/common.pl";
@@ -64,6 +70,8 @@ sub add {
sub search {
$lxdebug->enter_sub();
+ my ($button1, $button2, $onhand, $makemodel, $serialnumber, $l_serialnumber, $toplevel, $bought);
+
$form->{title} = (ucfirst $form->{searchitems}) . "s";
$form->{title} = $locale->text($form->{title});
@@ -81,7 +89,7 @@ sub search {
# use JavaScript Calendar or not
$form->{jsscript} = 1;
- $jsscript = "";
+ my $jsscript = "";
if ($form->{jsscript}) {
# with JavaScript Calendar
@@ -400,6 +408,8 @@ $jsscript
sub search_update_prices {
$lxdebug->enter_sub();
+ my ($onhand, $makemodel, $serialnumber, $l_serialnumber, $toplevel, $bought);
+
$form->{title} = $locale->text('Update prices');
IC->get_pricegroups(\%myconfig, \%$form);
@@ -537,7 +547,7 @@ sub search_update_prices {
/ |
|;
- for $i (1 .. $form->{price_rows}) {
+ for my $i (1 .. $form->{price_rows}) {
print qq|
$form->{"pricegroup_$i"} |
@@ -588,7 +598,7 @@ sub confirm_price_update {
# delete action variable
map { delete $form->{$_} } qw(action header);
- foreach $key (keys %$form) {
+ foreach my $key (keys %$form) {
$form->{$key} =~ s/\"/"/g;
print qq|\n|;
}
@@ -624,6 +634,9 @@ sub update_prices {
sub choice {
$lxdebug->enter_sub();
+ our ($j, $lastndx);
+ my ($totop100);
+
$form->{title} = $locale->text('Top 100 hinzufuegen');
$form->header;
@@ -642,10 +655,8 @@ sub choice {
print qq|
- |
- . $locale->text('Part Number') . qq| |
- |
- . $locale->text('Part Description') . qq| |
+ | . $locale->text('Part Number') . qq| |
+ | . $locale->text('Part Description') . qq| |
|
@@ -687,9 +698,10 @@ sub choice {
{extras}>|;
+ my ($partnumber, $description, $unit, $sellprice, $soldtotal);
# if choice set data
if ($form->{ndx}) {
- for ($i = 0; $i < $form->{ndxs_counter}; $i++) {
+ for (my $i = 0; $i < $form->{ndxs_counter}; $i++) {
# prepeare data
$partnumber = $form->{"totop100_partnumber_$j"};
@@ -713,7 +725,7 @@ sub choice {
# set data for next page
if (($form->{ndxs_counter}) > 0) {
- for ($i = 1; ($i < $form->{ndxs_counter} + 1); $i++) {
+ for (my $i = 1; ($i < $form->{ndxs_counter} + 1); $i++) {
$partnumber = $form->{"totop100_partnumber_$i"};
$description = $form->{"totop100_description_$i"};
$unit = $form->{"totop100_unit_$i"};
@@ -745,6 +757,9 @@ sub choice {
sub list {
$lxdebug->enter_sub();
+ our ($lastndx);
+ our ($partnumber, $description, $unit, $sellprice, $soldtotal);
+
my @sortorders = ("", "partnumber", "description", "all");
my $sortorder = $sortorders[($form->{description} ? 2 : 0) + ($form->{partnumber} ? 1 : 0)];
IC->get_parts(\%myconfig, \%$form, $sortorder);
@@ -829,21 +844,16 @@ sub list {
{ndxs_counter}>|;
- $totop100 = "";
+ my $totop100 = "";
if (($form->{ndxs_counter}) > 0) {
for ($i = 1; ($i < $form->{ndxs_counter} + 1); $i++) {
- $j1 = $form->{"totop100_partnumber_$i"};
- $j2 = $form->{"totop100_description_$i"};
- $j3 = $form->{"totop100_unit_$i"};
- $j4 = $form->{"totop100_sellprice_$i"};
- $j5 = $form->{"totop100_soldtotal_$i"};
-
- $partnumber = $j1;
- $description = $j2;
- $unit = $j3;
- $sellprice = $j4;
- $soldtotal = $j5;
+
+ $partnumber = $form->{"totop100_partnumber_$i"};
+ $description = $form->{"totop100_description_$i"};
+ $unit = $form->{"totop100_unit_$i"};
+ $sellprice = $form->{"totop100_sellprice_$i"};
+ $soldtotal = $form->{"totop100_soldtotal_$i"};
$totop100 .= qq|
{"totop100_partnumber_$i"}>
@@ -876,18 +886,13 @@ sub top100 {
if ($form->{ndxs_counter} > 0) {
- $index = $form->{ndx};
-
- $j1 = $form->{"new_partnumber_$index"};
- $form->{"totop100_partnumber_$form->{ndxs_counter}"} = $j1;
- $j2 = $form->{"new_description_$index"};
- $form->{"totop100_description_$form->{ndxs_counter}"} = $j2;
- $j3 = $form->{"new_unit_$index"};
- $form->{"totop100_unit_$form->{ndxs_counter}"} = $j3;
- $j4 = $form->{"new_sellprice_$index"};
- $form->{"totop100_sellprice_$form->{ndxs_counter}"} = $j4;
- $j5 = $form->{"new_soldtotal_$index"};
- $form->{"totop100_soldtotal_$form->{ndxs_counter}"} = $j5;
+ my $index = $form->{ndx};
+
+ $form->{"totop100_partnumber_$form->{ndxs_counter}"} = $form->{"new_partnumber_$index"};
+ $form->{"totop100_description_$form->{ndxs_counter}"} = $form->{"new_description_$index"};
+ $form->{"totop100_unit_$form->{ndxs_counter}"} = $form->{"new_unit_$index"};
+ $form->{"totop100_sellprice_$form->{ndxs_counter}"} = $form->{"new_sellprice_$index"};
+ $form->{"totop100_soldtotal_$form->{ndxs_counter}"} = $form->{"new_soldtotal_$index"};
} #fi
} #fi
&addtop100();
@@ -897,18 +902,22 @@ sub top100 {
sub addtop100 {
$lxdebug->enter_sub();
+ my ($revers, $lastsort, $callback, $option, $description, $sameitem,
+ $partnumber, $unit, $sellprice, $soldtotal, $totop100, $onhand, $align);
+ my (@column_index, %column_header, %column_data);
+ my ($totalsellprice, $totallastcost, $totallistprice, $subtotalonhand, $subtotalsellprice, $subtotallastcost, $subtotallistprice);
+
$form->{top100} = "top100";
$form->{l_soldtotal} = "Y";
$form->{soldtotal} = "soldtotal";
$form->{sort} = "soldtotal";
$form->{l_qty} = "N";
- $callback .= "&form->{top100}=$form->{top100}";
$form->{l_linetotal} = "";
$form->{revers} = 1;
$form->{number} = "position";
$form->{l_number} = "Y";
- my $totop100 = "";
+ $totop100 = "";
$form->{title} = $locale->text('Top 100');
@@ -1057,7 +1066,7 @@ sub addtop100 {
$option .= $locale->text('soldtotal') . qq| : $form->{soldtotal}
|;
}
- @columns = $form->sort_columns(
+ my @columns = $form->sort_columns(
qw(number partnumber ean description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal)
);
@@ -1097,7 +1106,7 @@ sub addtop100 {
$form->{l_lastcost} = ""
if ($form->{searchitems} eq 'assembly' && !$form->{bom});
- foreach $item (@columns) {
+ foreach my $item (@columns) {
if ($form->{"l_$item"} eq "Y") {
push @column_index, $item;
@@ -1199,7 +1208,7 @@ sub addtop100 {
. qq||;
$form->header;
- $colspan = $#column_index + 1;
+ my $colspan = $#column_index + 1;
print qq|
@@ -1233,14 +1242,14 @@ sub addtop100 {
# insert numbers for top100
my $j = 0;
- foreach $ref (@{ $form->{parts} }) {
+ foreach my $ref (@{ $form->{parts} }) {
$j++;
$ref->{number} = $j;
}
# if avaible -> insert choice here
if (($form->{ndxs_counter}) > 0) {
- for ($i = 1; ($i < $form->{ndxs_counter} + 1); $i++) {
+ for (my $i = 1; ($i < $form->{ndxs_counter} + 1); $i++) {
$partnumber = $form->{"totop100_partnumber_$i"};
$description = $form->{"totop100_description_$i"};
$unit = $form->{"totop100_unit_$i"};
@@ -1266,7 +1275,8 @@ sub addtop100 {
} #rof
} #fi
# build data for columns
- foreach $ref (@{ $form->{parts} }) {
+ foreach my $ref (@{ $form->{parts} }) {
+ my $i = 0;
if ($form->{l_subtotal} eq 'Y' && !$ref->{assemblyitem}) {
if ($sameitem ne $ref->{ $form->{sort} }) {
@@ -1469,172 +1479,155 @@ sub addtop100 {
$lxdebug->leave_sub();
} # end addtop100
+#
+# Report for Wares.
+# Warning, deep magic ahead.
+# This function parses the requested details, sanity checks them, and converts them into a format thats usable for IC->all_parts
+#
+# flags coming from the form:
+# hardcoded:
+# searchitems=part revers=0 lastsort=''
+#
+# filter:
+# partnumber ean description partsgroup serialnumber make model drawing microfiche
+# transdatefrom transdateto
+#
+# radio:
+# itemstatus = active | onhand | short | obsolete | orphaned
+# action = continue | top100
+#
+# checkboxes:
+# bought sold onorder ordered rfq quoted
+# l_partnumber l_description l_serialnumber l_unit l_listprice l_sellprice l_lastcost
+# l_linetotal l_priceupdate l_bin l_rop l_weight l_image l_drawing l_microfiche
+# l_partsgroup l_subtotal l_soldtotal l_deliverydate
+#
+# hiddens:
+# nextsub login password revers lastsort sort ndxs_counter
+#
sub generate_report {
$lxdebug->enter_sub();
+ my ($revers, $lastsort, $description);
+ my (@column_index, %column_header, %column_data, @columns, @options, @callbacks);
+ my ($totalsellprice, $totallastcost, $totallistprice, $subtotalonhand, $subtotalsellprice, $subtotallastcost, $subtotallistprice);
+ my ($colspan, $sameitem, $onhand, $align);
+
$revers = $form->{revers};
$lastsort = $form->{lastsort};
+ # sorting and direction of sorting
+ # ToDO: change this to the simpler field+direction method
if (($form->{lastsort} eq "") && ($form->{sort} eq undef)) {
$form->{revers} = 0;
$form->{lastsort} = "partnumber";
$form->{sort} = "partnumber";
} else {
-
- # switch between backward sorting of tables
if ($form->{lastsort} eq $form->{sort}) {
- if ($form->{revers} == 0) {
- $form->{revers} = 1;
- } else {
- $form->{revers} = 0;
- } #fi
+ $form->{revers} = 1 - $form->{revers};
} else {
- $form->{revers} == 0;
+ $form->{revers} = 0;
$form->{lastsort} = $form->{sort};
} #fi
} #fi
- $callback =
- "$form->{script}?action=generate_report&login=$form->{login}&password=$form->{password}&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
- if ($form->{serialnumber} || $form->{l_serialnumber}) {
- $form->{l_serialnumber} = "Y";
- unless ( $form->{bought}
- || $form->{sold}
- || $form->{rfq}
- || $form->{quoted}) {
- $form->{bought} = $form->{sold} = 1;
- }
- }
+ # special case if we have a serialnumber limit search
+ # serialnumbers are only given in invoices and orders,
+ # so they can only pop up in bought, sold, rfq, and quoted stuff
+ $form->{no_sn_joins} = 'Y' if ( !$form->{bought} && !$form->{sold}
+ && !$form->{rfq} && !$form->{quoted}
+ && ($form->{l_serialnumber} || $form->{serialnumber}));
+
+ # special case for any checkbox of bought | sold | onorder | ordered | rfq | quoted.
+ # if any of these are ticked the behavior changes slightly for lastcost
+ # since all those are aggregation checks for the legder tables this is an internal switch
+ # refered to as ledgerchecks
+ $form->{ledgerchecks} = 'Y' if ( $form->{bought} || $form->{sold} || $form->{onorder}
+ || $form->{ordered} || $form->{rfq} || $form->{quoted});
+
+ # if something should be aktivated if something else is active, enter it here
+ my %dependencies = (
+ onhand => [ qw(l_onhand) ],
+ short => [ qw(l_onhand) ],
+ onorder => [ qw(l_ordnumber) ],
+ ordered => [ qw(l_ordnumber) ],
+ rfq => [ qw(l_quonumber) ],
+ quoted => [ qw(l_quonumber) ],
+ bought => [ qw(l_invnumber) ],
+ sold => [ qw(l_invnumber) ],
+ ledgerchecks => [ qw(l_name) ],
+ serialnumber => [ qw(l_serialnumber) ],
+ no_sn_joins => [ qw(bought sold) ],
+ );
- IC->all_parts(\%myconfig, \%$form);
+ # these strings get displayed at the top of the results to indicate the user which switches were used
+ my %optiontexts = (
+ active => $locale->text('Active'),
+ obsolete => $locale->text('Obsolete'),
+ orphaned => $locale->text('Orphaned'),
+ onhand => $locale->text('On Hand'),
+ short => $locale->text('Short'),
+ onorder => $locale->text('On Order'),
+ ordered => $locale->text('Ordered'),
+ rfq => $locale->text('RFQ'),
+ quoted => $locale->text('Quoted'),
+ bought => $locale->text('Bought'),
+ sold => $locale->text('Sold'),
+ transdatefrom => $locale->text('From') . " " . $locale->date(\%myconfig, $form->{transdatefrom}, 1),
+ transdateto => $locale->text('To (time)') . " " . $locale->date(\%myconfig, $form->{transdateto}, 1),
+ partnumber => $locale->text('Part Number') . ": '$form->{partnumber}'",
+ partsgroup => $locale->text('Group') . ": '$form->{partsgroup}'",
+ serialnumber => $locale->text('Serial Number') . ": '$form->{serialnumber}'",
+ description => $locale->text('Part Description') . ": '$form->{description}'",
+ make => $locale->text('Make') . ": '$form->{make}'",
+ model => $locale->text('Model') . ": '$form->{model}'",
+ drawing => $locale->text('Drawing') . ": '$form->{drawing}'",
+ microfiche => $locale->text('Microfiche') . ": '$form->{microfiche}'",
+ l_soldtotal => $locale->text('soldtotal'),
+ );
- if ($form->{itemstatus} eq 'active') {
- $option .= $locale->text('Active') . " : ";
- }
- if ($form->{itemstatus} eq 'obsolete') {
- $option .= $locale->text('Obsolete') . " : ";
- }
- if ($form->{itemstatus} eq 'orphaned') {
- $option .= $locale->text('Orphaned') . " : ";
- }
- if ($form->{itemstatus} eq 'onhand') {
- $option .= $locale->text('On Hand') . " : ";
- $form->{l_onhand} = "Y";
- }
- if ($form->{itemstatus} eq 'short') {
- $option .= $locale->text('Short') . " : ";
- $form->{l_onhand} = "Y";
- }
- if ($form->{onorder}) {
- $form->{l_ordnumber} = "Y";
- $callback .= "&onorder=$form->{onorder}";
- $option .= $locale->text('On Order') . " : ";
- }
- if ($form->{ordered}) {
- $form->{l_ordnumber} = "Y";
- $callback .= "&ordered=$form->{ordered}";
- $option .= $locale->text('Ordered') . " : ";
- }
- if ($form->{rfq}) {
- $form->{l_quonumber} = "Y";
- $callback .= "&rfq=$form->{rfq}";
- $option .= $locale->text('RFQ') . " : ";
- }
- if ($form->{quoted}) {
- $form->{l_quonumber} = "Y";
- $callback .= ""ed=$form->{quoted}";
- $option .= $locale->text('Quoted') . " : ";
+ # this local subfunction generates a callback token from the input key.
+ # easy to join into a callback later
+ sub callback_token {
+ map { /\w+$/; return "&$&=$form->{$&}" } @_;
}
- if ($form->{bought}) {
- $form->{l_invnumber} = "Y";
- $callback .= "&bought=$form->{bought}";
- $option .= $locale->text('Bought') . " : ";
- }
- if ($form->{sold}) {
- $form->{l_invnumber} = "Y";
- $callback .= "&sold=$form->{sold}";
- $option .= $locale->text('Sold') . " : ";
+
+ my @itemstatus_keys = qw(active obsolete orphaned onhand short);
+ my @callback_keys = qw(onorder ordered rfq quoted bought sold partnumber partsgroup serialnumber description make model
+ drawing microfiche l_soldtotal l_deliverydate transdatefrom transdateto);
+ my $callback = "$form->{script}?action=generate_report";
+ map { $callback .= "&$_=" . $form->escape($form->{$_}) } qw(login password searchitems itemstatus bom l_linetotal title);
+
+ # calculate dependencies
+ for (@itemstatus_keys, @callback_keys) {
+ next if ($form->{itemstatus} ne $_ && !$form->{$_});
+ map { $form->{$_} = 'Y' } @{ $dependencies{$_} } if $dependencies{$_};
}
- if ( $form->{bought}
- || $form->{sold}
- || $form->{onorder}
- || $form->{ordered}
- || $form->{rfq}
- || $form->{quoted}) {
- $form->{l_lastcost} = "";
- $form->{l_name} = "Y";
- if ($form->{transdatefrom}) {
- $callback .= "&transdatefrom=$form->{transdatefrom}";
- $option .= "\n
"
- . $locale->text('From')
- . " "
- . $locale->date(\%myconfig, $form->{transdatefrom}, 1);
- }
- if ($form->{transdateto}) {
- $callback .= "&transdateto=$form->{transdateto}";
- $option .= "\n
"
- . $locale->text('To (time)')
- . " "
- . $locale->date(\%myconfig, $form->{transdateto}, 1);
- }
+ # generate callback and optionstrings
+ for my $key (@itemstatus_keys, @callback_keys) {
+ next if ($form->{itemstatus} ne $key && !$form->{$key});
+ push @options, $optiontexts{$key};
+ push @callbacks, callback_token($key) if grep { $_ eq $key } @callback_keys;;
}
+ my $option = $locale->text('Options') . ': ' . join(', ', grep $_, @options) . '
';
+ $callback .= join '', grep $_, @callbacks;
- $option .= "
";
+ $lxdebug->message(0, $callback);
- if ($form->{partnumber}) {
- $callback .= "&partnumber=$form->{partnumber}";
- $option .= $locale->text('Part Number') . qq| : $form->{partnumber}
|;
- }
- if ($form->{partsgroup}) {
- $callback .= "&partsgroup=$form->{partsgroup}";
- $option .= $locale->text('Group') . qq| : $form->{partsgroup}
|;
- }
- if ($form->{serialnumber}) {
- $callback .= "&serialnumber=$form->{serialnumber}";
- $option .=
- $locale->text('Serial Number') . qq| : $form->{serialnumber}
|;
- }
- if ($form->{description}) {
- $callback .= "&description=$form->{description}";
- $description = $form->{description};
- $description =~ s/
-/
/g;
- $option .=
- $locale->text('Part Description') . qq| : $form->{description}
|;
- }
- if ($form->{make}) {
- $callback .= "&make=$form->{make}";
- $option .= $locale->text('Make') . qq| : $form->{make}
|;
- }
- if ($form->{model}) {
- $callback .= "&model=$form->{model}";
- $option .= $locale->text('Model') . qq| : $form->{model}
|;
- }
- if ($form->{drawing}) {
- $callback .= "&drawing=$form->{drawing}";
- $option .= $locale->text('Drawing') . qq| : $form->{drawing}
|;
- }
- if ($form->{microfiche}) {
- $callback .= "µfiche=$form->{microfiche}";
- $option .= $locale->text('Microfiche') . qq| : $form->{microfiche}
|;
- }
+ IC->all_parts(\%myconfig, \%$form);
- # table soldtotal aktive
- if ($form->{l_soldtotal}) {
- $callback .= "&soldtotal=$form->{soldtotal}";
- $option .= $locale->text('soldtotal') . qq| : $form->{soldtotal}
|;
- }
+ # special case for lastcost
+ $form->{l_lastcost} = "" if $form->{ledgerchecks};
- if ($form->{l_deliverydate}) {
- $callback .= "&deliverydate=$form->{deliverydate}";
+ if ($form->{description}) {
+ $description = $form->{description};
+ $description =~ s/\n/
/g;
}
@columns = $form->sort_columns(
- qw(partnumber description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal deliverydate)
+ qw(partnumber description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice
+ lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal deliverydate)
);
if ($form->{l_linetotal}) {
@@ -1673,7 +1666,7 @@ sub generate_report {
$form->{l_lastcost} = ""
if ($form->{searchitems} eq 'assembly' && !$form->{bom});
- foreach $item (@columns) {
+ foreach my $item (@columns) {
if ($form->{"l_$item"} eq "Y") {
push @column_index, $item;
@@ -1809,7 +1802,8 @@ sub generate_report {
$sameitem = $form->{parts}->[0]->{ $form->{sort} };
}
- foreach $ref (@{ $form->{parts} }) {
+ foreach my $ref (@{ $form->{parts} }) {
+ my $i = 0;
if ($form->{l_subtotal} eq 'Y' && !$ref->{assemblyitem}) {
if ($sameitem ne $ref->{ $form->{sort} }) {
@@ -1999,6 +1993,10 @@ sub generate_report {
sub parts_subtotal {
$lxdebug->enter_sub();
+
+ # imports
+ our (%column_data, @column_index);
+ our ($subtotalonhand, $totalsellprice, $totallastcost, $totallistprice, $subtotalsellprice, $subtotallastcost, $subtotallistprice);
map { $column_data{$_} = " | " } @column_index;
$subtotalonhand = 0 if ($form->{searchitems} eq 'assembly' && $form->{bom});
@@ -2064,15 +2062,15 @@ sub link_part {
split(/:/, $form->{currencies}));
# parts and assemblies have the same links
- $item = $form->{item};
+ my $item = $form->{item};
if ($form->{item} eq 'assembly') {
$item = 'part';
}
# build the popup menus
$form->{taxaccounts} = "";
- foreach $key (keys %{ $form->{IC_links} }) {
- foreach $ref (@{ $form->{IC_links}{$key} }) {
+ foreach my $key (keys %{ $form->{IC_links} }) {
+ foreach my $ref (@{ $form->{IC_links}{$key} }) {
# if this is a tax field
if ($key =~ /IC_tax/) {
@@ -2126,7 +2124,7 @@ sub link_part {
if ($form->{item} eq 'assembly') {
- foreach $i (1 .. $form->{assembly_rows}) {
+ foreach my $i (1 .. $form->{assembly_rows}) {
if ($form->{"partsgroup_id_$i"}) {
$form->{"partsgroup_$i"} =
qq|$form->{"partsgroup_$i"}--$form->{"partsgroup_id_$i"}|;
@@ -2149,18 +2147,23 @@ sub link_part {
sub form_header {
$lxdebug->enter_sub();
+ my ($payment, $rows, $notes, $description, $ean, $buchungsgruppe, $partsgroup, $group, $tax, $lastcost, $eur, $linkaccounts, $weight, $n, $rop, $bin, $vegv);
+ my ($notdiscountableok, $notdiscountable);
+ my ($formel, $imagelinks, $obsolete, $shopok, $shop);
+
+
map({ $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}, -2) }
qw(sellprice listprice lastcost gv));
map { $form->{$_} = $form->format_amount(\%myconfig, $form->{$_}) }
qw(weight rop stock);
- foreach $item (qw(partnumber description unit notes)) {
+ foreach my $item (qw(partnumber description unit notes)) {
$form->{$item} =~ s/\"/"/g;
}
$payment = qq||;
- foreach $item (@{ $form->{payment_terms} }) {
+ foreach my $item (@{ $form->{payment_terms} }) {
if ($form->{payment_id} eq $item->{id}) {
$payment .= qq||;
} else {
@@ -2185,13 +2188,13 @@ sub form_header {
$ean = qq||;
- foreach $item (split / /, $form->{taxaccounts}) {
+ foreach my $item (split / /, $form->{taxaccounts}) {
$form->{"IC_tax_$item"} = ($form->{"IC_tax_$item"}) ? "checked" : "";
}
IC->retrieve_buchungsgruppen(\%myconfig, $form);
if (@{ $form->{BUCHUNGSGRUPPEN} }) {
- foreach $item (@{ $form->{BUCHUNGSGRUPPEN} }) {
+ foreach my $item (@{ $form->{BUCHUNGSGRUPPEN} }) {
if ($item->{id} == $form->{buchungsgruppen_id}) {
$form->{selectbuchungsgruppe} .=
"
|;
- for $i (1 .. $numrows) {
+ for my $i (1 .. $numrows) {
print qq|
$form->{"pricegroup_$i"} |
@@ -3226,6 +3230,7 @@ sub price_row {
sub parts_language_selection {
$lxdebug->enter_sub();
+ our ($onload);
my $languages = IC->retrieve_languages(\%myconfig, $form);