Revision 05c6840d
Von Moritz Bunkus vor etwa 14 Jahren hinzugefügt
SL/AccTransCorrections.pm | ||
---|---|---|
package AccTransCorrections;
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
use List::Util qw(first);
|
||
... | ... | |
delete $entry->{chartlink};
|
||
}
|
||
|
||
# Verkn?pfungen zwischen Steuerschl?sseln und zum Zeitpunkt der Transaktion
|
||
# g?ltigen Steuers?tze
|
||
# Verknüpfungen zwischen Steuerschlüsseln und zum Zeitpunkt der Transaktion
|
||
# gültigen Steuersätze
|
||
my %all_taxes = $self->{taxkeys}->get_full_tax_info('transdate' => $transaction->[0]->{transdate});
|
||
|
||
my ($trans_type, $previous_non_tax_entry);
|
||
... | ... | |
}
|
||
}
|
||
|
||
# Alle Eintr?ge entfernen, die die Gegenkonten zu Zahlungsein- und
|
||
# -ausg?ngen darstellen.
|
||
# Alle Einträge entfernen, die die Gegenkonten zu Zahlungsein- und
|
||
# -ausgängen darstellen.
|
||
foreach my $payment (@{ $data->{payments} }) {
|
||
my $idx = 0 < $payment->{amount} ? 'debit' : 'credit';
|
||
|
||
... | ... | |
}
|
||
|
||
# Problemfall: Verkaufsrechnungen, bei denen Buchungen auf Warenbestandskonten
|
||
# mit Steuerschl?ssel != 0 durchgef?hrt wurden. Richtig w?re, dass alle
|
||
# Steuerschl?ssel f?r solche Warenbestandsbuchungen 0 sind.
|
||
# mit Steuerschlüssel != 0 durchgeführt wurden. Richtig wäre, dass alle
|
||
# Steuerschlüssel für solche Warenbestandsbuchungen 0 sind.
|
||
sub _check_trans_invoices_inventory_with_taxkeys {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
... | ... | |
}
|
||
|
||
# Problemfall: Verkaufsrechnungen, bei denen Steuern verbucht wurden, obwohl
|
||
# kein Steuerschl?ssel eingetragen ist.
|
||
# kein Steuerschlüssel eingetragen ist.
|
||
sub _check_missing_taxkeys_in_invoices {
|
||
$::lxdebug->enter_sub;
|
||
|
||
... | ... | |
return $found_broken;
|
||
}
|
||
|
||
# Problemfall: Kreditorenbuchungen, bei denen mit Umsatzsteuerschl?sseln
|
||
# gebucht wurde und Debitorenbuchungen, bei denen mit Vorsteuerschl?sseln
|
||
# Problemfall: Kreditorenbuchungen, bei denen mit Umsatzsteuerschlüsseln
|
||
# gebucht wurde und Debitorenbuchungen, bei denen mit Vorsteuerschlüsseln
|
||
# gebucht wurde.
|
||
sub _check_trans_ap_ar_wrong_taxkeys {
|
||
$main::lxdebug->enter_sub();
|
||
... | ... | |
}
|
||
|
||
# Problemfall: Splitbuchungen, die mehrere Haben- und Sollkonten ansprechen.
|
||
# Aber nur f?r Debitoren- und Kreditorenbuchungen, weil das bei Einkaufs- und
|
||
# Verkaufsrechnungen hingegen v?llig normal ist.
|
||
# Aber nur für Debitoren- und Kreditorenbuchungen, weil das bei Einkaufs- und
|
||
# Verkaufsrechnungen hingegen völlig normal ist.
|
||
sub _check_trans_split_multiple_credit_and_debit {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
... | ... | |
}
|
||
|
||
# Problemfall: Buchungen, bei denen Steuersummen nicht mit den Summen
|
||
# ?bereinstimmen, die nach ausgew?hltem Steuerschl?ssel h?tten auftreten m?ssen.
|
||
# übereinstimmen, die nach ausgewähltem Steuerschlüssel hätten auftreten müssen.
|
||
sub _check_trans_wrong_taxkeys {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
... | ... | |
return $retval;
|
||
}
|
||
|
||
# Inaktiver Code f?r das Erraten m?glicher Verteilungen von
|
||
# Steuerschl?sseln. Deaktiviert, weil er exponentiell Zeit
|
||
# ben?tigt.
|
||
# Inaktiver Code für das Erraten möglicher Verteilungen von
|
||
# Steuerschlüsseln. Deaktiviert, weil er exponentiell Zeit
|
||
# benötigt.
|
||
|
||
# if (abs($expected_tax - $data{$side}->{tax_sum}) >= 0.02) {
|
||
# my @potential_taxkeys = $trans_type eq 'AP' ? (0, 8, 9) : (0, 1, 2, 3);
|
||
|
||
# $main::lxdebug->dump(0, "pota", \@potential_taxkeys);
|
||
|
||
# # ?ber alle Kombinationen aus Buchungss?tzen und potenziellen Steuerschl?sseln
|
||
# # Über alle Kombinationen aus Buchungssätzen und potenziellen Steuerschlüsseln
|
||
# # iterieren und jeweils die Summe ermitteln.
|
||
# my $num_entries = scalar @{ $data{$side}->{entries} };
|
||
# my @taxkey_indices = (0) x $num_entries;
|
||
... | ... | |
# while ($num_entries == scalar @taxkey_indices) {
|
||
# my @tax_cache = ();
|
||
|
||
# # Berechnen der Steuersumme f?r die aktuell angenommenen Steuerschl?ssel.
|
||
# # Berechnen der Steuersumme für die aktuell angenommenen Steuerschlüssel.
|
||
# my $tax_sum = 0;
|
||
# foreach my $i (0 .. $num_entries - 1) {
|
||
# my $taxkey = $potential_taxkeys[$taxkey_indices[$i]];
|
||
... | ... | |
# $tax_sum += $tax_cache[$i];
|
||
# }
|
||
|
||
# # Entspricht die Steuersumme mit den aktuell angenommenen Steuerschl?sseln
|
||
# # Entspricht die Steuersumme mit den aktuell angenommenen Steuerschlüsseln
|
||
# # der verbuchten Steuersumme? Wenn ja, dann ist das eine potenzielle
|
||
# # L?sung.
|
||
# # Lösung.
|
||
# if (abs($tax_sum - $data{$side}->{tax_sum}) < 0.02) {
|
||
# push @solutions, {
|
||
# 'taxkeys' => [ @potential_taxkeys[@taxkey_indices] ],
|
||
... | ... | |
# }
|
||
# }
|
||
|
||
# # Weiterz?hlen der Steuerschl?sselindices zum Interieren ?ber
|
||
# # alle m?glichen Kombinationen.
|
||
# # Weiterzählen der Steuerschlüsselindices zum Interieren über
|
||
# # alle möglichen Kombinationen.
|
||
# my $i = 0;
|
||
# while (1) {
|
||
# $taxkey_indices[$i]++;
|
SL/CA.pm | ||
---|---|---|
#
|
||
#======================================================================
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
package CA;
|
||
use Data::Dumper;
|
||
use SL::DBUtils;
|
||
|
||
use strict;
|
||
|
||
sub all_accounts {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
... | ... | |
# connect to database
|
||
my $dbh = $form->dbconnect($myconfig);
|
||
|
||
# bug 1071 Warum sollte bei Erreichen eines neuen Jahres die Konten?bersicht nur noch die
|
||
# bug 1071 Warum sollte bei Erreichen eines neuen Jahres die Kontenübersicht nur noch die
|
||
# bereits bebuchten Konten anzeigen?
|
||
# Folgende Erweiterung:
|
||
# 1.) Gehe zur?ck bis zu dem Datum an dem die B?cher geschlossen wurden
|
||
# 2.) Falls die B?cher noch nie geschlossen wurden, gehe zur?ck bis zum Bearbeitungsstart
|
||
# 1.) Gehe zurück bis zu dem Datum an dem die Bücher geschlossen wurden
|
||
# 2.) Falls die Bücher noch nie geschlossen wurden, gehe zurück bis zum Bearbeitungsstart
|
||
# COALESCE((SELECT closedto FROM defaults),(SELECT itime FROM defaults))
|
||
|
||
my $closedto_sql = "COALESCE((SELECT closedto FROM defaults),(SELECT itime FROM defaults))";
|
||
|
||
if ($form->{method} eq "cash") { # E?R
|
||
if ($form->{method} eq "cash") { # EÜR
|
||
$acc_cash_where = qq| AND (a.trans_id IN (SELECT id FROM ar WHERE datepaid>= $closedto_sql
|
||
UNION SELECT id FROM ap WHERE datepaid>= $closedto_sql
|
||
UNION SELECT id FROM gl WHERE transdate>= $closedto_sql
|
||
... | ... | |
$query =
|
||
qq|SELECT a.id, a.reference, a.description, ac.transdate, ac.chart_id, | .
|
||
qq| $false AS invoice, ac.amount, 'gl' as module, | .
|
||
qq?(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo, ac.source || ' ' || ac.memo AS memo ? .
|
||
qq§(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo, ac.source || ' ' || ac.memo AS memo § .
|
||
qq|FROM acc_trans ac, gl a | .
|
||
$dpt_join .
|
||
qq|WHERE | . $where . $dpt_where . $project .
|
||
... | ... | |
|
||
qq|SELECT a.id, a.invnumber, c.name, ac.transdate, ac.chart_id, | .
|
||
qq| a.invoice, ac.amount, 'ar' as module, | .
|
||
qq?(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo, ac.source || ' ' || ac.memo AS memo ? .
|
||
qq§(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo, ac.source || ' ' || ac.memo AS memo § .
|
||
qq|FROM acc_trans ac, customer c, ar a | .
|
||
$dpt_join .
|
||
qq|WHERE | . $where . $dpt_where . $project .
|
||
... | ... | |
|
||
qq|SELECT a.id, a.invnumber, v.name, ac.transdate, ac.chart_id, | .
|
||
qq| a.invoice, ac.amount, 'ap' as module, | .
|
||
qq?(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo, ac.source || ' ' || ac.memo AS memo ? .
|
||
qq§(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo, ac.source || ' ' || ac.memo AS memo § .
|
||
qq|FROM acc_trans ac, vendor v, ap a | .
|
||
$dpt_join .
|
||
qq|WHERE | . $where . $dpt_where . $project .
|
||
... | ... | |
|
||
qq|SELECT a.id, a.invnumber, c.name, a.transdate, | .
|
||
qq| a.invoice, ac.qty * ac.sellprice AS sellprice, 'ar' as module, | .
|
||
qq?(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo ? .
|
||
qq§(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo § .
|
||
qq|FROM ar a | .
|
||
qq|JOIN invoice ac ON (ac.trans_id = a.id) | .
|
||
qq|JOIN parts p ON (ac.parts_id = p.id) | .
|
||
... | ... | |
|
||
qq|SELECT a.id, a.invnumber, v.name, a.transdate, | .
|
||
qq| a.invoice, ac.qty * ac.sellprice AS sellprice, 'ap' as module, | .
|
||
qq?(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo ? .
|
||
qq§(SELECT accno||'--'||rate FROM tax LEFT JOIN chart ON (tax.chart_id=chart.id) WHERE tax.id = (SELECT tax_id FROM taxkeys WHERE taxkey_id = ac.taxkey AND taxkeys.startdate <= ac.transdate ORDER BY taxkeys.startdate DESC LIMIT 1)) AS taxinfo § .
|
||
qq|FROM ap a | .
|
||
qq|JOIN invoice ac ON (ac.trans_id = a.id) | .
|
||
qq|JOIN parts p ON (ac.parts_id = p.id) | .
|
SL/Common.pm | ||
---|---|---|
|
||
package Common;
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
use Time::HiRes qw(gettimeofday);
|
||
use Data::Dumper;
|
||
|
||
... | ... | |
|
||
use vars qw(@db_encodings %db_encoding_to_charset %charset_to_db_encoding);
|
||
|
||
use strict;
|
||
|
||
@db_encodings = (
|
||
{ "label" => "ASCII", "dbencoding" => "SQL_ASCII", "charset" => "ASCII" },
|
||
{ "label" => "UTF-8 Unicode", "dbencoding" => "UNICODE", "charset" => "UTF-8" },
|
||
... | ... | |
|
||
my $query =
|
||
qq!SELECT id, name, customernumber, (street || ', ' || zipcode || city) AS address FROM customer ! .
|
||
qq!WHERE $filter business_id = (SELECT id FROM business WHERE description = 'H?ndler') ! .
|
||
qq!WHERE $filter business_id = (SELECT id FROM business WHERE description = ?') ! .
|
||
qq!ORDER BY $order_by $order_dir!;
|
||
push @filter_values, $::locale->{iconv_utf8}->convert('Händler');
|
||
my $sth = $dbh->prepare($query);
|
||
$sth->execute(@filter_values) ||
|
||
$form->dberror($query . " (" . join(", ", @filter_values) . ")");
|
||
... | ... | |
my $base_path = substr($ENV{'SCRIPT_NAME'}, 1);
|
||
$base_path =~ s|[^/]+$||;
|
||
$base_path =~ s|/$||;
|
||
# wo kommt der wert f?r dir her? es wird doch gar nichts ?bergeben? fix f?r strict my $dir jb 21.2.
|
||
# wo kommt der wert für dir her? es wird doch gar nichts übergeben? fix für strict my $dir jb 21.2.
|
||
if (opendir my $dir, $path) {
|
||
foreach my $file (sort { lc $a cmp lc $b } readdir $dir) {
|
||
next if (($file eq '.') || ($file eq '..'));
|
SL/DATEV.pm | ||
---|---|---|
|
||
package DATEV;
|
||
|
||
use List::Util qw(max);
|
||
use utf8;
|
||
use strict;
|
||
|
||
use SL::DBUtils;
|
||
use SL::DATEV::KNEFile;
|
||
... | ... | |
|
||
use Data::Dumper;
|
||
use File::Path;
|
||
use List::Util qw(max);
|
||
use Time::HiRes qw(gettimeofday);
|
||
|
||
use strict;
|
||
|
||
sub _get_export_path {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
... | ... | |
my $taxkey = 0;
|
||
my $charttax = 0;
|
||
my ($haben, $soll);
|
||
my $iconv = $main::locale->{iconv_iso8859};
|
||
my %umlaute = ($iconv->convert('?') => 'ae',
|
||
$iconv->convert('?') => 'oe',
|
||
$iconv->convert('?') => 'ue',
|
||
$iconv->convert('?') => 'Ae',
|
||
$iconv->convert('?') => 'Oe',
|
||
$iconv->convert('?') => 'Ue',
|
||
$iconv->convert('?') => 'sz');
|
||
my $iconv = $::locale->{iconv_utf8};
|
||
my %umlaute = ($iconv->convert('ä') => 'ae',
|
||
$iconv->convert('ö') => 'oe',
|
||
$iconv->convert('ü') => 'ue',
|
||
$iconv->convert('Ä') => 'Ae',
|
||
$iconv->convert('Ö') => 'Oe',
|
||
$iconv->convert('Ü') => 'Ue',
|
||
$iconv->convert('ß') => 'sz');
|
||
for (my $i = 0; $i < $trans_lines; $i++) {
|
||
if ($trans_lines == 2) {
|
||
if (abs($transaction->[$i]->{'amount'}) > abs($umsatz)) {
|
SL/DB/Helpers/Mappings.pm | ||
---|---|---|
package SL::DB::Helpers::Mappings;
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
# these will not be managed as Rose::DB models, because they are not normalized,
|
||
... | ... | |
|
||
=head1 AUTHOR
|
||
|
||
Sven Sch?ling <s.schoeling@linet-services.de>
|
||
Sven Schöling <s.schoeling@linet-services.de>
|
||
|
||
=cut
|
SL/DB/Order.pm | ||
---|---|---|
package SL::DB::Order;
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
use SL::RecordLinks;
|
||
... | ... | |
|
||
=head1 AUTHOR
|
||
|
||
Sven Sch?ling <s.schoeling@linet-services.de>
|
||
Sven Schöling <s.schoeling@linet-services.de>
|
||
|
||
=cut
|
SL/Locale.pm | ||
---|---|---|
$self->{iconv_english} = SL::Iconv->new('ASCII', $db_charset);
|
||
$self->{iconv_iso8859} = SL::Iconv->new('ISO-8859-15', $db_charset);
|
||
$self->{iconv_to_iso8859} = SL::Iconv->new($db_charset, 'ISO-8859-15');
|
||
$self->{iconv_utf8} = SL::Iconv->new('UTF-8', $db_charset);
|
||
|
||
$self->_read_special_chars_file($country);
|
||
|
SL/RecordLinks.pm | ||
---|---|---|
package RecordLinks;
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
use SL::Common;
|
||
use SL::DBUtils;
|
||
use Data::Dumper;
|
||
use List::Util qw(reduce);
|
||
|
||
use strict;
|
||
|
||
sub create_links {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
... | ... | |
|
||
Transitive RecordLinks mit get_links_via.
|
||
|
||
get_links_via erwartet den zus?tzlichen parameter via. via ist ein
|
||
hashref mit den jeweils optionalen Eintr?gen table und id, die sich
|
||
get_links_via erwartet den zusätzlichen parameter via. via ist ein
|
||
hashref mit den jeweils optionalen Einträgen table und id, die sich
|
||
genauso verhalten wie die from/to_table/id werte der get_links funktion.
|
||
|
||
Alternativ kann via auch ein Array dieser Hashes sein:
|
||
... | ... | |
],
|
||
)
|
||
|
||
Die Eintr?ge in einem via-Array werden exakt in dieser Reihenfolge
|
||
benutzt und sind nicht optional. Da obige Beispiel w?rde also die
|
||
Verkn?pfung:
|
||
Die Einträge in einem via-Array werden exakt in dieser Reihenfolge
|
||
benutzt und sind nicht optional. Da obige Beispiel würde also die
|
||
Verknüpfung:
|
||
|
||
oe:11 -> ar:12 -> is:13 -> do:14
|
||
|
SL/USTVA.pm | ||
---|---|---|
|
||
use SL::DBUtils;
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
my @tax_office_information = (
|
||
{ 'id' => 8, 'name' => 'Baden-W?rttemberg', 'taxbird_nr' => '0', 'elster_format' => 'FF/BBB/UUUUP', },
|
||
{ 'id' => 8, 'name' => 'Baden-Württemberg', 'taxbird_nr' => '0', 'elster_format' => 'FF/BBB/UUUUP', },
|
||
{ 'id' => 9, 'name' => 'Bayern', 'taxbird_nr' => '1', 'elster_format' => 'FFF/BBB/UUUUP', },
|
||
{ 'id' => 11, 'name' => 'Berlin', 'taxbird_nr' => '2', 'elster_format' => 'FF/BBB/UUUUP', },
|
||
{ 'id' => 12, 'name' => 'Brandenburg', 'taxbird_nr' => '3', 'elster_format' => 'FFF/BBB/UUUUP', },
|
||
... | ... | |
{ 'id' => 14, 'name' => 'Sachsen', 'taxbird_nr' => '12', 'elster_format' => 'FFF/BBB/UUUUP', },
|
||
{ 'id' => 15, 'name' => 'Sachsen-Anhalt', 'taxbird_nr' => '13', 'elster_format' => 'FFF/BBB/UUUUP', },
|
||
{ 'id' => 1, 'name' => 'Schleswig-Holstein', 'taxbird_nr' => '14', 'elster_format' => 'FF BBB UUUUP', },
|
||
{ 'id' => 16, 'name' => 'Th?ringen', 'taxbird_nr' => '15', 'elster_format' => 'FFF/BBB/UUUUP', },
|
||
{ 'id' => 16, 'name' => 'Thüringen', 'taxbird_nr' => '15', 'elster_format' => 'FFF/BBB/UUUUP', },
|
||
);
|
||
|
||
sub new {
|
||
... | ... | |
|
||
foreach (@tax_office_information) {
|
||
my $entry = \%{ $_ };
|
||
$entry->{name} = $main::locale->{iconv_iso8859}->convert($entry->{name});
|
||
$entry->{name} = $::locale->{iconv_utf8}->convert($entry->{name});
|
||
push @{ $self->{tax_office_information} }, $entry;
|
||
}
|
||
}
|
||
... | ... | |
|
||
# use SL::Form;
|
||
|
||
# Referenz wird ?bergeben, hash of hash wird nicht
|
||
# in neues Hash kopiert, sondern direkt ?ber die Referenz ver?ndert
|
||
# Prototyp f?r diese Konstruktion
|
||
# Referenz wird übergeben, hash of hash wird nicht
|
||
# in neues Hash kopiert, sondern direkt über die Referenz verändert
|
||
# Prototyp für diese Konstruktion
|
||
|
||
my ($self, $land, $elsterFFFF, $elster_init) = @_;
|
||
|
||
... | ... | |
var elsterBLAuswahl = document.verzeichnis.elsterland_new;
|
||
var elsterFAAuswahl = document.verzeichnis.elsterFFFF_new;
|
||
|
||
elsterFAAuswahl.options.length = 0; // dropdown aufr?umen
|
||
elsterFAAuswahl.options.length = 0; // dropdown aufräumen
|
||
|;
|
||
|
||
foreach my $elster_land (sort keys %$elster_init) {
|
||
... | ... | |
$main::lxdebug->enter_sub();
|
||
|
||
# noch nicht fertig
|
||
# soll mal eine Erinnerungsfunktion f?r USTVA Abgaben werden, die automatisch
|
||
# den Termin der n?chsten USTVA anzeigt.
|
||
# soll mal eine Erinnerungsfunktion für USTVA Abgaben werden, die automatisch
|
||
# den Termin der nächsten USTVA anzeigt.
|
||
#
|
||
#
|
||
my ($today, $FA_dauerfrist, $FA_voranmeld) = @_;
|
||
... | ... | |
|
||
#There is no table, read the table from sql/finanzamt.sql
|
||
print qq|<p>Bitte warten, Tabelle $table wird einmalig in Datenbank:
|
||
$myconfig->{dbname} als Benutzer: $myconfig->{dbuser} hinzugef?gt...</p>|;
|
||
$myconfig->{dbname} als Benutzer: $myconfig->{dbuser} hinzugefügt...</p>|;
|
||
process_query($form, $dbh, $filename) || $self->error(DBI->errstr);
|
||
|
||
#execute second last call
|
||
... | ... | |
}
|
||
|
||
|
||
# Fixme: Wird auch noch f?r Oesterreich gebraucht,
|
||
# Fixme: Wird auch noch für Oesterreich gebraucht,
|
||
# weil kein eigenes Ausgabeformular
|
||
# sotte aber aus der allgem?inen Steuerberechnung verschwinden
|
||
# sotte aber aus der allgeméinen Steuerberechnung verschwinden
|
||
#
|
||
# Berechnung der USTVA Formularfelder laut Bogen 207
|
||
#
|
||
... | ... | |
|
||
#########################################
|
||
# Ausgaben und Gl Buchungen sind gleich
|
||
# f?r Ist- und Soll-Versteuerung
|
||
# für Ist- und Soll-Versteuerung
|
||
#########################################
|
||
$query .= qq|
|
||
UNION -- alle Ausgaben AP erfassen
|
bin/mozilla/am.pl | ||
---|---|---|
#
|
||
#======================================================================
|
||
|
||
use utf8;
|
||
|
||
use SL::Auth;
|
||
use SL::AM;
|
||
use SL::CA;
|
||
... | ... | |
|
||
my $select_eur = q|<option value=""> |. $locale->text('None') .q|</option>\n|;
|
||
my %eur = (
|
||
1 => "Umsatzerl?se",
|
||
2 => "sonstige Erl?se",
|
||
1 => "Umsatzerlöse",
|
||
2 => "sonstige Erlöse",
|
||
3 => "Privatanteile",
|
||
4 => "Zinsertr?ge",
|
||
5 => "Ausserordentliche Ertr?ge",
|
||
4 => "Zinserträge",
|
||
5 => "Ausserordentliche Erträge",
|
||
6 => "Vereinnahmte Umsatzst.",
|
||
7 => "Umsatzsteuererstattungen",
|
||
8 => "Wareneing?nge",
|
||
9 => "L?hne und Geh?lter",
|
||
8 => "Wareneingänge",
|
||
9 => "Löhne und Gehälter",
|
||
10 => "Gesetzl. sozialer Aufw.",
|
||
11 => "Mieten",
|
||
12 => "Gas, Strom, Wasser",
|
||
13 => "Instandhaltung",
|
||
14 => "Steuern, Versich., Beitr?ge",
|
||
14 => "Steuern, Versich., Beiträge",
|
||
15 => "Kfz-Steuern",
|
||
16 => "Kfz-Versicherungen",
|
||
17 => "Sonst. Fahrzeugkosten",
|
||
18 => "Werbe- und Reisekosten",
|
||
19 => "Instandhaltung u. Werkzeuge",
|
||
20 => "Fachzeitschriften, B?cher",
|
||
21 => "Miete f?r Einrichtungen",
|
||
20 => "Fachzeitschriften, Bücher",
|
||
21 => "Miete für Einrichtungen",
|
||
22 => "Rechts- und Beratungskosten",
|
||
23 => "B?robedarf, Porto, Telefon",
|
||
23 => "Bürobedarf, Porto, Telefon",
|
||
24 => "Sonstige Aufwendungen",
|
||
25 => "Abschreibungen auf Anlagever.",
|
||
26 => "Abschreibungen auf GWG",
|
||
... | ... | |
30 => "Ausserordentlicher Aufwand",
|
||
31 => "Betriebliche Steuern");
|
||
foreach my $item (sort({ $a <=> $b } keys(%eur))) {
|
||
my $text = H(SL::Iconv::convert("ISO-8859-15", $main::dbcharset, $eur{$item}));
|
||
my $text = H($::locale->{iconv_utf8}->convert($eur{$item}));
|
||
if ($item == $form->{pos_eur}) {
|
||
$select_eur .= qq|<option value=$item selected>|. sprintf("%.2d", $item) .qq|. $text</option>\n|;
|
||
} else {
|
||
... | ... | |
my $select_bwa = q|<option value=""> |. $locale->text('None') .q|</option>\n|;
|
||
|
||
my %bwapos = (
|
||
1 => 'Umsatzerl?se',
|
||
1 => 'Umsatzerlöse',
|
||
2 => 'Best.Verdg.FE/UE',
|
||
3 => 'Aktiv.Eigenleistung',
|
||
4 => 'Mat./Wareneinkauf',
|
||
5 => 'So.betr.Erl?se',
|
||
5 => 'So.betr.Erlöse',
|
||
10 => 'Personalkosten',
|
||
11 => 'Raumkosten',
|
||
12 => 'Betriebl.Steuern',
|
||
13 => 'Vers./Beitr?ge',
|
||
13 => 'Vers./Beiträge',
|
||
14 => 'Kfz.Kosten o.St.',
|
||
15 => 'Werbe-Reisek.',
|
||
16 => 'Kosten Warenabgabe',
|
||
17 => 'Abschreibungen',
|
||
18 => 'Rep./instandhlt.',
|
||
19 => '?brige Steuern',
|
||
19 => 'Übrige Steuern',
|
||
20 => 'Sonst.Kosten',
|
||
30 => 'Zinsauwand',
|
||
31 => 'Sonst.neutr.Aufw.',
|
||
32 => 'Zinsertr?ge',
|
||
32 => 'Zinserträge',
|
||
33 => 'Sonst.neutr.Ertrag',
|
||
34 => 'Verr.kalk.Kosten',
|
||
35 => 'Steuern Eink.u.Ertr.');
|
||
foreach my $item (sort({ $a <=> $b } keys %bwapos)) {
|
||
my $text = H(SL::Iconv::convert("ISO-8859-15", $main::dbcharset, $bwapos{$item}));
|
||
my $text = H($::locale->{iconv_utf8}->convert($bwapos{$item}));
|
||
if ($item == $form->{pos_bwa}) {
|
||
$select_bwa .= qq|<option value="$item" selected>|. sprintf("%.2d", $item) .qq|. $text\n|;
|
||
} else {
|
||
... | ... | |
|
||
}
|
||
|
||
# Wieder hinzugef?gt zu evaluationszwecken (us) 09.03.2007
|
||
# Wieder hinzugefügt zu evaluationszwecken (us) 09.03.2007
|
||
my $select_bilanz = q|<option value=""> |. $locale->text('None') .q|</option>\n|;
|
||
foreach my $item ((1, 2, 3, 4)) {
|
||
if ($item == $form->{pos_bilanz}) {
|
bin/mozilla/gl.pl | ||
---|---|---|
#
|
||
#======================================================================
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
use POSIX qw(strftime);
|
||
use List::Util qw(sum);
|
||
|
||
... | ... | |
require "bin/mozilla/drafts.pl";
|
||
require "bin/mozilla/reportgenerator.pl";
|
||
|
||
use strict;
|
||
|
||
# this is for our long dates
|
||
# $locale->text('January')
|
||
# $locale->text('February')
|
||
... | ... | |
my %charts = ();
|
||
my $taxchart_init;
|
||
foreach my $item (@{ $form->{ALL_CHARTS} }) {
|
||
if ($item->{charttype} eq 'H'){ #falls ?berschrift
|
||
next; #?berspringen (Bug 1150)
|
||
if ($item->{charttype} eq 'H'){ #falls überschrift
|
||
next; #überspringen (Bug 1150)
|
||
}
|
||
my $key = $item->{accno} . "--" . $item->{tax_id};
|
||
$taxchart_init = $item->{tax_id} unless (@chart_values);
|
||
... | ... | |
print qq|<input class=submit type=submit name=action value="| . $locale->text('Storno') . qq|">|;
|
||
}
|
||
|
||
# L?schen und ?ndern von Buchungen nicht mehr m?glich (GoB) nur am selben Tag m?glich
|
||
# Löschen und Ändern von Buchungen nicht mehr möglich (GoB) nur am selben Tag möglich
|
||
if (!$form->{locked} && $radieren) {
|
||
print qq|
|
||
<input class=submit type=submit name=action value="| . $locale->text('Post') . qq|" accesskey="b">
|
bin/mozilla/menuXML.pl | ||
---|---|---|
# 2007-10-14 - XMLified - Holger Will <holger@treebuilder.de>
|
||
#######################################################################
|
||
|
||
use utf8;
|
||
|
||
use SL::Menu;
|
||
|
||
use CGI::Carp qw(fatalsToBrowser);
|
||
... | ... | |
. qq|<?xml version="1.0" encoding="${charset}"?>
|
||
<?xml-stylesheet href="xslt/xulmenu.xsl" type="text/xsl"?>
|
||
<!DOCTYPE doc [
|
||
<!ENTITY szlig "| . $::locale->{iconv_iso8859}->convert('?') . qq|">
|
||
<!ENTITY auml "| . $::locale->{iconv_iso8859}->convert('?') . qq|">
|
||
<!ENTITY ouml "| . $::locale->{iconv_iso8859}->convert('?') . qq|">
|
||
<!ENTITY uuml "| . $::locale->{iconv_iso8859}->convert('?') . qq|">
|
||
<!ENTITY szlig "| . $::locale->{iconv_utf8}->convert('ß') . qq|">
|
||
<!ENTITY auml "| . $::locale->{iconv_utf8}->convert('ä') . qq|">
|
||
<!ENTITY ouml "| . $::locale->{iconv_utf8}->convert('ö') . qq|">
|
||
<!ENTITY uuml "| . $::locale->{iconv_utf8}->convert('ü') . qq|">
|
||
]>
|
||
|
||
<doc>
|
bin/mozilla/menujs.pl | ||
---|---|---|
# 2004-12-14 - Holger Lindemann
|
||
#######################################################################
|
||
|
||
use utf8;
|
||
use strict;
|
||
|
||
use SL::Menu;
|
||
use CGI::Carp qw(fatalsToBrowser);
|
||
|
||
use strict;
|
||
|
||
1;
|
||
|
||
# end of main
|
||
... | ... | |
} else {
|
||
if ($menu->{$item}{module}) {
|
||
|
||
#Untermen?punkte
|
||
#Untermenüpunkte
|
||
my $target = $menu->{$item}{target};
|
||
my $uri = $menu->menuitem_js(\%myconfig, \%$form, $item, $level);
|
||
|
bin/mozilla/ustva.pl | ||
---|---|---|
# German Tax authority Module and later ELSTER Interface
|
||
#======================================================================
|
||
|
||
use utf8;
|
||
|
||
require "bin/mozilla/common.pl";
|
||
|
||
#use strict;
|
||
... | ... | |
$ustva->get_config($userspath, 'finanzamt.ini');
|
||
|
||
# Hier Einlesen der user-config
|
||
# steuernummer entfernt f?r prerelease
|
||
# steuernummer entfernt für prerelease
|
||
my @a = qw(
|
||
signature name company address businessnumber
|
||
tel fax email co_chief co_department
|
||
... | ... | |
|
||
|
||
# Anpassungen der Variablennamen auf pre 2.1.1 Namen
|
||
# kl?ren, ob $form->{company_street|_address} gesetzt sind
|
||
# klären, ob $form->{company_street|_address} gesetzt sind
|
||
if ($form->{address} ne '') {
|
||
my $temp = $form->{address};
|
||
$temp =~ s/\n/<br \/>/;
|
||
... | ... | |
$sel = '';
|
||
my $dfv = '';
|
||
|
||
# Offset f?r Dauerfristverl?ngerung
|
||
# Offset für Dauerfristverlängerung
|
||
$dfv = '100' if ($form->{FA_dauerfrist} eq '1');
|
||
|
||
SWITCH: {
|
||
... | ... | |
my $yy = $form->{year} * 10000;
|
||
$yymmdd = "$form->{year}$form->{month}$form->{day}" * 1;
|
||
$sel = '';
|
||
my $dfv = ''; # Offset f?r Dauerfristverl?ngerung
|
||
my $dfv = ''; # Offset für Dauerfristverlängerung
|
||
$dfv = '100' if ($form->{FA_dauerfrist} eq '1');
|
||
|
||
SWITCH: {
|
||
... | ... | |
};
|
||
}
|
||
|
||
# Kontrollvariable f?r die Templates
|
||
# Kontrollvariable für die Templates
|
||
$form->{'year2007'} = ($form->{year} >= 2007 ) ? "1":"0";
|
||
|
||
|
||
... | ... | |
$form->{endbold} = "}";
|
||
$form->{br} = '\\\\';
|
||
|
||
# Zahlenformatierung f?r Latex USTVA Formulare
|
||
# Zahlenformatierung für Latex USTVA Formulare
|
||
|
||
foreach my $number (@category_euro) {
|
||
$form->{$number} = $form->format_amount(\%myconfig, $form->{$number}, '0', '');
|
||
... | ... | |
$form->{$number} =~ s/${decimal_comma}/~~/g;
|
||
}
|
||
|
||
} elsif ( $form->{format} eq 'html') { # Formatierungen f?r HTML Ausgabe
|
||
} elsif ( $form->{format} eq 'html') { # Formatierungen für HTML Ausgabe
|
||
|
||
$form->{IN} = $form->{type} . '.html';
|
||
$form->{padding} = " ";
|
||
... | ... | |
$file .= sprintf("%02d", $form->{year} % 100);
|
||
#6. to 18. char = Elstersteuernummer
|
||
#Beispiel: Steuernummer in Bayern
|
||
#111/222/33334 ergibt f?r UStVA Jan 2004: U01049111022233334
|
||
#111/222/33334 ergibt für UStVA Jan 2004: U01049111022233334
|
||
$file .= $form->{elsterFFFF};
|
||
$file .= $form->{elstersteuernummer};
|
||
#file suffix
|
||
... | ... | |
|
||
$form->{attachment_filename} = $file;
|
||
|
||
# Zahlenformatierung f?r Winston
|
||
# Zahlenformatierung für Winston
|
||
|
||
my $temp_numberformat = $myconfig{numberformat};
|
||
|
||
... | ... | |
|
||
$form->{USTVA} = [];
|
||
|
||
if ( $form->{format} eq 'generic') { # Formatierungen f?r HTML Ausgabe
|
||
if ( $form->{format} eq 'generic') { # Formatierungen für HTML Ausgabe
|
||
|
||
my $rec_ref = {};
|
||
for my $kennziffer (@category_cent, @category_euro) {
|
||
... | ... | |
|
||
$ustva->get_coa($form, \%myconfig);
|
||
|
||
# h?? kann die weg?
|
||
# hä? kann die weg?
|
||
my $steuernummer_new = '';
|
||
|
||
# Variablen f?r das Template zur Verf?gung stellen
|
||
# Variablen für das Template zur Verfügung stellen
|
||
my $template_ref = {
|
||
select_tax_office => $select_tax_office,
|
||
checked_accrual => $checked_accrual,
|
||
... | ... | |
$ustva->get_config($userspath, 'finanzamt.ini')
|
||
if ($form->{saved} eq $locale->text('saved'));
|
||
|
||
# Auf ?bergabefehler checken
|
||
# Auf Übergabefehler checken
|
||
USTVA::info( $locale->text('Missing Tax Authoritys Preferences') . "\n"
|
||
. $locale->text('USTVA-Hint: Tax Authoritys'))
|
||
if ( $form->{elsterFFFF_new} eq 'Auswahl'
|
||
... | ... | |
. $locale->text('USTVA-Hint: Method'))
|
||
if ($form->{method} eq '');
|
||
|
||
# Kl?ren, ob Variablen bereits bef?llt sind UND ob ver?derungen auf
|
||
# Klären, ob Variablen bereits befüllt sind UND ob veräderungen auf
|
||
# der vorherigen Maske stattfanden: $change = 1(in der edit sub,
|
||
# mittels get_config)
|
||
|
||
... | ... | |
|
||
if ($change eq '1') {
|
||
|
||
# Daten ?ndern
|
||
# Daten ändern
|
||
$elsterland = $form->{elsterland_new};
|
||
$elsterFFFF = $form->{elsterFFFF_new};
|
||
$form->{elsterland} = $elsterland;
|
||
... | ... | |
FA_steuerberater_street FA_steuerberater_city FA_steuerberater_tel
|
||
FA_71 FA_dauerfrist);
|
||
|
||
# Hier kommt dann die Plausibilit?tspr?fung der ELSTERSteuernummer
|
||
# Hier kommt dann die Plausibilitätsprüfung der ELSTERSteuernummer
|
||
if ($form->{elstersteuernummer} ne '000000000') {
|
||
|
||
$form->{elster} = '1';
|
config/authentication.pl.default | ||
---|---|---|
#!/usr/bin/perl
|
||
|
||
# Das Passwort f?r den Zugang zum Administrationsfrontend im Klartext.
|
||
# Kann nur in dieser Datei ge?ndert werden, nicht im Administrationsfrontend
|
||
# Das Passwort für den Zugang zum Administrationsfrontend im Klartext.
|
||
# Kann nur in dieser Datei geändert werden, nicht im Administrationsfrontend
|
||
# selber.
|
||
$self->{admin_password} = 'admin';
|
||
|
||
... | ... | |
# Entweder 'DB' oder 'LDAP'.
|
||
#
|
||
# Wenn LDAP-Authentifizierung benutzt wird, dann kann der Benutzer sein
|
||
# Passwort nicht ?ber Lx-Office ?ndern.
|
||
# Passwort nicht über Lx-Office ändern.
|
||
$self->{module} = 'DB';
|
||
|
||
# Verbindungsinformationen zur Datenbank mit den Benutzer- und
|
||
# Gruppeninformationen. Wird auch dann ben?tigt, wenn gegen einen
|
||
# LDAP-Server authentifiziert wird, weil dieser nur zur Passwort?berpr?fung
|
||
# Gruppeninformationen. Wird auch dann benötigt, wenn gegen einen
|
||
# LDAP-Server authentifiziert wird, weil dieser nur zur Passwortüberprüfung
|
||
# benutzt wird. Der Rest der Benutzerdaten ist in der Datenbank hinterlegt.
|
||
#
|
||
# Ist 'module' = 'DB' dann wird diese Datenbank auch f?r die
|
||
# Passwort?berpr?fung benutzt.
|
||
# Ist 'module' = 'DB' dann wird diese Datenbank auch für die
|
||
# Passwortüberprüfung benutzt.
|
||
$self->{DB_config} = {
|
||
'host' => 'localhost',
|
||
'port' => 5432,
|
||
... | ... | |
'password' => '',
|
||
};
|
||
|
||
# Wird nur ben?tigt, wenn 'module' = 'LDAP' ist. An diesem LDAP-Server
|
||
# werden die Benutzerpassw?rter durch einen LDAP-Bind ?berpr?ft.
|
||
# Wird nur benötigt, wenn 'module' = 'LDAP' ist. An diesem LDAP-Server
|
||
# werden die Benutzerpasswörter durch einen LDAP-Bind überprüft.
|
||
#
|
||
# Es m?ssen mindestens die Parameter host, attribute und base_dn
|
||
# Es müssen mindestens die Parameter host, attribute und base_dn
|
||
# angegeben werden.
|
||
#
|
||
# tls: Verschl?sselung per TLS erzwingen
|
||
# attribute: Das LDAP-Attribut, das den Loginnamen enth?lt
|
||
# tls: Verschlüsselung per TLS erzwingen
|
||
# attribute: Das LDAP-Attribut, das den Loginnamen enthält
|
||
# base_dn: Basis-DN, ab der der LDAP-Baum durchsucht wird
|
||
# filter: Ein optionaler LDAP-Filter. Die Zeichenkette '<%login%>' wird
|
||
# innerhalb des Filters durch den Loginnamen ersetzt.
|
||
# bind_dn und bind_password:
|
||
# Wenn zum Durchsuchen des LDAP-Baumes eine Anmeldung erforderlich
|
||
# ist (z.B. beim ActiveDirectory), dann m?ssen diese beiden
|
||
# ist (z.B. beim ActiveDirectory), dann müssen diese beiden
|
||
# Parameter gesetzt sein.
|
||
$self->{LDAP_config} = {
|
||
'host' => 'localhost',
|
||
... | ... | |
'bind_password' => undef,
|
||
};
|
||
|
||
# Der Name des Cookies kann ge?ndert werden, sofern gew?nscht.
|
||
# Der Name des Cookies kann geändert werden, sofern gewünscht.
|
||
# $self->{cookie_name} = 'lx_office_erp_session_id';
|
||
|
||
# Die Zeitspanne, bis eine inaktive Session ung?ltig wird, kann
|
||
# hier ge?ndert werden. Der Standardwert ist acht Stunden.
|
||
# Die Zeitspanne, bis eine inaktive Session ungültig wird, kann
|
||
# hier geändert werden. Der Standardwert ist acht Stunden.
|
||
# Die Angabe ist in Minuten.
|
||
# $self->{session_timeout} = 8 * 60;
|
||
|
config/lx-erp.conf | ||
---|---|---|
# member file
|
||
$memberfile = "users/members";
|
||
|
||
# Wenn Einnahmen-?berschussrechnung, dann auf 1 setzen
|
||
# Wenn Einnahmen-Überschussrechnung, dann auf 1 setzen
|
||
# Wenn Bilanzierung (z.B. GmbH), dann auf 0 setzen
|
||
$eur = 1;
|
||
|
||
... | ... | |
$webdav = 0;
|
||
$lizenzen = 1;
|
||
$vertreter = 0;
|
||
$excel_templates = 0; # Minimalunterst?tzung f?r Excel-Druckvorlagen
|
||
$excel_templates = 0; # Minimalunterstützung für Excel-Druckvorlagen
|
||
|
||
# Zeige Felder f?r Mindesthaltbarkeitsdatum
|
||
# Zeige Felder für Mindesthaltbarkeitsdatum
|
||
$show_best_before = 0;
|
||
|
||
## Support fuer OpenDocument-Vorlagen
|
||
... | ... | |
$xvfb_bin = "/usr/bin/Xvfb";
|
||
|
||
# Das charset, in dem die Daten in der Datenbank abgelegt sind.
|
||
$dbcharset = 'UTF-8'; # F?r UNICODE UTF-8
|
||
$dbcharset = 'UTF-8'; # Für UNICODE UTF-8
|
||
# $dbcharset = "ISO-8859-15";
|
||
|
||
|
||
... | ... | |
$latex_bin = 'pdflatex';
|
||
|
||
# Datenbankbackups werden mit dem externen Programm "pg_dump" erledigt.
|
||
# Wenn es nicht im aktuellen Pfad vorhanden ist, so muss hier der vollst?ndige
|
||
# Wenn es nicht im aktuellen Pfad vorhanden ist, so muss hier der vollständige
|
||
# Pfad eingetragen werden. Wenn die Variable auf "DISABLED" gesetzt wird,
|
||
# so wird der Men?punkt zum Backup von Datenbanken im Administrationsfrontend
|
||
# so wird der Menüpunkt zum Backup von Datenbanken im Administrationsfrontend
|
||
# nicht angeboten.
|
||
# Das gleiche gilt analog f?r das Wiederherstellen mittels "pg_restore".
|
||
# Das gleiche gilt analog für das Wiederherstellen mittels "pg_restore".
|
||
$pg_dump_exe = "pg_dump";
|
||
$pg_restore_exe = "pg_restore";
|
||
|
||
# Rose::DB::Object Environment laden.
|
||
# Die RDBO Klassen bieten f?r Addon Schreiber sehr einfache Interfaces zu den
|
||
# Die RDBO Klassen bieten für Addon Schreiber sehr einfache Interfaces zu den
|
||
# bestehenden Klassen, haben aber den Nachteil, dass der Start des Programms
|
||
# etwa 2s mehr dauert. Damit f?llt die M?glichkeit Lx-Office ?ber CGI zu
|
||
# etwa 2s mehr dauert. Damit fällt die Möglichkeit Lx-Office über CGI zu
|
||
# betreiben weg.
|
||
$use_rdbo = 1;
|
||
|
||
... | ... | |
# LXDebug::DEBUG2
|
||
# LXDebug::QUERY - SQL Queries
|
||
# LXDebug::TRACE - Tracing von Funktionsaufrufen
|
||
# LXDebug::BACKTRACE_ON_ERROR - Vollst?ndiger Aufrufpfad, wenn $form->error() aufgerufen wird
|
||
# LXDebug::BACKTRACE_ON_ERROR - Vollständiger Aufrufpfad, wenn $form->error() aufgerufen wird
|
||
# LXDebug::REQUEST_TIMER - Timing von Requests loggen
|
||
# LXDebug::WARN - warnings
|
||
# LXDebug::ALL - alle Debugausgaben
|
||
... | ... | |
# $LXDebug::global_level = LXDebug::TRACE | LXDebug::QUERY;
|
||
$LXDebug::global_level = LXDebug->NONE;
|
||
|
||
# ?berwachung der Inhalte von $form aktiviert oder nicht? Wenn ja,
|
||
# dann k?nnen einzelne Variablen mit
|
||
# Überwachung der Inhalte von $form aktiviert oder nicht? Wenn ja,
|
||
# dann können einzelne Variablen mit
|
||
# $form->{"Watchdog::<variablenname>"} = 1;
|
||
# ?berwacht werden. Bedeutet aber auch einen Geschwindigkeitsverlust,
|
||
# überwacht werden. Bedeutet aber auch einen Geschwindigkeitsverlust,
|
||
# weshalb sie normalerweise deaktiviert ist.
|
||
$LXDebug::watch_form = 0;
|
||
|
||
# Zum debuggen von Latexausgaben. Wenn diese Option auf 1 gesetzt wird, werden
|
||
# tempor?re Dateien, die bei der Erstellung von PDFs aus Latex erzeugt werden,
|
||
# nach Abschlu? der Erstellung oder im Fehlerfall nicht gel?scht, damit man sie
|
||
# temporäre Dateien, die bei der Erstellung von PDFs aus Latex erzeugt werden,
|
||
# nach Abschluß der Erstellung oder im Fehlerfall nicht gelöscht, damit man sie
|
||
# untersuchen kann.
|
||
$::keep_temp_files = 0;
|
||
|
config/lx-erp.conf.default | ||
---|---|---|
$lizenzen = 1;
|
||
$vertreter = 0;
|
||
|
||
# Zeige Felder f?r Mindesthaltbarkeitsdatum
|
||
# Zeige Felder für Mindesthaltbarkeitsdatum
|
||
$show_best_before = 0;
|
||
|
||
## Support fuer OpenDocument-Vorlagen
|
||
... | ... | |
$xvfb_bin = "/usr/bin/Xvfb";
|
||
|
||
# Das charset, in dem die Daten in der Datenbank abgelegt sind.
|
||
$dbcharset = 'UTF-8'; # F?r UNICODE UTF-8
|
||
$dbcharset = 'UTF-8'; # Für UNICODE UTF-8
|
||
# $dbcharset = "ISO-8859-15";
|
||
|
||
|
||
... | ... | |
$latex_bin = 'pdflatex';
|
||
|
||
# Datenbankbackups werden mit dem externen Programm "pg_dump" erledigt.
|
||
# Wenn es nicht im aktuellen Pfad vorhanden ist, so muss hier der vollst?ndige
|
||
# Wenn es nicht im aktuellen Pfad vorhanden ist, so muss hier der vollständige
|
||
# Pfad eingetragen werden. Wenn die Variable auf "DISABLED" gesetzt wird,
|
||
# so wird der Men?punkt zum Backup von Datenbanken im Administrationsfrontend
|
||
# so wird der Menüpunkt zum Backup von Datenbanken im Administrationsfrontend
|
||
# nicht angeboten.
|
||
# Das gleiche gilt analog f?r das Wiederherstellen mittels "pg_restore".
|
||
# Das gleiche gilt analog für das Wiederherstellen mittels "pg_restore".
|
||
$pg_dump_exe = "pg_dump";
|
||
$pg_restore_exe = "pg_restore";
|
||
|
||
... | ... | |
# LXDebug::DEBUG2
|
||
# LXDebug::QUERY - SQL Queries
|
||
# LXDebug::TRACE - Tracing von Funktionsaufrufen
|
||
# LXDebug::BACKTRACE_ON_ERROR - Vollst?ndiger Aufrufpfad, wenn $form->error() aufgerufen wird
|
||
# LXDebug::BACKTRACE_ON_ERROR - Vollständiger Aufrufpfad, wenn $form->error() aufgerufen wird
|
||
# LXDebug::REQUEST_TIMER - Timing von Requests loggen
|
||
# LXDebug::WARN - warnings
|
||
# LXDebug::ALL - alle Debugausgaben
|
||
... | ... | |
# $LXDebug::global_level = LXDebug::TRACE | LXDebug::QUERY;
|
||
$LXDebug::global_level = LXDebug::NONE;
|
||
|
||
# ?berwachung der Inhalte von $form aktiviert oder nicht? Wenn ja,
|
||
# dann k?nnen einzelne Variablen mit
|
||
# Überwachung der Inhalte von $form aktiviert oder nicht? Wenn ja,
|
||
# dann können einzelne Variablen mit
|
||
# $form->{"Watchdog::<variablenname>"} = 1;
|
||
# ?berwacht werden. Bedeutet aber auch einen Geschwindigkeitsverlust,
|
||
# überwacht werden. Bedeutet aber auch einen Geschwindigkeitsverlust,
|
||
# weshalb sie normalerweise deaktiviert ist.
|
||
$LXDebug::watch_form = 0;
|
||
|
||
# Zum debuggen von Latexausgaben. Wenn diese Option auf 1 gesetzt wird, werden
|
||
# tempor?re Dateien, die bei der Erstellung von PDFs aus Latex erzeugt werden,
|
||
# nach Abschlu? der Erstellung oder im Fehlerfall nicht gel?scht, damit man sie
|
||
# temporäre Dateien, die bei der Erstellung von PDFs aus Latex erzeugt werden,
|
||
# nach Abschluß der Erstellung oder im Fehlerfall nicht gelöscht, damit man sie
|
||
# untersuchen kann.
|
||
$::keep_temp_files = 0;
|
||
|
css/lx-office-erp.css | ||
---|---|---|
}
|
||
|
||
/*
|
||
?berschriftsbalken
|
||
Überschriftsbalken
|
||
*/
|
||
.listtop {
|
||
background-color: rgb(236,233,216);
|
doc/INSTALL.fcgi | ||
---|---|---|
|
||
ist sie deutlich leichter zu lesen.
|
||
|
||
=head1 FastCGI f?r Lx-Office
|
||
=head1 FastCGI für Lx-Office
|
||
|
||
=head2 Was ist FastCGI?
|
||
|
||
Direkt aus L<http://de.wikipedia.org/wiki/FastCGI> kopiert:
|
||
|
||
FastCGI ist ein Standard f?r die Einbindung externer Software zur Generierung
|
||
FastCGI ist ein Standard für die Einbindung externer Software zur Generierung
|
||
dynamischer Webseiten in einem Webserver. FastCGI ist vergleichbar zum Common
|
||
Gateway Interface (CGI), wurde jedoch entwickelt, um dessen
|
||
Performance-Probleme zu umgehen.
|
||
... | ... | |
=head2 Warum FastCGI?
|
||
|
||
Perl Programme (wie Lx-Office eines ist) werden nicht statisch kompiliert.
|
||
Stattdessen werden die Quelldateien bei jedem Start ?bersetzt, was bei kurzen
|
||
Laufzeiten einen Gro?teil der Laufzeit ausmacht. W?hrend SQL Ledger einen
|
||
Gro?teil der Funktionalit?t in einzelne Module kapselt, um immer nur einen
|
||
kleinen Teil laden zu m?ssen, ist die Funktionalit?t von Lx-Office soweit
|
||
Stattdessen werden die Quelldateien bei jedem Start übersetzt, was bei kurzen
|
||
Laufzeiten einen Großteil der Laufzeit ausmacht. Während SQL Ledger einen
|
||
Großteil der Funktionalität in einzelne Module kapselt, um immer nur einen
|
||
kleinen Teil laden zu müssen, ist die Funktionalität von Lx-Office soweit
|
||
gewachsen, dass immer mehr Module auf den Rest des Programms zugreifen.
|
||
Zus?tzlich benutzen wir umfangreiche Bibliotheken um Funktionalt?t nicht selber
|
||
entwickeln zu m?ssen, die zus?tzliche Ladezeit kosten. All dies f?hrt dazu dass
|
||
ein Lx-Office Aufruf der Kernmasken mittlerweile deutlich l?nger dauert als
|
||
fr?her, und dass davon 90% f?r das Laden der Module verwendet wird.
|
||
Zusätzlich benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber
|
||
entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies führt dazu dass
|
||
ein Lx-Office Aufruf der Kernmasken mittlerweile deutlich länger dauert als
|
||
früher, und dass davon 90% für das Laden der Module verwendet wird.
|
||
|
||
Mit FastCGI werden nun die Module einmal geladen, und danach wird nur die
|
||
eigentliche Programmlogik ausgef?hrt.
|
||
eigentliche Programmlogik ausgeführt.
|
||
|
||
=head2 Kombinationen aus Webservern und Plugin.
|
||
|
||
... | ... | |
* Apache 2.2.11 (Ubuntu) und mod_fcgid:
|
||
|
||
Als Perl Backend wird das Modul FCGI.pm verwendet. Vorsicht: FCGI 0.69 und
|
||
h?her ist extrem strict in der Behandlung von Unicode, und verweigert bestimmte
|
||
höher ist extrem strict in der Behandlung von Unicode, und verweigert bestimmte
|
||
Eingaben von Lx-Office. Solange diese Probleme nicht behoben sind, muss auf die
|
||
Vorg?ngerversion FCGI 0.68 ausgewichen werden.
|
||
Vorgängerversion FCGI 0.68 ausgewichen werden.
|
||
|
||
Mit cpan l?sst sie sich wie folgt installieren:
|
||
Mit cpan lässt sie sich wie folgt installieren:
|
||
|
||
force install M/MS/MSTROUT/FCGI-0.68.tar.gz
|
||
|
||
... | ... | |
Bevor Sie versuchen eine Lx-Office Installation unter FCGI laufen zu lassen,
|
||
empfliehlt es sich die Installation ersteinmal unter CGI aufzusetzen. FCGI
|
||
macht es nicht einfach Fehler zu debuggen die beim ersten aufsetzen auftreten
|
||
k?nnen. Sollte die Installation schon funktionieren, lesen Sie weiter.
|
||
können. Sollte die Installation schon funktionieren, lesen Sie weiter.
|
||
|
||
Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann unter
|
||
Debian/Ubuntu z.B. mit folgendem Befehl geschehen:
|
||
... | ... | |
|
||
a2enmod fcgid
|
||
|
||
Die Konfiguration f?r die Verwendung von Lx-Office mit FastCGI erfolgt
|
||
Die Konfiguration für die Verwendung von Lx-Office mit FastCGI erfolgt
|
||
durch Anpassung der vorhandenen Alias- und Directory-Direktiven. Dabei
|
||
wird zwischen dem Installationspfad von Lx-Office im Dateisystem
|
||
("/path/to/lx-office-erp") und der URL unterschieden, unter der
|
||
... | ... | |
Deny from All
|
||
</DirectoryMatch>
|
||
|
||
...und f?r mod_fcgid muss die erste Zeile ge?ndert werden in:
|
||
...und für mod_fcgid muss die erste Zeile geändert werden in:
|
||
|
||
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fcgi
|
||
|
||
|
||
Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle Zugriffe
|
||
auf die einzelnen Scripte werden auf diesen umgeleitet. Dadurch, dass
|
||
zur Laufzeit ?fter mal Scripte neu geladen werden, gibt es hier kleine
|
||
Performance-Einbu?en. Trotzdem ist diese Variante einer globalen
|
||
zur Laufzeit öfter mal Scripte neu geladen werden, gibt es hier kleine
|
||
Performance-Einbußen. Trotzdem ist diese Variante einer globalen
|
||
Benutzung von "AddHandler fastcgi-script .pl" vorzuziehen.
|
||
|
||
|
||
Es ist m?glich die gleiche Lx-Office Version parallel unter cgi und fastcgi zu
|
||
betreiben. Daf?r bleiben Directorydirektiven bleiben wie oben beschrieben, die
|
||
Es ist möglich die gleiche Lx-Office Version parallel unter cgi und fastcgi zu
|
||
betreiben. Dafür bleiben Directorydirektiven bleiben wie oben beschrieben, die
|
||
URLs werden aber umgeleitet:
|
||
|
||
# Zugriff ohne FastCGI
|
||
... | ... | |
Achtung:
|
||
|
||
Die AddHandler Direktive vom Apache ist entgegen der Dokumentation
|
||
anscheinend nicht lokal auf das Verzeichnis beschr?nkt sondern global im
|
||
anscheinend nicht lokal auf das Verzeichnis beschränkt sondern global im
|
||
vhost.
|
||
|
||
=head2 Entwicklungsaspekte
|
||
|
||
Wenn ?nderungen in der Konfiguration von Lx-Office gemacht werden, muss der
|
||
Wenn Änderungen in der Konfiguration von Lx-Office gemacht werden, muss der
|
||
Server neu gestartet werden.
|
||
|
||
Bei der Entwicklung f?r FastCGI ist auf ein paar Fallstricke zu achten. Dadurch
|
||
dass das Programm in einer Endlosschleife l?uft, m?ssen folgende Aspekte
|
||
Bei der Entwicklung für FastCGI ist auf ein paar Fallstricke zu achten. Dadurch
|
||
dass das Programm in einer Endlosschleife läuft, müssen folgende Aspekte
|
||
geachtet werden:
|
||
|
||
=head3 Programmende und Ausnahmen: C<warn>, C<die>, C<exit>, C<carp>, C<confess>
|
||
... | ... | |
Gleiche, mit ein paar Extraoptionen. C<warn> und C<exit> hingegen werden nicht
|
||
abgefangen. C<warn> wird direkt nach STDERR, also in Server Log eine Nachricht
|
||
schreiben (sofern in der Konfiguration nicht die Warnungen in das Lx-Office Log
|
||
umgeleitet wurden), und C<exit> wird die Ausf?hrung beenden.
|
||
umgeleitet wurden), und C<exit> wird die Ausführung beenden.
|
||
|
||
Prinzipiell ist es kein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn
|
||
sofort neu starten. Allerdings sollte das die Ausnahme sein. Quintessenz: Bitte
|
||
... | ... | |
=head3 Globale Variablen
|
||
|
||
Um zu vermeiden, dass Informationen von einem Request in einen anderen gelangen,
|
||
m?ssen alle globalen Variablen vor einem Request sauber initialisiert werden.
|
||
müssen alle globalen Variablen vor einem Request sauber initialisiert werden.
|
||
Das ist besonders wichtig im C<$::cgi> und C<$::auth> Objekt, weil diese nicht
|
||
gel?scht werden pro Instanz, sondern persistent gehalten werden.
|
||
gelöscht werden pro Instanz, sondern persistent gehalten werden.
|
||
|
||
In C<SL::Dispatcher> gibt es einen sauber abgetrennten Block der alle
|
||
kanonischen globalen Variablen listet und erkl?rt. Bitte keine anderen
|
||
einf?hren ohne das sauber zu dokumentieren.
|
||
kanonischen globalen Variablen listet und erklärt. Bitte keine anderen
|
||
einführen ohne das sauber zu dokumentieren.
|
||
|
||
Datenbankverbindungen wird noch ein Guide verfasst werden, wie man sichergeht,
|
||
dass man die richtige erwischt.
|
||
... | ... | |
|
||
=head3 Encoding Awareness
|
||
|
||
UTF-8 kodierte Installationen sind sehr anf?llig gegen fehlerhfate Encodings
|
||
UTF-8 kodierte Installationen sind sehr anfällig gegen fehlerhfate Encodings
|
||
unter FCGI. latin9 Installationen behandeln falsch kodierte Zeichen eher
|
||
unwissend, und geben sie einfach weiter. UTF-8 verweigert bei fehlerhaften
|
||
Programmpfaden kurzerhand aus ausliefern. Es wird noch daran gearbeitet alles
|
doc/excel_templates.txt | ||
---|---|---|
1 Zusammenfassung
|
||
2 Bedienung
|
||
3 Exceltemplate Syntax
|
||
4 Einschr?nkungen
|
||
4 Einschränkungen
|
||
|
||
|
||
|
||
... | ... | |
---------------
|
||
|
||
Dieses Dokument beschreibt den Mechanismus, mit dem Exceltemplates abgearbeitet
|
||
werden, und die Einschr?nkungen die damit einhergehen.
|
||
werden, und die Einschränkungen die damit einhergehen.
|
||
|
||
|
||
|
||
... | ... | |
---------
|
||
|
||
Der Excel Mechanismus muss in der Konfigurationsdatei aktiviert werden. Die
|
||
Konfigurationsoption hei?t:
|
||
Konfigurationsoption heißt:
|
||
|
||
$excel_templates = 1;
|
||
|
||
Eine Excelvorlage kann dann unter dem Namen einer beliebigen anderen Vorlage mit
|
||
der Endung .xls gespeichert werden. In den normalen Verkaufsmasken taucht nun
|
||
"Excel" als ausw?hlbares Format auf, und kann von da an bnutzt weren wie Latex
|
||
"Excel" als auswählbares Format auf, und kann von da an bnutzt weren wie Latex
|
||
oder OpenOffice Vorlagen.
|
||
|
||
Der Sonderfall der Angebote aus der Kundenmaske ist ebenfalls eine
|
||
... | ... | |
Einfache Syntax: <<varname>>
|
||
|
||
Wobei "<<" und ">>" die Delimiter sind. Da Excel auf festen Breiten besteht,
|
||
kann der Tag k?nstlich verl?ngert werden, indem weitere "<" oder ">" gegef?gt
|
||
kann der Tag künstlich verlängert werden, indem weitere "<" oder ">" gegefügt
|
||
werden. Der Tag muss nicht symmetrisch sein.
|
||
|
||
Beispiel: <<<<<varname>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
||
Um die Limitierung der festen Breite zu reduzieren, k?nnen weitere Variablen in
|
||
Um die Limitierung der festen Breite zu reduzieren, können weitere Variablen in
|
||
einem Block interpoliert werden. Whitespace wird dazwishen dann erhalten.
|
||
|
||
Beispiel: <<<<<varname1 varname2 varname3>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
||
Die Variablen werden interpoliert, und linksb?ndig mit Leerzeichen auf die
|
||
gew?nschte L?nge aufgef?llt. Ist der String zu lang, werden ?berz?hlige Zeichen
|
||
Die Variablen werden interpoliert, und linksbündig mit Leerzeichen auf die
|
||
gewünschte Länge aufgefüllt. Ist der String zu lang, werden überzählige Zeichen
|
||
abgeschnitten.
|
||
|
||
Es ist ausserdem m?glich Daten rechtsb?ndig darzustellen, wenn der Block mit
|
||
einem Leerzeichen anf?ngt.
|
||
Es ist ausserdem möglich Daten rechtsbündig darzustellen, wenn der Block mit
|
||
einem Leerzeichen anfängt.
|
||
|
||
Beispiel: <<<<<< varname>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
||
w?rde rechtsb?ndig triggern. Wenn bei rechtsb?ndiger Ausrichtung Text
|
||
würde rechtsbündig triggern. Wenn bei rechtsbündiger Ausrichtung Text
|
||
abgeschnitten werden muss, wird er vom linken Ende entfernt.
|
||
|
||
|
||
|
||
Einschr?nkungen
|
||
Einschränkungen
|
||
---------------
|
||
|
||
Das Excelformat bis 2002 ist ein bin?res Format, und kann nicht mit vertretbarem
|
||
Aufwand editiert werden. Der Templatemechanismus beschr?nkt sich daher darauf,
|
||
Das Excelformat bis 2002 ist ein binäres Format, und kann nicht mit vertretbarem
|
||
Aufwand editiert werden. Der Templatemechanismus beschränkt sich daher darauf,
|
||
Textstellen _exakt_ durch einen anderen Text zu ersetzen.
|
||
|
||
Aus dem gleichen Grund sind die Templatekonstrukte <% if %> und <% foreach %>
|
locale/de/Num2text | ||
---|---|---|
2 => 'zwei',
|
||
3 => 'drei',
|
||
4 => 'vier',
|
||
5 => 'f?nf',
|
||
5 => 'fünf',
|
||
6 => 'sechs',
|
||
7 => 'sieben',
|
||
8 => 'acht',
|
||
9 => 'neun',
|
||
10 => 'zehn',
|
||
11 => 'elf',
|
||
12 => 'zw?lf',
|
||
12 => 'zwölf',
|
||
13 => 'dreizehn',
|
||
14 => 'vierzehn',
|
||
15 => 'f?nfzehn',
|
||
15 => 'fünfzehn',
|
||
16 => 'sechzehn',
|
||
17 => 'siebzehn',
|
||
18 => 'achtzehn',
|
||
... | ... | |
20 => 'zwanzig',
|
||
30 => 'dreissig',
|
||
40 => 'vierzig',
|
||
50 => 'f?nfzig',
|
||
50 => 'fünfzig',
|
||
60 => 'sechzig',
|
||
70 => 'siebzig',
|
||
80 => 'achtzig',
|
locale/de/all | ||
---|---|---|
#!/usr/bin/perl
|
||
# -*- coding: iso-8859-15; -*-
|
||
# vim: fenc=ISO-8859-15
|
||
# -*- coding: utf-8; -*-
|
||
# vim: fenc=UTF-8
|
||
|
||
# These are all the texts to build the translations files.
|
||
# The file has the form of 'english text' => 'foreign text',
|
||
... | ... | |
'<%total%> -- Amount payable' => '<%total%> -- Noch zu bezahlender Betrag',
|
||
'<%total_wo_skonto%> -- Amount payable less discount' => '<%total_wo_skonto%> -- Noch zu bezahlender Betrag abzüglich Skonto',
|
||
'*/' => '*/',
|
||
'---please select---' => '---bitte ausw?hlen---',
|
||
'---please select---' => '---bitte auswählen---',
|
||
'...after loggin in' => '...nach dem Anmelden',
|
||
'...done' => '...fertig',
|
||
'...on the TODO list' => '...auf der Aufgabenliste',
|
||
... | ... | |
'A Buchungsgruppe consists of a descriptive name and the account numbers for the income and expense accounts for those four tax zones as well as the inventory account number.' => 'Eine Buchungsgruppe besteht aus einem deskriptiven Namen, den Erlös- und Aufwandskonten für diese vier Steuerzonen sowie aus einem Inventarkonto.',
|
||
'A group named "Full Access" has been created.' => 'Eine Gruppe namens "Vollzugriff" wurde angelegt.',
|
||
'A group with that name does already exist.' => 'Eine Gruppe mit diesem Namen gibt es bereits.',
|
||
'A lot of the usability of Lx-Office has been enhanced with javascript. Although it is currently possible to use every aspect of Lx-Office without javascript, we strongly recommend it. In a future version this may change and javascript may be necessary to access advanced features.' => 'Die Bedienung von Lx-Office wurde an vielen Stellen mit Javascript verbessert. Obwohl es derzeit m?glich ist, jeden Aspekt von Lx-Office auch ohne Javascript zu benutzen, empfehlen wir es. In einer zuk?nftigen Version wird Javascript eventuell notwendig sein um weitergehende Features zu benutzen.',
|
||
'A lot of the usability of Lx-Office has been enhanced with javascript. Although it is currently possible to use every aspect of Lx-Office without javascript, we strongly recommend it. In a future version this may change and javascript may be necessary to access advanced features.' => 'Die Bedienung von Lx-Office wurde an vielen Stellen mit Javascript verbessert. Obwohl es derzeit möglich ist, jeden Aspekt von Lx-Office auch ohne Javascript zu benutzen, empfehlen wir es. In einer zukünftigen Version wird Javascript eventuell notwendig sein um weitergehende Features zu benutzen.',
|
||
'A temporary directory could not be created:' => 'Ein temporäres Verzeichnis konnte nicht erstellt werden:',
|
||
'A temporary file could not be created. Please verify that the directory "#1" is writeable by the webserver.' => 'Eine tempor?re Datei konnte nicht angelegt werden. Bitte stellen Sie sicher, dass das Verzeichnis "#1" vom Webserver beschrieben werden darf.',
|
||
'A temporary file could not be created. Please verify that the directory "#1" is writeable by the webserver.' => 'Eine temporäre Datei konnte nicht angelegt werden. Bitte stellen Sie sicher, dass das Verzeichnis "#1" vom Webserver beschrieben werden darf.',
|
||
'A temporary file could not be created:' => 'Eine temporäre Datei konnte nicht erstellt werden:',
|
||
'A unit with this name does already exist.' => 'Eine Einheit mit diesem Namen existiert bereits.',
|
||
'A variable marked as \'editable\' can be changed in each quotation, order, invoice etc.' => 'Eine als \'editierbar\' markierte Variable kann in jedem Angebot, Auftrag, jeder Rechnung etc f?r jede Position ge?ndert werden.',
|
||
'ADDED' => 'Hinzugef?gt',
|
||
'A variable marked as \'editable\' can be changed in each quotation, order, invoice etc.' => 'Eine als \'editierbar\' markierte Variable kann in jedem Angebot, Auftrag, jeder Rechnung etc für jede Position geändert werden.',
|
||
'ADDED' => 'Hinzugefügt',
|
||
'AP' => 'Einkauf',
|
||
'AP Aging' => 'Offene Verbindlichkeiten',
|
||
'AP Transaction' => 'Kreditorenbuchung',
|
||
... | ... | |
'AP Transaction Storno (one letter abbreviation)' => 'S',
|
||
'AP Transaction with Storno (abbreviation)' => 'K(S)',
|
||
'AP Transactions' => 'Kreditorenbuchungen',
|
||
'AP transactions with sales taxkeys and/or AR transactions with input taxkeys' => 'Kreditorenbuchungen mit Umsatzsteuer-Steuerschl?sseln und/oder Debitorenbuchungen mit Vorsteuer-Steuerschl?sseln',
|
||
'AP transactions with sales taxkeys and/or AR transactions with input taxkeys' => 'Kreditorenbuchungen mit Umsatzsteuer-Steuerschlüsseln und/oder Debitorenbuchungen mit Vorsteuer-Steuerschlüsseln',
|
||
'AR' => 'Verkauf',
|
||
'AR Aging' => 'Offene Forderungen',
|
||
'AR Transaction' => 'Debitorenbuchung',
|
||
... | ... | |
'Account Category C' => 'Kosten',
|
||
'Account Category E' => 'Aufwandskonto',
|
||
'Account Category G' => '?Gegenkonto?',
|
||
'Account Category I' => 'Erl?skonto',
|
||
'Account Category I' => 'Erlöskonto',
|
||
'Account Category L' => 'Passiva/Mittelherkunft',
|
||
'Account Category Q' => 'Passiva',
|
||
'Account Description missing!' => 'Beschreibung fehlt!',
|
||
... | ... | |
'Account Link AP_paid' => 'Verbindlichkeiten Zahlungsausgang',
|
||
'Account Link AP_tax' => 'Verbindlichkeiten Steuer',
|
||
'Account Link AR' => 'Verkauf',
|
||
'Account Link AR_amount' => 'Forderungen Erl?skonto',
|
||
'Account Link AR_amount' => 'Forderungen Erlöskonto',
|
||
'Account Link AR_paid' => 'Forderungen Zahlungseingang',
|
||
'Account Link AR_tax' => 'Forderungen Steuer',
|
||
'Account Link CT_tax' => 'Kunde/Lieferant Steuer',
|
||
'Account Link IC' => 'Inventar',
|
||
'Account Link IC_cogs' => 'Warenliste Aufwandskonto',
|
||
'Account Link IC_expense' => 'Dienstleistungen Aufwandskonto',
|
||
'Account Link IC_income' => 'Dienstleistungen Erl?skonto',
|
||
'Account Link IC_sale' => 'Warenliste Erl?skonto',
|
||
'Account Link IC_income' => 'Dienstleistungen Erlöskonto',
|
||
'Account Link IC_sale' => 'Warenliste Erlöskonto',
|
||
'Account Link IC_taxpart' => 'Warenliste Steuer',
|
||
'Account Link IC_taxservice' => 'Dienstleistungen Steuer',
|
||
'Account Number' => 'Kontonummer',
|
||
... | ... | |
'Account Nummer' => 'Kontonummer',
|
||
'Account Type' => 'Kontoart',
|
||
'Account Type missing!' => 'Kontoart fehlt!',
|
||
'Account deleted!' => 'Konto gel?scht!',
|
||
'Account deleted!' => 'Konto gelöscht!',
|
||
'Account for fees' => 'Konto für Gebühren',
|
||
'Account for interest' => 'Konto für Zinsen',
|
||
'Account number' => 'Kontonummer',
|
||
... | ... | |
'Add Follow-Up for #1' => 'Wiedervorlage für #1 erstellen',
|
||
'Add General Ledger Transaction' => 'Dialogbuchen',
|
||
'Add Group' => 'Warengruppe erfassen',
|
||
'Add Language' => 'Sprache hinzuf?gen',
|
||
'Add Language' => 'Sprache hinzufügen',
|
||
'Add Lead' => 'Kundenquelle erfassen',
|
||
'Add License' => 'Lizenz erfassen',
|
||
'Add Part' => 'Ware erfassen',
|
||
'Add Payment Terms' => 'Zahlungskonditionen hinzuf?gen',
|
||
'Add Payment Terms' => 'Zahlungskonditionen hinzufügen',
|
Auch abrufbar als: Unified diff
Dateiencodings auf UTF-8 geändert
Fix für Bug 1375.