X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=916d41bda301b44fa854f3a336f98dc3fb86c48a;hb=b85b47c5656456624239794cf821c824a947a93f;hp=c5e36654dc57fe0c37243e4475a674694ee1f56c;hpb=3afbacf294bdbe21b08047c0a9fc1ad92f4c5c37;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index c5e36654d..916d41bda 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(); @@ -64,7 +65,7 @@ sub transactions { my $query = qq|SELECT o.id, o.ordnumber, o.transdate, o.reqdate, o.amount, ct.name, o.netamount, o.$form->{vc}_id, ex.$rate AS exchangerate, - o.closed, o.quonumber, o.shippingpoint, o.shipvia, + o.closed, o.delivered, o.quonumber, o.shippingpoint, o.shipvia, e.name AS employee FROM oe o JOIN $form->{vc} ct ON (o.$form->{vc}_id = ct.id) @@ -125,6 +126,12 @@ sub transactions { $query .= ($form->{open}) ? " AND o.closed = '0'" : " AND o.closed = '1'"; } + if (($form->{"notdelivered"} || $form->{"delivered"}) && + ($form->{"notdelivered"} ne $form->{"delivered"})) { + $query .= $form->{"delivered"} ? + " AND o.delivered " : " AND NOT o.delivered"; + } + my $sortorder = join ', ', ("o.id", $form->sort_columns(transdate, $ordnumber, name)); $sortorder = $form->{sort} if $form->{sort}; @@ -239,7 +246,7 @@ sub save { $form->parse_amount($myconfig, $form->{"${_}_$i"}) } qw(qty ship); - if ($form->{"qty_$i"}) { + if ($form->{"id_$i"}) { # get item baseunit $query = qq|SELECT p.unit @@ -459,6 +466,7 @@ Message: $form->{message}\r| if $form->{message}; intnotes = '$form->{intnotes}', curr = '$form->{currency}', closed = '$form->{closed}', + delivered = '| . ($form->{delivered} ? "t" : "f") . qq|', proforma = '$form->{proforma}', quotation = '$quotation', department_id = $form->{department_id}, @@ -524,27 +532,6 @@ sub close_orders { my ($self, $myconfig, $form) = @_; - for my $i (1 .. $form->{rowcount}) { - - map { - $form->{"${_}_$i"} = - $form->parse_amount($myconfig, $form->{"${_}_$i"}) - } qw(qty ship); - if ($delete_oe_id) { - $form->{"orderitems_id_$i"} = ""; - } - - if ($form->{"qty_$i"}) { - - # set values to 0 if nothing entered - $form->{"discount_$i"} = - $form->parse_amount($myconfig, $form->{"discount_$i"}); - - $form->{"sellprice_$i"} = - $form->parse_amount($myconfig, $form->{"sellprice_$i"}); - } - } - # get ids from $form map { push @ids, $form->{"ordnumber_$_"} if $form->{"ordnumber_$_"} } (1 .. $form->{rowcount}); @@ -560,6 +547,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 id = ?|, + $form->{"id"}); + $dbh->disconnect; + + $main::lxdebug->leave_sub(); +} + sub delete { $main::lxdebug->enter_sub(); @@ -708,7 +710,9 @@ sub retrieve { o.curr AS currency, e.name AS employee, o.employee_id, o.$form->{vc}_id, cv.name AS $form->{vc}, o.amount AS invtotal, o.closed, o.reqdate, o.quonumber, o.department_id, o.cusordnumber, - 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 + 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.delivered FROM oe o JOIN $form->{vc} cv ON (o.$form->{vc}_id = cv.id) LEFT JOIN employee e ON (o.employee_id = e.id) @@ -1005,12 +1009,14 @@ 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"}); - if ($form->{"qty_$i"} != 0) { + if ($form->{"id_$i"} != 0) { # add number, description and qty to $form->{number}, .... @@ -1165,7 +1171,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); } @@ -1176,7 +1184,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;