Revision 6e083cb8
Von Bernd Bleßmann vor mehr als 5 Jahren hinzugefügt
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
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.