X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=279b08cce9bc3a00236995f6b295d2d5d7bcaeac;hb=ab3f3ed87a12c70d9538b1a07fc0e4659dc43d28;hp=e36a635eea77884047a6f5a6ecdcda11a0ead5a1;hpb=dcb372751d2a810aabcb850532a72f3c3133c5f5;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index e36a635ee..279b08cce 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -115,6 +115,7 @@ sub transactions { qq| ct.${vc}number AS vcnumber, ct.country, ct.ustid, ct.business_id, | . qq| tz.description AS taxzone | . $periodic_invoices_columns . + qq| , o.order_probability, o.expected_billing_date, (o.netamount * o.order_probability / 100) AS expected_netamount | . qq|FROM oe o | . qq|JOIN $vc ct ON (o.${vc}_id = ct.id) | . qq|LEFT JOIN employee e ON (o.employee_id = e.id) | . @@ -243,6 +244,26 @@ SQL $query .= qq| AND ${not} COALESCE(pcfg.active, 'f')|; } + if ($form->{reqdate_unset_or_old}) { + $query .= qq| AND ((o.reqdate IS NULL) OR (o.reqdate < date_trunc('month', current_date)))|; + } + + if (($form->{order_probability_value} || '') ne '') { + my $op = $form->{order_probability_value} eq 'le' ? '<=' : '>='; + $query .= qq| AND (o.order_probability ${op} ?)|; + push @values, $form->{order_probability_value}; + } + + if ($form->{expected_billing_date_from}) { + $query .= qq| AND (o.expected_billing_date >= ?)|; + push @values, conv_date($form->{expected_billing_date_from}); + } + + if ($form->{expected_billing_date_to}) { + $query .= qq| AND (o.expected_billing_date <= ?)|; + push @values, conv_date($form->{expected_billing_date_to}); + } + my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC'; my $sortorder = join(', ', map { "${_} ${sortdir} " } ("o.id", $form->sort_columns("transdate", $ordnumber, "name"))); my %allowed_sort_columns = ( @@ -372,8 +393,8 @@ sub save { $query = qq|SELECT nextval('id')|; ($form->{id}) = selectrow_query($form, $dbh, $query); - $query = qq|INSERT INTO oe (id, ordnumber, employee_id, currency_id) VALUES (?, '', ?, (SELECT currency_id FROM defaults))|; - do_query($form, $dbh, $query, $form->{id}, $form->{employee_id}); + $query = qq|INSERT INTO oe (id, ordnumber, employee_id, currency_id, taxzone_id) VALUES (?, '', ?, (SELECT currency_id FROM defaults), ?)|; + do_query($form, $dbh, $query, $form->{id}, $form->{employee_id}, $form->{taxzone_id}); } my $amount = 0; @@ -561,6 +582,7 @@ sub save { delivered = ?, proforma = ?, quotation = ?, department_id = ?, language_id = ?, taxzone_id = ?, shipto_id = ?, payment_id = ?, delivery_vendor_id = ?, delivery_customer_id = ?,delivery_term_id = ?, globalproject_id = ?, employee_id = ?, salesman_id = ?, cp_id = ?, transaction_description = ?, marge_total = ?, marge_percent = ? + , order_probability = ?, expected_billing_date = ? WHERE id = ?|; @values = ($form->{ordnumber} || '', $form->{quonumber}, @@ -581,15 +603,16 @@ sub save { conv_i($form->{salesman_id}), conv_i($form->{cp_id}), $form->{transaction_description}, $form->{marge_total} * 1, $form->{marge_percent} * 1, + $form->{order_probability} * 1, conv_date($form->{expected_billing_date}), conv_i($form->{id})); do_query($form, $dbh, $query, @values); $form->{ordtotal} = $amount; - # add shipto $form->{name} = $form->{ $form->{vc} }; $form->{name} =~ s/--\Q$form->{"$form->{vc}_id"}\E//; + # add shipto if (!$form->{shipto_id}) { $form->add_shipto($dbh, $form->{id}, "OE"); } @@ -811,6 +834,7 @@ sub retrieve { d.description AS department, o.payment_id, o.language_id, o.taxzone_id, o.delivery_customer_id, o.delivery_vendor_id, o.proforma, o.shipto_id, o.globalproject_id, o.delivered, o.transaction_description, o.delivery_term_id + , o.order_probability, o.expected_billing_date FROM oe o JOIN ${vc} cv ON (o.${vc}_id = cv.id) LEFT JOIN employee e ON (o.employee_id = e.id) @@ -898,8 +922,8 @@ sub retrieve { JOIN parts p ON (o.parts_id = p.id) JOIN oe ON (o.trans_id = oe.id) LEFT JOIN chart c1 ON ((SELECT inventory_accno_id FROM buchungsgruppen WHERE id=p.buchungsgruppen_id) = c1.id) - LEFT JOIN chart c2 ON ((SELECT income_accno_id_$form->{taxzone_id} FROM buchungsgruppen WHERE id=p.buchungsgruppen_id) = c2.id) - LEFT JOIN chart c3 ON ((SELECT expense_accno_id_$form->{taxzone_id} FROM buchungsgruppen WHERE id=p.buchungsgruppen_id) = c3.id) + LEFT JOIN chart c2 ON ((SELECT tc.income_accno_id FROM taxzone_charts tc WHERE tc.taxzone_id = '$form->{taxzone_id}' and tc.buchungsgruppen_id = p.buchungsgruppen_id) = c2.id) + LEFT JOIN chart c3 ON ((SELECT tc.expense_accno_id FROM taxzone_charts tc WHERE tc.taxzone_id = '$form->{taxzone_id}' and tc.buchungsgruppen_id = p.buchungsgruppen_id) = c3.id) LEFT JOIN project pr ON (o.project_id = pr.id) LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) | . ($form->{id}