X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=e8127a27d11277cb02ad01deea7bda8ce187cfa4;hb=aa1102e99b95c7ffc7bfb0078af520429595b702;hp=18e48bdd666a1691ae58f9e4a5a8955f4b06a839;hpb=80ec19fe41dfa899593655963628334ab656ae54;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index 18e48bdd6..e8127a27d 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -35,6 +35,7 @@ package OE; use SL::AM; +use SL::DBUtils; sub transactions { $main::lxdebug->enter_sub(); @@ -560,6 +561,21 @@ sub close_orders { $main::lxdebug->leave_sub(); } +sub close_order { + $main::lxdebug->enter_sub(); + + my ($self, $myconfig, $form) = @_; + + $main::lxdebug->leave_sub() unless ($form->{"id"}); + + my $dbh = $form->dbconnect($myconfig); + do_query($form, $dbh, qq|UPDATE oe SET closed = TRUE where ordnumber = ?|, + $form->{"id"}); + $dbh->disconnect; + + $main::lxdebug->leave_sub(); +} + sub delete { $main::lxdebug->enter_sub(); @@ -787,10 +803,9 @@ sub retrieve { my %oid = ('Pg' => 'oid', 'Oracle' => 'rowid'); - my $transdate = "'$form->{transdate}'"; - if (!$transdate) { - $transdate = "current_date"; - } + my $transdate = + $form->{transdate} ? $dbh->quote($form->{transdate}) : "current_date"; + if(!$form->{taxzone_id}) { $form->{taxzone_id} = 0; } @@ -873,9 +888,9 @@ sub retrieve { $accno_id = ($form->{vc} eq "customer") ? $ref->{income_accno} : $ref->{expense_accno}; $query = qq|SELECT c.accno, t.taxdescription, t.rate, t.taxnumber - FROM tax t LEFT JOIN chart c ON (c.id=t.chart_id) - WHERE t.taxkey in (SELECT taxkey_id from chart where accno = '$accno_id') - ORDER BY accno|; + FROM tax t LEFT JOIN chart c on (c.id=t.chart_id) + WHERE t.id in (SELECT tk.tax_id from taxkeys tk where tk.chart_id = (SELECT id from chart WHERE accno='$accno_id') AND startdate<=$transdate ORDER BY startdate desc LIMIT 1) + ORDER BY c.accno|; $stw = $dbh->prepare($query); $stw->execute || $form->dberror($query); $ref->{taxaccounts} = ""; @@ -1006,7 +1021,9 @@ sub order_details { $sameitem = $item->[1]; map { push(@{ $form->{$_} }, "") } - qw(runningnumber number qty ship unit bin partnotes serialnumber reqdate sellprice listprice netprice discount linetotal); + qw(runningnumber number qty ship unit bin partnotes + serialnumber reqdate sellprice listprice netprice + discount p_discount linetotal); } $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"}); @@ -1166,7 +1183,9 @@ sub order_details { while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { if ($form->{groupitems} && $ref->{partsgroup} ne $sameitem) { map { push(@{ $form->{$_} }, "") } - qw(runningnumber ship bin serialnumber number unit bin qty reqdate sellprice listprice netprice discount linetotal nodiscount_linetotal); + qw(runningnumber ship bin serialnumber number unit bin qty + reqdate sellprice listprice netprice discount p_discount + linetotal nodiscount_linetotal); $sameitem = ($ref->{partsgroup}) ? $ref->{partsgroup} : "--"; push(@{ $form->{description} }, $sameitem); } @@ -1177,7 +1196,9 @@ sub order_details { . qq|, $ref->{partnumber}, $ref->{description}|); map { push(@{ $form->{$_} }, "") } - qw(number unit qty runningnumber ship bin serialnumber reqdate sellprice listprice netprice discount linetotal nodiscount_linetotal); + qw(number unit qty runningnumber ship bin serialnumber reqdate + sellprice listprice netprice discount p_discount linetotal + nodiscount_linetotal); } $sth->finish;