Revision 69b298a0
Von G. Richardson vor mehr als 7 Jahren hinzugefügt
SL/DATEV.pm | ||
---|---|---|
|
||
return { download_token => $self->download_token, filenames => $params{filename} };
|
||
}
|
||
|
||
sub check_vcnumbers_are_valid_pk_numbers {
|
||
my ($self) = @_;
|
||
|
||
my $length_of_accounts = length(SL::DB::Manager::Chart->get_first(where => [charttype => 'A'])->accno) // 4;
|
||
my $pk_length = $length_of_accounts + 1;
|
||
my $query = <<"SQL";
|
||
SELECT customernumber AS vcnumber FROM customer WHERE customernumber !~ '^[[:digit:]]{$pk_length}\$'
|
||
UNION
|
||
SELECT vendornumber AS vcnumber FROM vendor WHERE vendornumber !~ '^[[:digit:]]{$pk_length}\$'
|
||
LIMIT 1;
|
||
SQL
|
||
my ($has_non_pk_accounts) = selectrow_query($::form, SL::DB->client->dbh, $query);
|
||
return defined $has_non_pk_accounts ? 0 : 1;
|
||
}
|
||
|
||
sub DESTROY {
|
||
clean_temporary_directories();
|
||
}
|
||
... | ... | |
|
||
Usage: _csv_buchungsexport_to_file($self, data => $self->csv_buchungsexport);
|
||
|
||
=item check_vcnumbers_are_valid_pk_numbers
|
||
|
||
Returns 1 if all vcnumbers are suitable for the DATEV export, 0 if not.
|
||
|
||
Finds the default length of charts (e.g. 4), adds 1 for the pk chart length
|
||
(e.g. 5), and checks the database for any customers or vendors whose customer-
|
||
or vendornumber doesn't consist of only numbers with exactly that length. E.g.
|
||
for a chart length of four "10001" would be ok, but not "10001b" or "1000".
|
||
|
||
All vcnumbers are checked, obsolete customers or vendors aren't exempt.
|
||
|
||
There is also no check for the typical customer range 10000-69999 and the
|
||
typical vendor range 70000-99999.
|
||
|
||
=back
|
||
|
bin/mozilla/datev.pl | ||
---|---|---|
|
||
$::form->header;
|
||
$::form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all_sorted;
|
||
$::form->{show_pk_option} = SL::DATEV->new->check_vcnumbers_are_valid_pk_numbers;
|
||
print $::form->parse_html_template('datev/export_bewegungsdaten');
|
||
|
||
$::lxdebug->leave_sub;
|
templates/webpages/datev/export_bewegungsdaten.html | ||
---|---|---|
<td><hr size=3 noshade></td>
|
||
</tr>
|
||
[% END %]
|
||
[% IF show_pk_option %]
|
||
<tr>
|
||
<td>
|
||
<table>
|
||
... | ... | |
<tr>
|
||
<td><hr size=3 noshade></td>
|
||
</tr>
|
||
[% END %]
|
||
</table>
|
||
|
||
<input type=hidden name=beraternr value="[% beraternr %]">
|
Auch abrufbar als: Unified diff
DATEV-Export: Personenkontenoption nur anzeigen wenn Konten passen
Die Option "als Personenkonten exportieren" wird nur angezeigt, wenn
alle Kunden- und Lieferantennummern in das DATEV-Kontonummerschema
passen. Anhaken muß man die Checkbox allerdings trotzdem noch.
Besser wäre eine zentrale Konfiguration "DATEV-Export mit Personenkonten
exportieren" die dann auch beim Speichern/Anlegen von Konten immer
prüft, ob das Kontenschema eingehalten wird.