X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/723a11583380d2cef883c12f654d6a35bffee83b..3a13039a9d18b1a07cccbf6c4628671c38816150:/SL/IC.pm diff --git a/SL/IC.pm b/SL/IC.pm index 2cf7996fb..e455d38e1 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -85,6 +85,7 @@ sub get_part { # retrieve assembly items $query = qq|SELECT p.id, p.partnumber, p.description, + p.classification_id, p.sellprice, p.lastcost, p.weight, a.qty, a.bom, p.unit, pg.partsgroup, p.price_factor_id, pfac.factor AS price_factor FROM parts p @@ -101,6 +102,8 @@ sub get_part { foreach my $key (keys %{$ref}) { $form->{"${key}_$form->{assembly_rows}"} = $ref->{$key}; } + $form->{"type_and_classific_$form->{assembly_rows}"} = $::request->presenter->type_abbreviation($ref->{part_type}). + $::request->presenter->classification_abbreviation($ref->{classification_id}); } $sth->finish; @@ -334,6 +337,7 @@ sub _save { partnumber = ?, description = ?, makemodel = ?, + classification_id = ?, listprice = ?, sellprice = ?, lastcost = ?, @@ -367,6 +371,7 @@ sub _save { @values = ($form->{partnumber}, $form->{description}, $makemodel ? 't' : 'f', + $form->{classification_id}, $form->{listprice}, $form->{sellprice}, $form->{lastcost}, @@ -642,6 +647,7 @@ sub assembly_item { my $query = qq|SELECT p.id, p.partnumber, p.description, p.sellprice, + p.classification_id, p.weight, p.onhand, p.unit, pg.partsgroup, p.lastcost, p.price_factor_id, pfac.factor AS price_factor, p.notes as longdescription FROM parts p @@ -723,7 +729,7 @@ sub all_parts { # my @other_flags = qw(onhand); # ToDO: implement these # my @inactive_flags = qw(l_subtotal short l_linetotal); - my @select_tokens = qw(id factor); + my @select_tokens = qw(id factor part_type classification_id); my @where_tokens = qw(1=1); my @group_tokens = (); my @bind_vars = (); @@ -800,7 +806,7 @@ sub all_parts { insertdate => 'itime::DATE', ); - if (($form->{searchitems} eq 'assembly') && $form->{l_lastcost}) { + if ($form->{l_assembly} && $form->{l_lastcost}) { @simple_l_switches = grep { $_ ne 'lastcost' } @simple_l_switches; } @@ -890,10 +896,23 @@ sub all_parts { push @select_tokens, $_; } - for ($form->{searchitems}) { - push @where_tokens, "p.part_type = 'part'" if /part/; - push @where_tokens, "p.part_type = 'service'" if /service/; - push @where_tokens, "p.part_type = 'assembly'" if /assembly/; + # Oder Bedingungen fuer Ware Dienstleistung Erzeugnis: + if ($form->{l_part} || $form->{l_assembly} || $form->{l_service} || $form->{l_assortment}) { + my @or_tokens = (); + push @or_tokens, "p.part_type = 'service'" if $form->{l_service}; + push @or_tokens, "p.part_type = 'assembly'" if $form->{l_assembly}; + push @or_tokens, "p.part_type = 'part'" if $form->{l_part}; + push @or_tokens, "p.part_type = 'assortment'" if $form->{l_assortment}; + push @where_tokens, join ' OR ', map { "($_)" } @or_tokens; + } + else { + # gar keine Teile + push @where_tokens, q|'F' = 'T'|; + } + + if ( $form->{classification_id} > 0 ) { + push @where_tokens, "p.classification_id = ?"; + push @bind_vars, $form->{classification_id}; } for ($form->{itemstatus}) { @@ -951,7 +970,7 @@ sub all_parts { push @select_tokens, @qsooqr_flags, 'quotation', 'cv', 'ioi.id', 'ioi.ioi' if $bsooqr; push @select_tokens, @deliverydate_flags if $bsooqr && $form->{l_deliverydate}; - push @select_tokens, $q_assembly_lastcost if ($form->{searchitems} eq 'assembly') && $form->{l_lastcost}; + push @select_tokens, $q_assembly_lastcost if $form->{l_assembly} && $form->{l_lastcost}; push @bsooqr_tokens, q|module = 'ir' AND NOT ioi.assemblyitem| if $form->{bought}; push @bsooqr_tokens, q|module = 'is' AND NOT ioi.assemblyitem| if $form->{sold}; push @bsooqr_tokens, q|module = 'oe' AND NOT quotation AND cv = 'customer'| if $form->{ordered}; @@ -1049,7 +1068,7 @@ sub all_parts { # post processing for assembly parts lists (bom) # for each part get the assembly parts and add them into the partlist. my @assemblies; - if ($form->{searchitems} eq 'assembly' && $form->{bom}) { + if ($form->{l_assembly} && $form->{bom}) { $query = qq|SELECT p.id, p.partnumber, p.description, a.qty AS onhand, p.unit, p.notes, p.itime::DATE as insertdate, @@ -1079,7 +1098,7 @@ sub all_parts { $form->{parts} = \@assemblies; } - if ($form->{l_pricegroups} ) { + if ($form->{l_pricegroups} && SL::DB::Manager::Price->get_all_count() > 0 ) { my $query = <finish; } - }; - + } $main::lxdebug->leave_sub(); @@ -1393,7 +1411,8 @@ sub get_parts { } my $query = - qq|SELECT id, partnumber, description, unit, sellprice + qq|SELECT id, partnumber, description, unit, sellprice, + classification_id FROM parts WHERE $where ORDER BY $order|; @@ -1406,6 +1425,8 @@ sub get_parts { } $j++; + $form->{"type_and_classific_$j"} = $::request->presenter->type_abbreviation($ref->{part_type}). + $::request->presenter->classification_abbreviation($ref->{classification_id}); $form->{"id_$j"} = $ref->{id}; $form->{"partnumber_$j"} = $ref->{partnumber}; $form->{"description_$j"} = $ref->{description}; @@ -1733,12 +1754,15 @@ sub prepare_parts_for_printing { for my $i (1..$rowcount) { my $id = $form->{"${prefix}${i}"}; next unless $id; - - push @{ $template_arrays{part_type} }, $parts_by_id{$id}->type; + my $prt = $parts_by_id{$id}; + my $type_abbr = $::request->presenter->type_abbreviation($prt->part_type); + push @{ $template_arrays{part_type} }, $type_abbr; + push @{ $template_arrays{type_and_classific}}, $type_abbr.$::request->presenter->classification_abbreviation($prt->classification_id); + push @{ $template_arrays{separate} }, $::request->presenter->separate_abbreviation($prt->classification_id); } - return %template_arrays; $main::lxdebug->leave_sub(); + return %template_arrays; } sub normalize_text_blocks { @@ -1760,5 +1784,4 @@ sub normalize_text_blocks { $main::lxdebug->leave_sub(); } - 1;