--- /dev/null
+### Choose a character set (just in case you like to change it here)
+### uncommit the line you wish to activate
+#AddDefaultCharset ISO-8859-15
+#AddDefaultCharset UTF-8
+
+### simple access control by client ip
+### uncomment the lines starting with Order ..., Deny ... and Allow ...
+### examples: "Allow from 192.168" or "Allow from 192.168.1" or "Allow from 192.168.178" or "Allow from 217.84.201.2"
+#Order deny,allow
+#Deny from all
+#Allow from 192.168
my $module = $_[0];
my $version = $_[1] || '' ;
- return eval "use $module $version; 1";
+ my $got = eval "use $module $version; 1";
+
+ if ($got) {
+ return ($got, $module->VERSION);
+ } else {
+ return
+ }
}
sub check_kpsewhich {
# show pricegroup in newly loaded invoice when creating invoice from delivery order
for my $i (1 .. $form->{rowcount}) {
- $form->{"sellprice_pg_$i"} = join /--/, $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"};
+ $form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"};
}
IS->get_pricegroups_for_parts(\%myconfig, \%$form);
set_pricegroup($_) for 1 .. $form->{rowcount};
# show pricegroup in newly loaded invoice when creating invoice from delivery order
for my $i (1 .. $form->{rowcount}) {
- $form->{"sellprice_pg_$i"} = join /--/, $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"};
+ $form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"};
}
IS->get_pricegroups_for_parts(\%myconfig, \%$form);
set_pricegroup($_) for 1 .. $form->{rowcount};
$main::auth->assert('vendor_invoice_edit');
-# map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining);
-
&check_name('vendor');
+ if (!$form->{forex}) { # read exchangerate from input field (not hidden)
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate});
+ }
$form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'sell');
$form->{exchangerate} = $form->{forex} if $form->{forex};
my ($recursive_call) = @_;
- $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate}) unless $recursive_call;
-
$form->{print_and_post} = 0 if $form->{second_run};
my $taxincluded = $form->{taxincluded} ? "checked" : '';
$form->{update} = 1;
$form->{taxincluded} ||= $taxincluded;
+ if (!$form->{forex}) { # read exchangerate from input field (not hidden)
+ $form->{exchangerate} = $form->parse_amount(\%myconfig, $form->{exchangerate}) unless $recursive_call;
+ }
$form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'buy');
$form->{exchangerate} = $form->{forex} if $form->{forex};
set_headings($form->{"id"} ? "edit" : "add");
- map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call;
$form->{update} = 1;
&check_name($form->{vc});
+ if (!$form->{forex}) { # read exchangerate from input field (not hidden)
+ map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call;
+ }
my $buysell = 'buy';
$buysell = 'sell' if ($form->{vc} eq 'vendor');
$form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell);
- Bugfix 1752: Rechnung -> Druckvorschau ignoriert Änderung des Steuersatz beim Beleg
- Bugfix 1708: Fehlender Übertrag der Lieferadresse von Angebot -> Auftragsbestätigung
- Bugfix 1648: bebuchte Konten sollten nicht in Überschriften umgewandelt werden können
+ - Bugfix 1775: Wechselkurs in Einkaufrechnung kann nicht eingegeben werden
2011-06-15 - Release 2.6.3
'#1 (custom variable)' => '#1 (benutzerdefinierte Variable)',
'#1 of #2 importable objects were imported.' => '#1 von #2 importierbaren Objekten wurden importiert.',
'#1 prices were updated.' => '#1 Preise wurden aktualisiert.',
+ '* there are restrictions for the perpetual method, look at chapter "Bemerkungen zu Bestandsmethode" in' => ' für die Bestandsmethode gibt es Einschränkungen, siehe Kapitel "Bemerkungen zu Bestandsmethode" in',
+ '*) Since version 2.7 these parameters ares set in the client database and not in the lx-erp.conf / lx_office.conf file, details in chapter:' => '*) Seit 2.7 werden Gewinnermittlungsart, Versteuerungsart und Warenbuchungsmethode in der Mandanten-DB gesteuert und nicht mehr in der lx-erp.conf / lx_office.conf, Umstellungs-Details:',
'*/' => '*/',
'---please select---' => '---bitte auswählen---',
'...after loggin in' => '...nach dem Anmelden',
'For AP transactions it will replace the sales taxkeys with input taxkeys with the same tax rate.' => 'Bei Kreditorenbuchungen werden die Umsatzsteuer-Steuerschlüssel durch Vorsteuer-Steuerschlüssel mit demselben Steuersatz ersetzt.',
'For AR transactions it will replace the input taxkeys with sales taxkeys with the same tax rate.' => 'Bei Debitorenbuchungen werden die Vorsteuer-Steuerschlüssel durch Umsatzsteuer-Steuerschlüssel mit demselben Steuersatz ersetzt.',
'For each unit there\'s either no or exactly one base unit. If you chose a base unit then you also have to chose a factor. That way the new unit will be defined as a multiple of the base unit. The base unit must be the "smaller" one. A factor may not be less than 1. Therefore you may define "kg" with the base unit "g" and a factor of "1", but not the other way round.' => 'Einheiten haben entweder keine oder genau eine Basiseinheit, von der sie ein Vielfaches sind. Wenn Sie eine Basiseinheit auswählen, dann müssen Sie auch einen Faktor eingeben. Sie müssen Einheiten als ein Vielfaches einer kleineren Einheit eingeben. So ist die Definition von "kg" mit der Basiseinheit "g" und dem Faktor 1000 zulässig, die Definition von "g" mit der Basiseinheit "kg" und dem Faktor "0,001" hingegen nicht.',
- 'For further information read this:' => 'Für weitere Informationen zu diesem Thema lesen Sie bitte:',
+ 'For further information read this: ' => 'Für weitere Informationen zu diesem Thema lesen Sie bitte: ',
'Foreign Exchange Gain' => 'Wechselkurserträge',
'Foreign Exchange Loss' => 'Wechselkursaufwendungen',
'Foreign Expenses' => 'Aufwand Ausland',
'Openings' => 'Öffnungszeiten',
'Optional comment' => 'Optionaler Kommentar',
'Options' => 'Optionen',
- 'Or download the whole Installation Documentation as PDF (110kB) for off-line study (currently in German Language).' => 'Oder laden Sie die komplette Installationsbeschreibung als PDF (110kB) herunter.',
+ 'Or download the whole Installation Documentation as PDF (350kB) for off-line study (currently in German Language): ' => 'Oder laden Sie die komplette Installationsbeschreibung als PDF (350kB) herunter: ',
'Order' => 'Auftrag',
'Order Date' => 'Auftragsdatum',
'Order Date missing!' => 'Auftragsdatum fehlt!',
'Weight unit' => 'Gewichtseinheit',
'What <b>term</b> you are looking for?' => 'Nach welchem <b>Begriff</b> wollen Sie suchen?',
'What type of item is this?' => 'Was ist dieser Artikel?',
- 'Which is located at doc/konfigurationsdatei.txt. Click here: ' => 'Zu finden in doc/konfigurationsdatei.txt. Oder hier klicken: ',
+ 'Which is located at doc/dokumentation.pdf. Click here: ' => 'Zu finden in doc/dokumentation.pdf. Oder hier klicken: ',
'With Extension Of Time' => 'mit Dauerfristverlängerung',
'Workflow Delivery Order' => 'Workflow Lieferschein',
'Workflow purchase_order' => 'Workflow Lieferantenauftrag',
'You can create warehouses and bins via the menu "System -> Warehouses".' => 'Sie können Lager und Lagerplätze über das Menü "System -> Lager" anlegen.',
'You can declare different translations for singular and plural for each unit (e.g. "day" and "days).' => 'Bei den Übersetzungen können Sie unterschiedliche Varianten für singular und plural angeben (z.B. "day" und "days").',
'You can either create a new database or chose an existing database.' => 'Sie können entweder eine neue Datenbank erstellen oder eine existierende auswählen.',
- 'You can find information on the migration in the upgrade documentation.' => 'Informationen über die Migration sind in der Upgrade-Dokumentation zu finden.',
+ 'You can find information on the migration in the upgrade chapter of the documentation.' => 'Informationen über die Migration sind in der Upgrade Kapitel in der Dokumentation zu finden.',
'You can only delete datasets that are not in use.' => 'Sie können nur Datenbanken löschen, die momentan nicht in Benutzung sind.',
'You can use the following strings in the long description and all translations. They will be replaced by their actual values by Lx-Office before they\'re output.' => 'Sie können im Langtext und allen Übersetzungen die folgenden Variablen benutzen, die vor der Ausgabe von Lx-Office automatisch ersetzt werden:',
'You cannot adjust the price for pricegroup "#1" by a negative percentage.' => 'Sie können den Preis für Preisgruppe "#1" um einen negativen Prozentwert anpassen.',
'For AP transactions it will replace the sales taxkeys with input taxkeys with the same tax rate.' => 'Bei Kreditorenbuchungen werden die Umsatzsteuer-Steuerschlüssel durch Vorsteuer-Steuerschlüssel mit demselben Steuersatz ersetzt.',
'For AR transactions it will replace the input taxkeys with sales taxkeys with the same tax rate.' => 'Bei Debitorenbuchungen werden die Vorsteuer-Steuerschlüssel durch Umsatzsteuer-Steuerschlüssel mit demselben Steuersatz ersetzt.',
'For each unit there\'s either no or exactly one base unit. If you chose a base unit then you also have to chose a factor. That way the new unit will be defined as a multiple of the base unit. The base unit must be the "smaller" one. A factor may not be less than 1. Therefore you may define "kg" with the base unit "g" and a factor of "1", but not the other way round.' => 'Einheiten haben entweder keine oder genau eine Basiseinheit, von der sie ein Vielfaches sind. Wenn Sie eine Basiseinheit auswählen, dann müssen Sie auch einen Faktor eingeben. Sie müssen Einheiten als ein Vielfaches einer kleineren Einheit eingeben. So ist die Definition von "kg" mit der Basiseinheit "g" und dem Faktor 1000 zulässig, die Definition von "g" mit der Basiseinheit "kg" und dem Faktor "0,001" hingegen nicht.',
- 'For further information read this:' => 'Für weitere Informationen zu diesem Thema lesen Sie bitte:',
+ 'For further information read this: ' => 'Für weitere Informationen zu diesem Thema lesen Sie bitte: ',
'Foreign Exchange Gain' => 'Wechselkurserträge',
'Foreign Exchange Loss' => 'Wechselkursaufwendungen',
'Foreign Expenses' => 'Aufwand Ausland',
'Openings' => 'Öffnungszeiten',
'Optional comment' => 'Optionaler Kommentar',
'Options' => 'Optionen',
- 'Or download the whole Installation Documentation as PDF (110kB) for off-line study (currently in German Language).' => 'Oder laden Sie die komplette Installationsbeschreibung als PDF (110kB) herunter.',
+ 'Or download the whole Installation Documentation as PDF (350kB) for off-line study (currently in German Language): ' => 'Oder laden Sie die komplette Installationsbeschreibung als PDF (350kB) herunter: ',
'Order' => 'Auftrag',
'Order Date' => 'Auftragsdatum',
'Order Date missing!' => 'Auftragsdatum fehlt!',
"c|color!" => \ ( my $c = 1 ),
);
-# if notihing is requested check "required"
+# if nothing is requested check "required"
$check{r} = 1 unless defined $check{a} ||
defined $check{l} ||
defined $check{o} ||
defined $check{d};
-
+my $default_run ='1' if $check{r}; # no parameter, therefore print a note after default run
if ($check{a}) {
foreach my $check (keys %check) {
$check{$check} = 1 unless defined $check{$check};
if ($check{r}) {
print_header('Checking Required Modules');
check_module($_, required => 1) for @SL::InstallationCheck::required_modules;
+ print_header('Standard check for required modules done. See additional parameters for more checks (-- help)') if $default_run;
}
if ($check{o}) {
print_header('Checking Optional Modules');
my ($module, %role) = @_;
my $line = "Looking for $module->{fullname}";
- my $res = SL::InstallationCheck::module_available($module->{"name"}, $module->{version});
- print_result($line, $res);
+ my ($res, $ver) = SL::InstallationCheck::module_available($module->{"name"}, $module->{version});
+ if ($res) {
+ print_line($line, $ver || 'no version', 'green');
+ } else {
+ print_result($line, $res);
+ }
+
return if $res;
sub print_result {
my ($test, $exit) = @_;
- print $test, " ", ('.' x (72 - length $test));
- print $exit ? '.... '. mycolor('ok', 'green') : ' '. mycolor('NOT ok', 'red');
+ if ($exit) {
+ print_line($test, 'ok', 'green');
+ } else {
+ print_line($test, 'NOT ok', 'red');
+ }
+}
+
+sub print_line {
+ my ($text, $res, $color) = @_;
+ print $text, " ", ('.' x (78 - length($text) - length($res)));
+ print mycolor($res, $color);
print "\n";
return;
}
-Bitte lesen Sie die Datei doc/sql-upgrade-dateien.txt, bevor
+Bitte lesen Sie das Kapitel "SQL-Upgradedateien" aus doc/dokumentation.pdf, bevor
Sie hier Dateien anlegen.
# @tag: umstellung_eur
-# @description: Variable eur umstellen: bitte doc/umstellung_eur.txt lesen
+# @description: Variable eur umstellen: bitte in doc/dokumentation.pdf das entsprechende Kapitel zur Konfiguration von EUR lesen
# @depends: release_2_6_3
# @charset: utf-8
# only set parameters if they haven't already been set (this in only the case
# when upgrading)
- my $update_eur = "UPDATE defaults set accounting_method = '$accounting_method' where accounting_method is null;" .
+ my $update_eur = "UPDATE defaults set accounting_method = '$accounting_method' where accounting_method is null;" .
"UPDATE defaults set inventory_system = '$inventory_system' where inventory_system is null; " .
"UPDATE defaults set profit_determination = '$profit_determination' where profit_determination is null;";
do_query($update_eur);
<select name="inventory_system">
[% FOREACH row = INVENTORY_SYSTEMS %]<option value=[% HTML.escape(row.name) %] [% IF row.selected %]selected[% END %]>[% HTML.escape(row.name) | $T8 %]</option>[% END %]
</select>
- * für die Bestandsmethode gibt es Einschränkungen, siehe Bemerkungen in <a href="doc/umstellung_eur.txt">EUR Umstellung in Mandant</a>.
+ [% '* there are restrictions for the perpetual method, look at chapter "Bemerkungen zu Bestandsmethode" in' | $T8 %] <a href="doc/dokumentation.pdf">dokumentation.pdf</a>.
</td>
</tr>
</tr>
<tr>
<td colspan="2">
- *) Seit 2.7 werden Gewinnermittlungsart, Versteuerungsart und Warenbuchungsmethode in der Mandanten-DB gesteuert und nicht mehr in der lx-erp.conf, Umstellungs-Details: <a href="doc/umstellung_eur.txt">EUR Umstellung in Mandant</a>
+ [% '*) Since version 2.7 these parameters ares set in the client database and not in the lx-erp.conf / lx_office.conf file, details in chapter:' | $T8 %] <a href="doc/dokumentation.pdf">Kapitel Konfiguration zur Einnahmenüberschussrechnung/ Bilanzierung: EUR</a>
</td>
</tr>
</table>
"Die Buchungsgruppen sind nicht korrekt vorkonfiguriert" +
"\n" +
"fuer Kunden im Ausland." +
- "\n" +
+ "\n" +
"Hinweis vom 20.09.2011");
}
if (s == 'Swiss-German') {
<div class="listheading">[% title %]</div>
[% IF type == 'templates' %]
- <p style="text-align: right;">[<a href="doc/dokumentenvorlagen-und-variablen.html" target="_blank" title="[% 'Open in new window' | $T8 %]">[% 'Help Template Variables' | $T8 %]</a>]</p>
+ <p style="text-align: right;">[<a href="doc/html/ch03s02.html" target="_blank" title="[% 'Open in new window' | $T8 %]">[% 'Help Template Variables' | $T8 %]</a>]</p>
[% END %]
<form method="post" name="Form" action="amtemplates.pl">
<hr>
<p>
- [% LxERP.t8('For further information read this:') %]
- <a href="doc/INSTALL.html#Benutzerauthentifizierung-und-Administratorpasswort" target="_blank">Lx-Office Installation</a><br>
- [% LxERP.t8('Or download the whole Installation Documentation as PDF (110kB) for off-line study (currently in German Language).') %]
- <a href="doc/Lx-Office_Installation_DE.pdf">Lx-Office_Installation_DE.pdf</a>
+ [% LxERP.t8('For further information read this: ') %] <a href="doc/html/index.html" target="_blank">Lx-Office Installation</a><br>
+ [% LxERP.t8('Or download the whole Installation Documentation as PDF (350kB) for off-line study (currently in German Language): ') %] <a href="doc/dokumentation.pdf" target="_blank">dokumentation.pdf</a>
</p>
<hr>
<p>[% 'If you want to set up the authentication database yourself then log in to the administration panel. Lx-Office will then create the database and tables for you.' | $T8 %]</p>
<hr>
- <p>[% 'For further information read this:' | $T8 %] <a href="doc/INSTALL.html#Benutzerauthentifizierung-und-Administratorpasswort" target="_blank">Lx-Office Installation</a><br>
- [% 'Or download the whole Installation Documentation as PDF (110kB) for off-line study (currently in German Language).' | $T8 %] <a href="doc/Lx-Office_Installation_DE.pdf">Lx-Office_Installation_DE.pdf</a></p>
-
+ <p>[% 'For further information read this: ' | $T8 %] <a href="doc/html/index.html" target="_blank">Lx-Office Installation</a><br>
+ [% 'Or download the whole Installation Documentation as PDF (350kB) for off-line study (currently in German Language): ' | $T8 %] <a href="doc/dokumentation.pdf" target="_blank"> dokumentation.pdf</a></p>
+
<hr>
+
<p>
<a href="login.pl" target="_top">[% 'Login' | $T8 %]</a> |
<a href="admin.pl" target="_top">[% 'Administration' | $T8 %]</a>
</p>
<p>
- [%- LxERP.t8('You can find information on the migration in the upgrade documentation.') %]
+ [%- LxERP.t8('You can find information on the migration in the upgrade chapter of the documentation.') %]
</p>
<p>
- [%- LxERP.t8('Which is located at doc/konfigurationsdatei.txt. Click here: ') %] <a href ="doc/konfigurationsdatei.txt">doc/konfigurationsdatei.txt</a>
+ [%- LxERP.t8('Which is located at doc/dokumentation.pdf. Click here: ') %] <a href ="doc/dokumentation.pdf">doc/dokumentation.pdf</a>
</p>
<p>