X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=37f6be4233c2a888965d8265682527c6adc5fda2;hb=6ca711a5e060318111719f02ce91a4c101e9e812;hp=8e0cfb955dba14fb2ca6817048ddf4313132f65c;hpb=ddbe3ea5ec297a58acc9ee3afc17156fb97be7f2;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index 8e0cfb955..37f6be423 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -66,6 +66,8 @@ sub transactions { qq|SELECT o.id, o.ordnumber, o.transdate, o.reqdate, | . qq| o.amount, ct.name, o.netamount, o.${vc}_id, o.globalproject_id, | . qq| o.closed, o.delivered, o.quonumber, o.shippingpoint, o.shipvia, | . + qq| o.transaction_description, | . + qq| o.marge_total, o.marge_percent, | . qq| ex.$rate AS exchangerate, | . qq| pr.projectnumber AS globalprojectnumber, | . qq| e.name AS employee | . @@ -101,6 +103,11 @@ sub transactions { push(@values, '%' . $form->{$vc} . '%'); } + if ($form->{employee_id}) { + $query .= " AND o.employee_id = ?"; + push @values, conv_i($form->{employee_id}); + } + if (!$form->{open} && !$form->{closed}) { $query .= " AND o.id = 0"; } elsif (!($form->{open} && $form->{closed})) { @@ -114,7 +121,7 @@ sub transactions { } if ($form->{$ordnumber}) { - $query .= qq| AND $ordnumber ILIKE ?|; + $query .= qq| AND o.$ordnumber ILIKE ?|; push(@values, '%' . $form->{$ordnumber} . '%'); } @@ -128,6 +135,11 @@ sub transactions { push(@values, conv_date($form->{transdateto})); } + if ($form->{transaction_description}) { + $query .= qq| AND o.transaction_description ILIKE ?|; + push(@values, '%' . $form->{transaction_description} . '%'); + } + my $sortorder = join(', ', ("o.id", $form->sort_columns("transdate", $ordnumber, "name"))); my %allowed_sort_columns = ("transdate" => "o.transdate", @@ -137,7 +149,8 @@ sub transactions { "quonumber" => "o.quonumber", "name" => "ct.name", "employee" => "e.name", - "shipvia" => "o.shipvia"); + "shipvia" => "o.shipvia", + "transaction_description" => "o.transaction_description"); if ($form->{sort} && grep($form->{sort}, keys(%allowed_sort_columns))) { $sortorder = $allowed_sort_columns{$form->{sort}}; } @@ -175,7 +188,7 @@ sub save { my $all_units = AM->retrieve_units($myconfig, $form); $form->{all_units} = $all_units; - ($null, $form->{employee_id}) = split /--/, $form->{employee}; + $form->{employee_id} = (split /--/, $form->{employee})[1] if !$form->{employee_id}; unless ($form->{employee_id}) { $form->get_employee($dbh); } @@ -202,13 +215,13 @@ sub save { do_query($form, $dbh, $query, $form->{id}, $form->{employee_id}); } - my $amount; - my $linetotal; - my $discount; + my $amount = 0; + my $linetotal = 0; + my $discount = 0; my $project_id; my $reqdate; my $taxrate; - my $taxamount; + my $taxamount = 0; my $fxsellprice; my %taxbase; my @taxaccounts; @@ -234,6 +247,10 @@ sub save { } my $baseqty = $form->{"qty_$i"} * $basefactor; + $form->{"marge_percent_$i"} = $form->parse_amount($myconfig, $form->{"marge_percent_$i"}) * 1; + $form->{"marge_absolut_$i"} = $form->parse_amount($myconfig, $form->{"marge_absolut_$i"}) * 1; + $form->{"lastcost_$i"} = $form->{"lastcost_$i"} * 1; + # set values to 0 if nothing entered $form->{"discount_$i"} = $form->parse_amount($myconfig, $form->{"discount_$i"}) / 100; @@ -313,7 +330,6 @@ sub save { # get pricegroup_id and save ist ($null, my $pricegroup_id) = split(/--/, $form->{"sellprice_pg_$i"}); $pricegroup_id *= 1; - $subtotal = $form->{"subtotal_$i"} * 1; # save detail record in orderitems table @values = (); @@ -323,13 +339,14 @@ sub save { } $query .= qq|trans_id, parts_id, description, longdescription, qty, base_qty, | . qq|sellprice, discount, unit, reqdate, project_id, serialnumber, ship, | . - qq|pricegroup_id, ordnumber, transdate, cusordnumber, subtotal) | . + qq|pricegroup_id, ordnumber, transdate, cusordnumber, subtotal, | . + qq|marge_percent, marge_total, lastcost) | . qq|VALUES (|; if($form->{"orderitems_id_$i"}) { $query .= qq|?,|; push(@values, $form->{"orderitems_id_$i"}); } - $query .= qq|?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; + $query .= qq|?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; push(@values, conv_i($form->{id}), conv_i($form->{"id_$i"}), $form->{"description_$i"}, $form->{"longdescription_$i"}, @@ -338,7 +355,9 @@ sub save { $form->{"unit_$i"}, conv_date($reqdate), conv_i($form->{"project_id_$i"}), $form->{"serialnumber_$i"}, $form->{"ship_$i"}, conv_i($pricegroup_id), $form->{"ordnumber_$i"}, conv_date($form->{"transdate_$i"}), - $form->{"cusordnumber_$i"}, $subtotal); + $form->{"cusordnumber_$i"}, $form->{"subtotal_$i"} ? 't' : 'f', + $form->{"marge_percent_$i"}, $form->{"marge_absolut_$i"}, + $form->{"lastcost_$i"}); do_query($form, $dbh, $query, @values); $form->{"sellprice_$i"} = $fxsellprice; @@ -370,45 +389,20 @@ sub save { ? $exchangerate : $form->parse_amount($myconfig, $form->{exchangerate}); - my $quotation; - - # fill in subject if there is none - if ($form->{type} =~ /_order$/) { - $quotation = '0'; - $form->{subject} = qq|$form->{label} $form->{ordnumber}| - unless $form->{subject}; - } else { - $quotation = '1'; - $form->{subject} = qq|$form->{label} $form->{quonumber}| - unless $form->{subject}; - } - - # if there is a message stuff it into the intnotes - my $cc = "Cc: $form->{cc}\\r\n" if $form->{cc}; - my $bcc = "Bcc: $form->{bcc}\\r\n" if $form->{bcc}; - my $now = scalar localtime; - $form->{intnotes} .= qq|\r -\r| if $form->{intnotes}; - - $form->{intnotes} .= qq|[email]\r -Date: $now -To: $form->{email}\r -$cc${bcc}Subject: $form->{subject}\r -\r -Message: $form->{message}\r| if $form->{message}; + my $quotation = $form->{type} =~ /_order$/ ? 'f' : 't'; ($null, $form->{department_id}) = split(/--/, $form->{department}); # save OE record $query = - qq|UPDATE oe set | . - qq|ordnumber = ?, quonumber = ?, cusordnumber = ?, transdate = ?, vendor_id = ?, | . - qq|customer_id = ?, amount = ?, netamount = ?, reqdate = ?, taxincluded = ?, | . - qq|shippingpoint = ?, shipvia = ?, notes = ?, intnotes = ?, curr = ?, closed = ?, | . - qq|delivered = ?, proforma = ?, quotation = ?, department_id = ?, language_id = ?, | . - qq|taxzone_id = ?, shipto_id = ?, payment_id = ?, delivery_vendor_id = ?, delivery_customer_id = ?, | . - qq|globalproject_id = ?, employee_id = ?, salesman_id = ?, cp_id = ? | . - qq|WHERE id = ?|; + qq|UPDATE oe SET + ordnumber = ?, quonumber = ?, cusordnumber = ?, transdate = ?, vendor_id = ?, + customer_id = ?, amount = ?, netamount = ?, reqdate = ?, taxincluded = ?, + shippingpoint = ?, shipvia = ?, notes = ?, intnotes = ?, curr = ?, closed = ?, + delivered = ?, proforma = ?, quotation = ?, department_id = ?, language_id = ?, + taxzone_id = ?, shipto_id = ?, payment_id = ?, delivery_vendor_id = ?, delivery_customer_id = ?, + globalproject_id = ?, employee_id = ?, salesman_id = ?, cp_id = ?, transaction_description = ?, marge_total = ?, marge_percent = ? + WHERE id = ?|; @values = ($form->{ordnumber}, $form->{quonumber}, $form->{cusordnumber}, conv_date($form->{transdate}), @@ -416,7 +410,7 @@ Message: $form->{message}\r| if $form->{message}; $amount, $netamount, conv_date($reqdate), $form->{taxincluded} ? 't' : 'f', $form->{shippingpoint}, $form->{shipvia}, $form->{notes}, $form->{intnotes}, - $form->{currency}, $form->{closed} ? 't' : 'f', + substr($form->{currency}, 0, 3), $form->{closed} ? 't' : 'f', $form->{delivered} ? "t" : "f", $form->{proforma} ? 't' : 'f', $quotation, conv_i($form->{department_id}), conv_i($form->{language_id}), conv_i($form->{taxzone_id}), @@ -425,6 +419,8 @@ Message: $form->{message}\r| if $form->{message}; conv_i($form->{delivery_customer_id}), conv_i($form->{globalproject_id}), conv_i($form->{employee_id}), conv_i($form->{salesman_id}), conv_i($form->{cp_id}), + $form->{transaction_description}, + $form->{marge_total} * 1, $form->{marge_percent} * 1, conv_i($form->{id})); do_query($form, $dbh, $query, @values); @@ -669,7 +665,7 @@ sub retrieve { qq| o.closed, o.reqdate, o.quonumber, o.department_id, o.cusordnumber, | . qq| d.description AS department, o.payment_id, o.language_id, o.taxzone_id, | . qq| o.delivery_customer_id, o.delivery_vendor_id, o.proforma, o.shipto_id, | . - qq| o.globalproject_id, o.delivered | . + qq| o.globalproject_id, o.delivered, o.transaction_description | . qq|FROM oe o | . qq|JOIN ${vc} cv ON (o.${vc}_id = cv.id) | . qq|LEFT JOIN employee e ON (o.employee_id = e.id) | . @@ -754,7 +750,7 @@ sub retrieve { qq| oe.ordnumber AS ordnumber_oe, oe.transdate AS transdate_oe, oe.cusordnumber AS cusordnumber_oe, | . qq| p.partnumber, p.assembly, o.description, o.qty, | . qq| o.sellprice, o.parts_id AS id, o.unit, o.discount, p.bin, p.notes AS partnotes, p.inventory_accno_id AS part_inventory_accno_id, | . - qq| o.reqdate, o.project_id, o.serialnumber, o.ship, | . + qq| o.reqdate, o.project_id, o.serialnumber, o.ship, o.lastcost, | . qq| o.ordnumber, o.transdate, o.cusordnumber, o.subtotal, o.longdescription, | . qq| pr.projectnumber, p.formel, | . qq| pg.partsgroup, o.pricegroup_id, (SELECT pricegroup FROM pricegroup WHERE id=o.pricegroup_id) as pricegroup | .