Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 70ae535d

Von Jan Büren vor mehr als 2 Jahren hinzugefügt

  • ID 70ae535d2d20cf6838cd95e892bb1f78081d5b01
  • Vorgänger 7a778ade
  • Nachfolger 74c871e5

Unterversionen für Angebote/Aufträge

Versionen werden finalisiert sobald sie per E-Mail rausgeschickt wurden
Danach ist die Bearbeitung gesperrt, aber es ist möglich eine neue
Unterversion des Belegs zu erstellen.
Unterversionen bekommen den Postfix -x, wobei x:= 2 .. n
Die Unterversion wird dann in die Belegnummer übernommen, es wird aber
kein neuer Beleg erstellt. Die alte Version ist über DMS/E-Mail-Journal
noch als PDF erkennbar.

Unterschiede anzeigen:

SL/DB/Order.pm
8 8
use List::Util qw(max);
9 9
use List::MoreUtils qw(any);
10 10

  
11
use SL::DBUtils ();
11 12
use SL::DB::MetaSetup::Order;
12 13
use SL::DB::Manager::Order;
13 14
use SL::DB::Helper::Attr;
......
57 58
      sort_by      => 'notes.itime',
58 59
    }
59 60
  },
61
  order_version => {
62
    type                   => 'one to many',
63
    class                  => 'SL::DB::OrderVersion',
64
    column_map             => { id => 'oe_id' },
65
  },
60 66
);
61 67

  
62 68
SL::DB::Helper::Attr::make(__PACKAGE__, daily_exchangerate => 'numeric');
......
547 553
    $self->date->to_kivitendo;
548 554
}
549 555

  
556
sub current_version_number {
557
  my ($self) = @_;
558

  
559
  my $query = <<EOSQL;
560
    SELECT max(version)
561
    FROM oe_version
562
    WHERE (oe_id = ?)
563
EOSQL
564

  
565
  my ($current_version_number) = SL::DBUtils::selectfirst_array_query($::form, $self->db->dbh, $query, ($self->id));
566
  die "Invalid State. No version linked" unless $current_version_number;
567

  
568
  return $current_version_number;
569
}
570

  
571
sub is_final_version {
572
  my ($self) = @_;
573

  
574
  my $order_versions = SL::DB::Manager::OrderVersion->get_all(where => [ oe_id => $self->id, final_version => 0 ]);
575
  die "Invalid version state" unless scalar @{ $order_versions } < 2;
576
  my $final_version = scalar @{ $order_versions } == 1 ? 0 : 1;
577

  
578
  return $final_version;
579
}
580

  
550 581
1;
551 582

  
552 583
__END__

Auch abrufbar als: Unified diff