Revision f36da7b6
Von Kivitendo Admin vor fast 8 Jahren hinzugefügt
SL/DB/BankTransaction.pm | ||
---|---|---|
71 | 71 |
remote_account_number => 3, |
72 | 72 |
skonto_exact_amount => 5, |
73 | 73 |
wrong_sign => -1, |
74 |
sepa_export_item => 5, |
|
74 | 75 |
); |
75 | 76 |
|
76 | 77 |
my ($agreement,$rule_matches); |
... | ... | |
114 | 115 |
|
115 | 116 |
#search invoice number in purpose |
116 | 117 |
my $invnumber = $invoice->invnumber; |
117 |
# invnumbernhas to have at least 3 characters
|
|
118 |
# invnumber has to have at least 3 characters
|
|
118 | 119 |
my $squashed_purpose = $self->purpose; |
119 | 120 |
$squashed_purpose =~ s/ //g; |
120 | 121 |
if (length($invnumber) > 4 && $squashed_purpose =~ /$invnumber/ && $invoice->is_sales){ |
... | ... | |
206 | 207 |
}; |
207 | 208 |
}; |
208 | 209 |
|
210 |
# if there is exactly one non-executed sepa_export_item for the invoice |
|
211 |
if ( my $seis = $invoice->find_sepa_export_items({ executed => 0 }) ) { |
|
212 |
if ( scalar @$seis == 1 ) { |
|
213 |
my $sei = $seis->[0]; |
|
214 |
|
|
215 |
# test for amount and id matching only, sepa transfer date and bank |
|
216 |
# transaction date needn't match |
|
217 |
my $arap = $invoice->is_sales ? 'ar' : 'ap'; |
|
218 |
if ( abs($self->amount) == ($sei->amount) |
|
219 |
&& $invoice->id == $sei->arap_id |
|
220 |
) { |
|
221 |
$agreement += $points{sepa_export_item}; |
|
222 |
$rule_matches .= 'sepa_export_item(' . $points{'sepa_export_item'} . ') '; |
|
223 |
}; |
|
224 |
} else { |
|
225 |
# zero or more than one sepa_export_item, do nothing for this invoice |
|
226 |
# zero: do nothing, no sepa_export_item exists, no match |
|
227 |
# more than one: does this ever apply? Currently you can't create sepa |
|
228 |
# exports for invoices that already have a non-executed sepa_export |
|
229 |
}; |
|
230 |
}; |
|
231 |
|
|
209 | 232 |
return ($agreement,$rule_matches); |
210 | 233 |
}; |
211 | 234 |
|
Auch abrufbar als: Unified diff
"Kontoauszug verbuchen - SEPA-Zahlungen berücksichtigen und schließen
Erstellt man SEPA-Überweisungen für das Bankprogramm, verbucht die
Zahlungsausgänge aber per "Kontoauszug verbuchen", wird der
ursprüngliche SEPA-Prozess unterbrochen. Dort war vorgesehen, daß man
nach dem Import/Export den SEPA-Export manuell abschliesst, wodurch
automatisch die betroffenen Rechnungen bezahlt wurden, mit dem
Zahlungsdatum laut SEPA-Export. Entfällt dieser Schritt wegen Verbuchung
per Kontoauszug bleiben die SEPA-Exporte hingegen immer offen. Außer daß
die Liste immer weiter wächst hat das auch den Effekt, daß für
Rechnungen mit noch offenen SEPA-Exports nicht erneut SEPA-Überweisungen
erstellt werden können, was bei Teilzahlungen aber erforderlich ist.
Mit dieser Erweiterung wird nun beim "Kontoauszug verbuchen" auch
geprüft, ob es für die Rechnung eine SEPA-Anweisung gibt, und hierfür
extra Punkte vergeben. Außerdem wird bei erfolgreicher Zahlung der
Rechnung auch der SEPA-Export für die Rechnung geschlossen.
Wenn dabei festgestellt wird, daß alle Export einer SEPA-Export-Gruppe
bezahlt sind, wird auch die SEPA-Export-Gruppe geschlossen.