From: Sven Donath Date: Fri, 16 Nov 2012 13:18:48 +0000 (+0100) Subject: Merge remote branch 'origin/master' X-Git-Tag: release-3.0.0beta2~12 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/8d8d1aab328b1c47d7983aca59c1c99592336eff?hp=ed6d3e17ec148f701a0a0a5903a60c14f017e4d6 Merge remote branch 'origin/master' --- diff --git a/SL/Controller/Helper/Paginated.pm b/SL/Controller/Helper/Paginated.pm index d3da20dc0..11eddd32d 100644 --- a/SL/Controller/Helper/Paginated.pm +++ b/SL/Controller/Helper/Paginated.pm @@ -7,7 +7,7 @@ our @EXPORT = qw(make_paginated get_paginate_spec get_current_paginate_params _s use constant PRIV => '__paginatedhelper_priv'; -my $controller_paginate_spec; +my %controller_paginate_spec; sub make_paginated { my ($class, %specs) = @_; @@ -20,7 +20,7 @@ sub make_paginated { $specs{ONLY} = [ $specs{ONLY} ] if !ref $specs{ONLY}; $specs{ONLY_MAP} = @{ $specs{ONLY} } ? { map { ($_ => 1) } @{ $specs{ONLY} } } : { '__ALL__' => 1 }; - $controller_paginate_spec = \%specs; + $controller_paginate_spec{$class} = \%specs; my %hook_params = @{ $specs{ONLY} } ? ( only => $specs{ONLY} ) : (); $class->run_before('_save_current_paginate_params', %hook_params); @@ -38,7 +38,7 @@ sub make_paginated { sub get_paginate_spec { my ($class_or_self) = @_; - return $controller_paginate_spec; + return $controller_paginate_spec{ref($class_or_self) || $class_or_self}; } sub get_current_paginate_params { diff --git a/SL/Controller/Helper/Sorted.pm b/SL/Controller/Helper/Sorted.pm index c9e577911..98c0a7c10 100644 --- a/SL/Controller/Helper/Sorted.pm +++ b/SL/Controller/Helper/Sorted.pm @@ -11,7 +11,7 @@ our @EXPORT = qw(make_sorted get_sort_spec get_current_sort_params set_report_ge use constant PRIV => '__sortedhelperpriv'; -my $controller_sort_spec; +my %controller_sort_spec; sub make_sorted { my ($class, %specs) = @_; @@ -35,7 +35,7 @@ sub make_sorted { $specs{ONLY} ||= []; $specs{ONLY} = [ $specs{ONLY} ] if !ref $specs{ONLY}; - $controller_sort_spec = \%specs; + $controller_sort_spec{$class} = \%specs; my %hook_params = @{ $specs{ONLY} } ? ( only => $specs{ONLY} ) : (); $class->run_before('_save_current_sort_params', %hook_params); @@ -53,7 +53,7 @@ sub make_sorted { sub get_sort_spec { my ($class_or_self) = @_; - return $controller_sort_spec; + return $controller_sort_spec{ref($class_or_self) || $class_or_self}; } sub get_current_sort_params { diff --git a/SL/IC.pm b/SL/IC.pm index f5f014b9d..f39c169b2 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -109,60 +109,20 @@ sub get_part { $form->{amount}{IC_expense} = $form->{expense_accno}; $form->{amount}{IC_cogs} = $form->{expense_accno}; - my @pricegroups = (); - my @pricegroups_not_used = (); - # get prices - $query = - qq|SELECT p.parts_id, p.pricegroup_id, p.price, - (SELECT pg.pricegroup - FROM pricegroup pg - WHERE pg.id = p.pricegroup_id) AS pricegroup - FROM prices p - WHERE (parts_id = ?) - ORDER BY pricegroup|; - $sth = prepare_execute_query($form, $dbh, $query, conv_i($form->{id})); - - #for pricegroups - my $i = 1; - while (($form->{"klass_$i"}, $form->{"pricegroup_id_$i"}, - $form->{"price_$i"}, $form->{"pricegroup_$i"}) - = $sth->fetchrow_array()) { - push @pricegroups, $form->{"pricegroup_id_$i"}; - $i++; - } - - $sth->finish; - - # get pricegroups - $query = qq|SELECT id, pricegroup FROM pricegroup|; - $form->{PRICEGROUPS} = selectall_hashref_query($form, $dbh, $query); - - #find not used pricegroups - while (my $tmp = pop(@{ $form->{PRICEGROUPS} })) { - my $in_use = 0; - foreach my $item (@pricegroups) { - if ($item eq $tmp->{id}) { - $in_use = 1; - last; - } - } - push(@pricegroups_not_used, $tmp) unless ($in_use); - } - - # if not used pricegroups are avaible - if (@pricegroups_not_used) { + $query = <{"klass_$i"} = "$name->{id}"; - $form->{"pricegroup_id_$i"} = "$name->{id}"; - $form->{"pricegroup_$i"} = "$name->{pricegroup}"; - $i++; - } + my $row = 1; + foreach $ref (selectall_hashref_query($form, $dbh, $query, conv_i($form->{id}))) { + $form->{"${_}_${row}"} = $ref->{$_} for qw(pricegroup_id pricegroup price); + $row++; } - - #correct rows - $form->{price_rows} = $i - 1; + $form->{price_rows} = $row - 1; # get makes if ($form->{makemodel}) { @@ -241,7 +201,7 @@ sub get_pricegroups { my $dbh = $form->dbconnect($myconfig); # get pricegroups - my $query = qq|SELECT id, pricegroup FROM pricegroup|; + my $query = qq|SELECT id, pricegroup FROM pricegroup ORDER BY lower(pricegroup)|; my $pricegroups = selectall_hashref_query($form, $dbh, $query); my $i = 1; @@ -471,26 +431,20 @@ sub save { # delete price records do_query($form, $dbh, qq|DELETE FROM prices WHERE parts_id = ?|, conv_i($form->{id})); + $query = qq|INSERT INTO prices (parts_id, pricegroup_id, price) VALUES(?, ?, ?)|; + $sth = prepare_query($form, $dbh, $query); + # insert price records only if different to sellprice for my $i (1 .. $form->{price_rows}) { my $price = $form->parse_amount($myconfig, $form->{"price_$i"}); - if ($price == 0) { - $form->{"price_$i"} = $form->{sellprice}; - } - if ( - ( $price - || $form->{"klass_$i"} - || $form->{"pricegroup_id_$i"}) - and $price != $form->{sellprice} - ) { - #$klass = $form->parse_amount($myconfig, $form->{"klass_$i"}); - $query = qq|INSERT INTO prices (parts_id, pricegroup_id, price) | . - qq|VALUES(?, ?, ?)|; - @values = (conv_i($form->{id}), conv_i($form->{"pricegroup_id_$i"}), $price); - do_query($form, $dbh, $query, @values); - } + next unless $price && ($price != $form->{sellprice}); + + @values = (conv_i($form->{id}), conv_i($form->{"pricegroup_id_$i"}), $price); + do_statement($form, $sth, $query, @values); } + $sth->finish; + # insert makemodel records my $lastupdate = ''; my $value = 0; diff --git a/SL/Layout/Javascript.pm b/SL/Layout/Javascript.pm index a9a17481d..8d616093b 100644 --- a/SL/Layout/Javascript.pm +++ b/SL/Layout/Javascript.pm @@ -115,7 +115,7 @@ sub create_menu { my $item = { 'title' => $::locale->text($name) }; push @{ $all_items }, $item; - if ($menu_item->{submenu} || !defined($menu_item->{module})) { + if ($menu_item->{submenu} || (!defined($menu_item->{module}) && !defined($menu_item->{href}))) { $item->{subitems} = []; $item->{image} = _icon_path("$name.png"); $self->create_menu($menu, $item->{subitems}, "${parent}${name}", $depth * 1 + 1); diff --git a/bin/mozilla/ap.pl b/bin/mozilla/ap.pl index 0654d860b..dfac71d2f 100644 --- a/bin/mozilla/ap.pl +++ b/bin/mozilla/ap.pl @@ -156,24 +156,19 @@ sub create_links { # currencies $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); - map { $form->{selectcurrency} .= "