projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Brieffunktion: beim Drucken im WebDAV speichern
[kivitendo-erp.git]
/
SL
/
IC.pm
diff --git
a/SL/IC.pm
b/SL/IC.pm
index
e25e13e
..
8f26502
100644
(file)
--- a/
SL/IC.pm
+++ b/
SL/IC.pm
@@
-42,6
+42,7
@@
use SL::CVar;
use SL::DBUtils;
use SL::HTML::Restrict;
use SL::TransNumber;
use SL::DBUtils;
use SL::HTML::Restrict;
use SL::TransNumber;
+use SL::Util qw(trim);
use strict;
use strict;
@@
-72,6
+73,8
@@
sub get_part {
# copy to $form variables
map { $form->{$_} = $ref->{$_} } (keys %{$ref});
# copy to $form variables
map { $form->{$_} = $ref->{$_} } (keys %{$ref});
+ $form->{mtime} = $form->{itime} if !$form->{mtime};
+ $form->{lastmtime} = $form->{mtime};
$form->{onhand} *= 1;
# part or service item
$form->{onhand} *= 1;
# part or service item
@@
-397,6
+400,8
@@
sub save {
);
do_query($form, $dbh, $query, @values);
);
do_query($form, $dbh, $query, @values);
+ $form->new_lastmtime('parts');
+
# delete translation records
do_query($form, $dbh, qq|DELETE FROM translation WHERE parts_id = ?|, conv_i($form->{id}));
# delete translation records
do_query($form, $dbh, qq|DELETE FROM translation WHERE parts_id = ?|, conv_i($form->{id}));
@@
-568,6
+573,8
@@
sub update_assembly {
$qty * ($form->{weight} - $weight), conv_i($id));
do_query($form, $dbh, $query, @values);
$qty * ($form->{weight} - $weight), conv_i($id));
do_query($form, $dbh, $query, @values);
+ $form->new_lastmtime('parts') if $id == $form->{id};
+
$main::lxdebug->leave_sub();
}
$main::lxdebug->leave_sub();
}
@@
-584,12
+591,12
@@
sub retrieve_assemblies {
if ($form->{partnumber}) {
$where .= qq| AND (p.partnumber ILIKE ?)|;
if ($form->{partnumber}) {
$where .= qq| AND (p.partnumber ILIKE ?)|;
- push(@values,
'%' . $form->{partnumber} . '%'
);
+ push(@values,
like($form->{partnumber})
);
}
if ($form->{description}) {
$where .= qq| AND (p.description ILIKE ?)|;
}
if ($form->{description}) {
$where .= qq| AND (p.description ILIKE ?)|;
- push(@values,
'%' . $form->{description} . '%'
);
+ push(@values,
like($form->{description})
);
}
# retrieve assembly items
}
# retrieve assembly items
@@
-645,7
+652,7
@@
sub assembly_item {
while (my ($column, $table) = each(%columns)) {
next unless ($form->{"${column}_$i"});
$where .= qq| AND ${table}.${column} ILIKE ?|;
while (my ($column, $table) = each(%columns)) {
next unless ($form->{"${column}_$i"});
$where .= qq| AND ${table}.${column} ILIKE ?|;
- push(@values,
'%' . $form->{"${column}_$i"} . '%'
);
+ push(@values,
like($form->{"${column}_$i"})
);
}
if ($form->{id}) {
}
if ($form->{id}) {
@@
-671,7
+678,7
@@
sub assembly_item {
my $query =
qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
p.weight, p.onhand, p.unit, pg.partsgroup, p.lastcost,
my $query =
qq|SELECT p.id, p.partnumber, p.description, p.sellprice,
p.weight, p.onhand, p.unit, pg.partsgroup, p.lastcost,
- p.price_factor_id, pfac.factor AS price_factor
+ p.price_factor_id, pfac.factor AS price_factor
, p.notes as longdescription
FROM parts p
LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
LEFT JOIN price_factors pfac ON pfac.id = p.price_factor_id
FROM parts p
LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
LEFT JOIN price_factors pfac ON pfac.id = p.price_factor_id
@@
-856,18
+863,26
@@
sub all_parts {
#===== switches and simple filters ========#
# special case transdate
#===== switches and simple filters ========#
# special case transdate
- if (grep {
$form->{$_}
} qw(transdatefrom transdateto)) {
+ if (grep {
trim($form->{$_})
} qw(transdatefrom transdateto)) {
$form->{"l_transdate"} = 1;
push @select_tokens, 'transdate';
for (qw(transdatefrom transdateto)) {
$form->{"l_transdate"} = 1;
push @select_tokens, 'transdate';
for (qw(transdatefrom transdateto)) {
- next unless $form->{$_};
+ my $value = trim($form->{$_});
+ next unless $value;
push @where_tokens, sprintf "transdate %s ?", /from$/ ? '>=' : '<=';
push @where_tokens, sprintf "transdate %s ?", /from$/ ? '>=' : '<=';
- push @bind_vars, $
form->{$_}
;
+ push @bind_vars, $
value
;
}
}
}
}
+ # special case smart search
+ if ($form->{all}) {
+ $form->{"l_$_"} = 1 for qw(partnumber description unit sellprice lastcost cvar_packaging linetotal);
+ push @where_tokens, "p.partnumber ILIKE ? OR p.description ILIKE ?";
+ push @bind_vars, (like($form->{all})) x 2;
+ }
+
# special case insertdate
# special case insertdate
- if (grep {
$form->{$_}
} qw(insertdatefrom insertdateto)) {
+ if (grep {
trim($form->{$_})
} qw(insertdatefrom insertdateto)) {
$form->{"l_insertdate"} = 1;
push @select_tokens, 'insertdate';
$form->{"l_insertdate"} = 1;
push @select_tokens, 'insertdate';
@@
-875,9
+890,10
@@
sub all_parts {
my $token = $token_builder->('insertdate');
for (qw(insertdatefrom insertdateto)) {
my $token = $token_builder->('insertdate');
for (qw(insertdatefrom insertdateto)) {
- next unless $form->{$_};
+ my $value = trim($form->{$_});
+ next unless $value;
push @where_tokens, sprintf "$token %s ?", /from$/ ? '>=' : '<=';
push @where_tokens, sprintf "$token %s ?", /from$/ ? '>=' : '<=';
- push @bind_vars, $
form->{$_}
;
+ push @bind_vars, $
value
;
}
}
}
}
@@
-901,7
+917,7
@@
sub all_parts {
next unless $form->{$_};
$form->{"l_$_"} = '1'; # show the column
push @where_tokens, "$table_prefix{$_}$_ ILIKE ?";
next unless $form->{$_};
$form->{"l_$_"} = '1'; # show the column
push @where_tokens, "$table_prefix{$_}$_ ILIKE ?";
- push @bind_vars,
"%$form->{$_}%"
;
+ push @bind_vars,
like($form->{$_})
;
}
foreach (@simple_l_switches) {
}
foreach (@simple_l_switches) {
@@
-942,11
+958,11
@@
sub all_parts {
# fortunately makemodel doesn't need to be displayed later, so adding a special clause to where_token is sufficient.
if ($form->{make}) {
push @where_tokens, 'mv.name ILIKE ?';
# fortunately makemodel doesn't need to be displayed later, so adding a special clause to where_token is sufficient.
if ($form->{make}) {
push @where_tokens, 'mv.name ILIKE ?';
- push @bind_vars,
"%$form->{make}%"
;
+ push @bind_vars,
like($form->{make})
;
}
if ($form->{model}) {
push @where_tokens, 'mm.model ILIKE ?';
}
if ($form->{model}) {
push @where_tokens, 'mm.model ILIKE ?';
- push @bind_vars,
"%$form->{model}%"
;
+ push @bind_vars,
like($form->{model})
;
}
# special case: sorting by partnumber
}
# special case: sorting by partnumber
@@
-1140,14
+1156,14
@@
sub _create_filter_for_priceupdate {
next unless ($form->{$column});
$where .= qq| AND $item ILIKE ?|;
next unless ($form->{$column});
$where .= qq| AND $item ILIKE ?|;
- push(@where_values,
'%' . $form->{$column} . '%'
);
+ push(@where_values,
like($form->{$column})
);
}
foreach my $item (qw(description serialnumber)) {
next unless ($form->{$item});
$where .= qq| AND (${item} ILIKE ?)|;
}
foreach my $item (qw(description serialnumber)) {
next unless ($form->{$item});
$where .= qq| AND (${item} ILIKE ?)|;
- push(@where_values,
'%' . $form->{$item} . '%'
);
+ push(@where_values,
like($form->{$item})
);
}
}
@@
-1181,7
+1197,7
@@
sub _create_filter_for_priceupdate {
foreach my $column (qw(make model)) {
next unless ($form->{$column});
$where .= qq| AND p.id IN (SELECT DISTINCT parts_id FROM makemodel WHERE $column ILIKE ?|;
foreach my $column (qw(make model)) {
next unless ($form->{$column});
$where .= qq| AND p.id IN (SELECT DISTINCT parts_id FROM makemodel WHERE $column ILIKE ?|;
- push(@where_values,
'%' . $form->{$column} . '%'
);
+ push(@where_values,
like($form->{$column})
);
}
$main::lxdebug->leave_sub();
}
$main::lxdebug->leave_sub();
@@
-1326,7
+1342,7
@@
sub create_links {
# connect to database
my $dbh = $form->get_standard_dbh;
# connect to database
my $dbh = $form->get_standard_dbh;
- my @values =
('%' . $module . '%'
);
+ my @values =
like($module
);
my $query;
if ($form->{id}) {
my $query;
if ($form->{id}) {
@@
-1395,15
+1411,15
@@
sub get_parts {
if ($sortorder eq "all") {
$where .= qq| AND (partnumber ILIKE ?) AND (description ILIKE ?)|;
if ($sortorder eq "all") {
$where .= qq| AND (partnumber ILIKE ?) AND (description ILIKE ?)|;
- push(@values,
'%' . $form->{partnumber} . '%', '%' . $form->{description} . '%'
);
+ push(@values,
like($form->{partnumber}), like($form->{description})
);
} elsif ($sortorder eq "partnumber") {
$where .= qq| AND (partnumber ILIKE ?)|;
} elsif ($sortorder eq "partnumber") {
$where .= qq| AND (partnumber ILIKE ?)|;
- push(@values,
'%' . $form->{partnumber} . '%'
);
+ push(@values,
like($form->{partnumber})
);
} elsif ($sortorder eq "description") {
$where .= qq| AND (description ILIKE ?)|;
} elsif ($sortorder eq "description") {
$where .= qq| AND (description ILIKE ?)|;
- push(@values,
'%' . $form->{description} . '%'
);
+ push(@values,
like($form->{description})
);
$order = "description";
}
$order = "description";
}
@@
-1713,7
+1729,7
@@
sub prepare_parts_for_printing {
$sth->finish();
$sth->finish();
- my @columns = qw(ean image microfiche drawing
weight
);
+ my @columns = qw(ean image microfiche drawing);
$query = qq|SELECT id, | . join(', ', @columns) . qq|
FROM parts
$query = qq|SELECT id, | . join(', ', @columns) . qq|
FROM parts
@@
-1721,7
+1737,8
@@
sub prepare_parts_for_printing {
my %data = selectall_as_map($form, $dbh, $query, 'id', \@columns, @part_ids);
my %data = selectall_as_map($form, $dbh, $query, 'id', \@columns, @part_ids);
- map { $form->{TEMPLATE_ARRAYS}{$_} = [] } (qw(make model), @columns);
+ my %template_arrays;
+ map { $template_arrays{$_} = [] } (qw(make model), @columns);
foreach my $i (1 .. $rowcount) {
my $id = $form->{"${prefix}${i}"};
foreach my $i (1 .. $rowcount) {
my $id = $form->{"${prefix}${i}"};
@@
-1729,16
+1746,16
@@
sub prepare_parts_for_printing {
next if (!$id);
foreach (@columns) {
next if (!$id);
foreach (@columns) {
- push @{ $
form->{TEMPLATE_ARRAYS}
{$_} }, $data{$id}->{$_};
+ push @{ $
template_arrays
{$_} }, $data{$id}->{$_};
}
}
- push @{ $
form->{TEMPLATE_ARRAYS}
{make} }, [];
- push @{ $
form->{TEMPLATE_ARRAYS}
{model} }, [];
+ push @{ $
template_arrays
{make} }, [];
+ push @{ $
template_arrays
{model} }, [];
next if (!$makemodel{$id});
foreach my $ref (@{ $makemodel{$id} }) {
next if (!$makemodel{$id});
foreach my $ref (@{ $makemodel{$id} }) {
- map { push @{ $
form->{TEMPLATE_ARRAYS}
{$_}->[-1] }, $ref->{$_} } qw(make model);
+ map { push @{ $
template_arrays
{$_}->[-1] }, $ref->{$_} } qw(make model);
}
}
}
}
@@
-1749,9
+1766,10
@@
sub prepare_parts_for_printing {
my $id = $form->{"${prefix}${i}"};
next unless $id;
my $id = $form->{"${prefix}${i}"};
next unless $id;
- push @{ $
form->{TEMPLATE_ARRAYS}
{part_type} }, $parts_by_id{$id}->type;
+ push @{ $
template_arrays
{part_type} }, $parts_by_id{$id}->type;
}
}
+ return %template_arrays;
$main::lxdebug->leave_sub();
}
$main::lxdebug->leave_sub();
}