Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6e083cb8

Von Bernd Bleßmann vor mehr als 5 Jahren hinzugefügt

  • ID 6e083cb8df993623e4810599ba9d50b035ccb250
  • Vorgänger 8cbcd244
  • Nachfolger da8e5472

Neuer Workflow Lieferantenauftrag->Kreditorenbuchung

Für jedes Aufwandskonto der Positionen im Lieferantenauftrag wird eine
Zeile in der Kreditorenbuchung erstellt. Gebucht wird standardmäßig
auf des entsprechende Aufwandskonto. In der Mandantenkonfiguration
kann unter Standardkonten ein Konto ausgewählt werden, auf das dann
alle Zeilen gebucht werden.
Die Steuern werden übernommen, sofern diese für das ausgewählte
Aufwandskonto gültig sind. Ansonsten wird die Default-Steuer für das
Aufwandskonto gesetzt.
Der Quellauftrag wird geschlossen, wenn der Betrag aller
Kreditorenbuchungen, die aus Workflows aus dem Quellauftrag entstanden
sind, gleich dem Betrag des Quellauftrags ist.

Unterschiede anzeigen:

SL/AP.pm
41 41
use SL::MoreCommon;
42 42
use SL::DB::Default;
43 43
use SL::DB::Draft;
44
use SL::DB::Order;
45
use SL::DB::PurchaseInvoice;
44 46
use SL::Util qw(trim);
45 47
use SL::DB;
46 48
use Data::Dumper;
47

  
49
use List::Util qw(sum0);
48 50
use strict;
49 51

  
50 52
sub post_transaction {
......
155 157

  
156 158
    $form->new_lastmtime('ap');
157 159

  
160
    # Link this record to the record it was created from.
161
    my $convert_from_oe_id = delete $form->{convert_from_oe_id};
162
    if (!$form->{postasnew} && $convert_from_oe_id) {
163
      RecordLinks->create_links('dbh'        => $dbh,
164
                                'mode'       => 'ids',
165
                                'from_table' => 'oe',
166
                                'from_ids'   => $convert_from_oe_id,
167
                                'to_table'   => 'ap',
168
                                'to_id'      => $form->{id},
169
      );
170

  
171
      # Close the record it was created from if the amount of
172
      # all APs create from this record equals the records amount.
173
      my @links = RecordLinks->get_links('dbh'        => $dbh,
174
                                         'from_table' => 'oe',
175
                                         'from_id'    => $convert_from_oe_id,
176
                                         'to_table'   => 'ap',
177
      );
178

  
179
      my $amount_sum = sum0 map { SL::DB::PurchaseInvoice->new(id => $_->{to_id})->load->amount } @links;
180
      my $order      = SL::DB::Order->new(id => $convert_from_oe_id)->load;
181

  
182
      $order->update_attributes(closed => 1) if ($amount_sum - $order->amount) == 0;
183
    }
184

  
158 185
    # add individual transactions
159 186
    for my $i (1 .. $form->{rowcount}) {
160 187
      if ($form->{"amount_$i"} != 0) {

Auch abrufbar als: Unified diff