Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f0868a2c

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

  • ID f0868a2c56afb5e9fed8aead355213c88cf3911a
  • Vorgänger d7764194
  • Nachfolger 6d270ae6

Anzahlungs-Rg.: Kommentare f. Todos

Unterschiede anzeigen:

SL/IS.pm
my $clearing_chart = SL::DB::Chart->new(id => $::instance_conf->get_advance_payment_clearing_chart_id)->load;
die "No Clearing Chart for Advance Payment" unless ref $clearing_chart eq 'SL::DB::Chart';
foreach my $invoice_for_advance_payment (@$invoices_for_advance_payment) {
# delete ? post twice case ?
# delete ?
# --> is implemented below (bookings are marked in memo field)
#
# post twice case ?
# ?
#
# TODO: helper table acc_trans_advance_payment
# trans_id for final invoice connects to acc_trans_id here
# my $booking = SL::DB::AccTrans->new( ...)
# --> helper table not nessessary because of mark in memo field
#
# TODO: If final_invoice change (delete storno) delete all connectin acc_trans entries, if
# period is not closed
# --> no problem because gldate of reverse booking is date of final invoice
# if deletion of final invoice is allowed, reverting bookings in invoices
# for advance payment are allowed, too.
# $booking->id, $self->id in helper table
$form->{amount}->{$invoice_for_advance_payment->id}->{$clearing_chart->accno} = -1 * $invoice_for_advance_payment->netamount;
$form->{memo} ->{$invoice_for_advance_payment->id}->{$clearing_chart->accno} = 'reverse booking by final invoice';
......
# if we delete a final invoice, the reverse bookings for the clearing account in the invoice for advance payment
# must be deleted as well
my $invoices_for_advance_payment = $self->_get_invoices_for_advance_payment($form->{convert_from_ar_ids} || $form->{id});
# Todo: allow only if invoice for advance payment is not paid.
# die if any { $_->paid } for @$invoices_for_advance_payment;
my @trans_ids_to_consider = map { $_->id } @$invoices_for_advance_payment;
if (scalar @trans_ids_to_consider) {
my $query = sprintf 'DELETE FROM acc_trans WHERE memo LIKE ? AND trans_id IN (%s)', join ', ', ("?") x scalar @trans_ids_to_consider;

Auch abrufbar als: Unified diff