X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDO.pm;h=6c3991f00c9593294307f2e60fd4ae96d35da726;hb=83a78eea7bb24102f0b255bd350b7dd343e7a8e4;hp=80b1ae352f2bbb9306c54385dbc858954757e546;hpb=cff0e9be7e6925c22dab7cb0b52ab9e23af0d56a;p=kivitendo-erp.git diff --git a/SL/DO.pm b/SL/DO.pm index 80b1ae352..6c3991f00 100644 --- a/SL/DO.pm +++ b/SL/DO.pm @@ -67,9 +67,10 @@ sub transactions { my $query = qq|SELECT dord.id, dord.donumber, dord.ordnumber, dord.cusordnumber, dord.transdate, dord.reqdate, - ct.${vc}number, ct.name, dord.${vc}_id, dord.globalproject_id, + ct.${vc}number, ct.name, ct.business_id, + dord.${vc}_id, dord.globalproject_id, dord.closed, dord.delivered, dord.shippingpoint, dord.shipvia, - dord.transaction_description, + dord.transaction_description, dord.itime::DATE AS insertdate, pr.projectnumber AS globalprojectnumber, dep.description AS department, e.name AS employee, @@ -98,6 +99,11 @@ sub transactions { push @values, conv_i($form->{project_id}), conv_i($form->{project_id}); } + if ($form->{"business_id"}) { + push @where, qq|ct.business_id = ?|; + push @values, conv_i($form->{"business_id"}); + } + if ($form->{"${vc}_id"}) { push @where, qq|dord.${vc}_id = ?|; push @values, $form->{"${vc}_id"}; @@ -163,6 +169,16 @@ sub transactions { push @values, conv_date($form->{reqdateto}); } + if($form->{insertdatefrom}) { + push @where, qq|dord.itime::DATE >= ?|; + push@values, conv_date($form->{insertdatefrom}); + } + + if($form->{insertdateto}) { + push @where, qq|dord.itime::DATE <= ?|; + push @values, conv_date($form->{insertdateto}); + } + if (@where) { $query .= " WHERE " . join(" AND ", map { "($_)" } @where); } @@ -179,6 +195,7 @@ sub transactions { "shipvia" => "dord.shipvia", "transaction_description" => "dord.transaction_description", "department" => "lower(dep.description)", + "insertdate" => "dord.itime", ); my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC'; @@ -673,7 +690,7 @@ sub retrieve { dord.shipto_id, dord.globalproject_id, dord.delivered, dord.transaction_description, dord.taxzone_id, dord.taxincluded, dord.terms, (SELECT cu.name FROM currencies cu WHERE cu.id=dord.currency_id) AS currency, - dord.delivery_term_id + dord.delivery_term_id, dord.itime::DATE AS insertdate FROM delivery_orders dord JOIN ${vc} cv ON (dord.${vc}_id = cv.id) LEFT JOIN employee e ON (dord.employee_id = e.id) @@ -875,18 +892,22 @@ sub order_details { my $ic_cvar_configs = CVar->get_configs(module => 'IC'); my $project_cvar_configs = CVar->get_configs(module => 'Projects'); + # get some values of parts from db on store them in extra array, + # so that they can be sorted in later + my %prepared_template_arrays = IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form); + my @prepared_arrays = keys %prepared_template_arrays; + $form->{TEMPLATE_ARRAYS} = { }; - IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form); my @arrays = - qw(runningnumber number description longdescription qty unit + qw(runningnumber number description longdescription qty qty_nofmt unit partnotes serialnumber reqdate projectnumber projectdescription - weight lineweight + weight weight_nofmt lineweight lineweight_nofmt si_runningnumber si_number si_description si_warehouse si_bin si_chargenumber si_bestbefore si_qty si_qty_nofmt si_unit); - map { $form->{TEMPLATE_ARRAYS}->{$_} = [] } (@arrays); + map { $form->{TEMPLATE_ARRAYS}->{$_} = [] } (@arrays, @prepared_arrays); push @arrays, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs }; push @arrays, map { "project_cvar_$_->{name}" } @{ $project_cvar_configs }; @@ -902,10 +923,11 @@ sub order_details { next if (!$form->{"id_$i"}); if ($item->[1] ne $sameitem) { + push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'partsgroup'); push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, qq|$item->[1]|); $sameitem = $item->[1]; - map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} @arrays)); + map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} (@arrays, @prepared_arrays))); map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, []) } grep({ $_ =~ /^si_/} @arrays)); $si_position++; } @@ -932,6 +954,9 @@ sub order_details { my $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || { 'factor' => 1 }; my $project = $projects_by_id{$form->{"project_id_$i"}} || SL::DB::Project->new; + push(@{ $form->{TEMPLATE_ARRAYS}{$_} }, $prepared_template_arrays{$_}[$i - 1]) for @prepared_arrays; + + push @{ $form->{TEMPLATE_ARRAYS}{entry_type} }, 'normal'; push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} }, $position; push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; @@ -992,15 +1017,17 @@ sub order_details { while (my $ref = $h_pg->fetchrow_hashref("NAME_lc")) { if ($form->{groupitems} && $ref->{partsgroup} ne $sameitem) { - map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} @arrays)); + map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} (@arrays, @prepared_arrays))); map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, []) } grep({ $_ =~ /^si_/} @arrays)); $sameitem = ($ref->{partsgroup}) ? $ref->{partsgroup} : "--"; + push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'assembly-item-partsgroup'); push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, $sameitem); $si_position++; } - push(@{ $form->{TEMPLATE_ARRAYS}->{"description"} }, $form->format_amount($myconfig, $ref->{qty} * $form->{"qty_$i"}) . qq| -- $ref->{partnumber}, $ref->{description}|); - map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} @arrays)); + push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'assembly-item'); + push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, $form->format_amount($myconfig, $ref->{qty} * $form->{"qty_$i"}) . qq| -- $ref->{partnumber}, $ref->{description}|); + map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} (@arrays, @prepared_arrays))); map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, []) } grep({ $_ =~ /^si_/} @arrays)); $si_position++; }