Revision b7b5192a
Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt
SL/OE.pm | ||
---|---|---|
467 | 467 |
$form->save_status($dbh); |
468 | 468 |
|
469 | 469 |
# Link this record to the records it was created from. |
470 |
RecordLinks->create_links('dbh' => $dbh, |
|
471 |
'mode' => 'ids', |
|
472 |
'from_table' => 'oe', |
|
473 |
'from_ids' => $form->{convert_from_oe_ids}, |
|
474 |
'to_table' => 'oe', |
|
475 |
'to_id' => $form->{id}, |
|
476 |
); |
|
470 |
$form->{convert_from_oe_ids} =~ s/^\s+//; |
|
471 |
$form->{convert_from_oe_ids} =~ s/\s+$//; |
|
472 |
my @convert_from_oe_ids = split m/\s+/, $form->{convert_from_oe_ids}; |
|
477 | 473 |
delete $form->{convert_from_oe_ids}; |
478 | 474 |
|
475 |
if (scalar @convert_from_oe_ids) { |
|
476 |
RecordLinks->create_links('dbh' => $dbh, |
|
477 |
'mode' => 'ids', |
|
478 |
'from_table' => 'oe', |
|
479 |
'from_ids' => \@convert_from_oe_ids, |
|
480 |
'to_table' => 'oe', |
|
481 |
'to_id' => $form->{id}, |
|
482 |
); |
|
483 |
|
|
484 |
$self->_close_quotations_rfqs('dbh' => $dbh, |
|
485 |
'from_id' => \@convert_from_oe_ids, |
|
486 |
'to_id' => $form->{id}); |
|
487 |
} |
|
488 |
|
|
479 | 489 |
if (($form->{currency} ne $form->{defaultcurrency}) && !$exchangerate) { |
480 | 490 |
if ($form->{vc} eq 'customer') { |
481 | 491 |
$form->update_exchangerate($dbh, $form->{currency}, $form->{transdate}, $form->{exchangerate}, 0); |
... | ... | |
498 | 508 |
return $rc; |
499 | 509 |
} |
500 | 510 |
|
501 |
# this function closes multiple orders given in $form->{ordnumber_#}. |
|
502 |
# use this for multiple orders that don't have to be saved back |
|
503 |
# single orders should use OE::save instead. |
|
504 |
sub close_orders { |
|
511 |
sub _close_quotations_rfqs { |
|
505 | 512 |
$main::lxdebug->enter_sub(); |
506 | 513 |
|
507 |
my ($self, $myconfig, $form) = @_; |
|
514 |
my $self = shift; |
|
515 |
my %params = @_; |
|
508 | 516 |
|
509 |
# get ids from $form |
|
510 |
map { push @ids, $form->{"ordnumber_$_"} if $form->{"ordnumber_$_"} } |
|
511 |
(1 .. $form->{rowcount}); |
|
517 |
Common::check_params(\%params, qw(from_id to_id)); |
|
512 | 518 |
|
513 |
my $dbh = $form->dbconnect($myconfig); |
|
514 |
$query = qq|UPDATE oe SET | . |
|
515 |
qq|closed = TRUE | . |
|
516 |
qq|WHERE ordnumber IN (| |
|
517 |
. join(', ', map { $dbh->quote($_) } @ids) . qq|)|; |
|
518 |
$dbh->do($query) || $form->dberror($query); |
|
519 |
$dbh->disconnect; |
|
519 |
my $myconfig = \%main::myconfig; |
|
520 |
my $form = $main::form; |
|
520 | 521 |
|
521 |
$main::lxdebug->leave_sub(); |
|
522 |
} |
|
522 |
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); |
|
523 | 523 |
|
524 |
sub close_order {
|
|
525 |
$main::lxdebug->enter_sub();
|
|
524 |
my $query = qq|SELECT quotation FROM oe WHERE id = ?|;
|
|
525 |
my $sth = prepare_query($form, $dbh, $query);
|
|
526 | 526 |
|
527 |
my ($self, $myconfig, $form) = @_;
|
|
527 |
do_statement($form, $sth, $query, conv_i($params{to_id}));
|
|
528 | 528 |
|
529 |
return $main::lxdebug->leave_sub() unless ($form->{"id"});
|
|
529 |
my ($quotation) = $sth->fetchrow_array();
|
|
530 | 530 |
|
531 |
my $dbh = $form->dbconnect($myconfig); |
|
532 |
do_query($form, $dbh, qq|UPDATE oe SET closed = TRUE where id = ?|, |
|
533 |
$form->{"id"}); |
|
534 |
$dbh->disconnect; |
|
531 |
if ($quotation) { |
|
532 |
$main::lxdebug->leave_sub(); |
|
533 |
return; |
|
534 |
} |
|
535 |
|
|
536 |
my @close_ids; |
|
537 |
|
|
538 |
foreach my $from_id (@{ $params{from_id} }) { |
|
539 |
$from_id = conv_i($from_id); |
|
540 |
do_statement($form, $sth, $query, $from_id); |
|
541 |
($quotation) = $sth->fetchrow_array(); |
|
542 |
push @close_ids, $from_id if ($quotation); |
|
543 |
} |
|
544 |
|
|
545 |
$sth->finish(); |
|
546 |
|
|
547 |
if (scalar @close_ids) { |
|
548 |
$query = qq|UPDATE oe SET closed = TRUE WHERE id IN (| . join(', ', ('?') x scalar @close_ids) . qq|)|; |
|
549 |
do_query($form, $dbh, $query, @close_ids); |
|
550 |
|
|
551 |
$dbh->commit() unless ($params{dbh}); |
|
552 |
} |
|
535 | 553 |
|
536 | 554 |
$main::lxdebug->leave_sub(); |
537 | 555 |
} |
Auch abrufbar als: Unified diff
Bei Wandlung von Angeboten/Preisanfragen in Aufträge erst beim Speichern der Aufträge das Angebot/die Preisanfrage schließen.