--- /dev/null
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Lx-Office: SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</title>
+</head>
+<body>
+
+<h1>Umsatzsteuer 19% für Verkauf mit Steuerschlüssel "EU ohne USt.-IdNr.":</h1>
+
+Die Umsatzsteuerumstellung auf 19% für SKR04 für die Steuerschlüssel "EU ohne
+USt-ID Nummer" ist erst 2010 erfolgt. Das Upgradeskript erstellt automatisch
+das Konto 3804 und stellt die Steuereinstellungen korrekt ein, hat der Benutzer
+aber schon selber das Konto 3804 angelegt, oder gab es schon Buchungen im
+Zeitraum nach dem 01.01.2007 auf das Konto 3803, wird das Upgradeskript
+vorsichtshalber nicht ausgeführt, da der Benutzer sich vielleicht schon selbst
+geholfen hat und mit seinen Änderungen zufrieden ist. Die korrekten
+Einstellungen kann man aber auch per Hand ausführen, nachfolgend werden die
+entsprechenden Schritte anhand von Screenshots dargestellt.
+
+Für den Fall, daß Buchungen mit der Steuerschlüssel "EU ohne USt.-IdNr." nach dem
+01.01.2007 erfolgt sind, ist davon auszugehen, daß diese mit dem alten
+Umsatzsteuersatz von 16% gebucht worden sind, und diese Buchungen sollten
+entsprechend kontrolliert werden.
+
+<h2>Lx-Office: 3804 hinzufügen</h2>
+Konto 3804 anlegen:<br>
+
+System -> Kontenübersicht -> Konto erfassen<br>
+
+<img src="konto3804.png" alt="konto3804.png">
+
+
+<h2>Steuergruppe 13 für Konto 3803 anpassen (16%):</h2>
+System -> Steuern -> bearbeiten -> Eintrag mit Steuerschlüssel 13 auswählen<br>
+
+<img src="steuer3803.png" alt="steuer3803.png">
+
+<h2>Neuen Eintrag mit Steuerschlüssel 13 für Konto 3804 (19%) anlegen</h2>
+System -> Steuern -> bearbeiten -> erfassen<br>
+
+<img src="steuer3804.png" alt="steuer3804.png">
+<h2>Alle Konten, die als Steuerautomatikkonto die 3803 haben, kriegen ab 1.1.2007 auch Steuerautomatik auf 3804</h2>
+
+Steuerschlüssel für Konto 4315 anpassen (das gleiche für 4726) <br>
+
+System -> Kontenübersicht -> Konten anzeigen -> 4315<br>
+
+<img src="konto4315.png" alt="konto4315.png">
+
+<h2>Steuerliste kontrolllieren</h2>
+System -> Steuern -> bearbeiten
+
+<img src="steuerliste.png" alt="steuerliste.png">
+
+</body></html>
'Please insert your longdescription below' => 'Bitte den Langtext eingeben',
'Please install the below listed modules or ask your system administrator to.' => 'Bitte installieren Sie die unten aufgeführten Module, oder bitten Sie Ihren Administrator darum.',
'Please re-run the analysis for broken general ledger entries by clicking this button:' => 'Bitte wiederholen Sie die Analyse der Hauptbucheinträge, indem Sie auf diesen Button klicken:',
+ 'Please read the file' => 'Bitte lesen Sie die Datei',
'Please select a customer from the list below.' => 'Bitte einen Endkunden aus der Liste auswählen',
'Please select a part from the list below.' => 'Bitte wählen Sie einen Artikel aus der Liste aus.',
'Please select a vendor from the list below.' => 'Bitte einen Händler aus der Liste auswählen',
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/authentication.pl.',
'The SEPA export has been created.' => 'Der SEPA-Export wurde erstellt',
'The access rights have been saved.' => 'Die Zugriffsrechte wurden gespeichert.',
+ 'The account 3804 already exists, the update will be skipped.' => 'Das Konto 3804 existiert schon, das Update wird übersprungen.',
+ 'The account 3804 will not be added automatically.' => 'Das Konto 3804 wird nicht automatisch hinzugefügt.',
'The assembly has been created.' => 'Das Erzeugnis wurde hergestellt.',
'The assistant could not find anything wrong with #1. Maybe the problem has been solved in the meantime.' => 'Der Korrekturassistent konnte kein Problem bei #1 feststellen. Eventuell wurde das Problem in der Zwischenzeit bereits behoben.',
'The authentication configuration file "config/authentication.pl" does not exist. This Lx-Office installation has probably not been updated correctly yet. Please contact your administrator.' => 'Die Konfigurationsdatei für die Authentifizierung "config/authentication.pl" wurde nicht gefunden. Diese Lx-Office-Installation wurde vermutlich noch nicht vollständig aktualisiert oder eingerichtet. Bitte wenden Sie sich an Ihren Administrator.',
'There are #1 more open invoices for this customer with other currencies.' => 'Es gibt #1 weitere offene Rechnungen für diesen Kunden, die in anderen Währungen ausgestellt wurden.',
'There are #1 more open invoices from this vendor with other currencies.' => 'Es gibt #1 weitere offene Rechnungen von diesem Lieferanten, die in anderen Währungen ausgestellt wurden.',
'There are #1 unfinished follow-ups of which #2 are due.' => 'Es gibt #1 Wiedervorlage(n), von denen #2 fällig ist/sind.',
+ 'There are bookings to the account 3803 after 01.01.2007. If you didn\'t change this account manually to 19% the bookings are probably incorrect.' => 'Das Konto 3803 wurde nach dem 01.01.2007 bebucht. Falls Sie dieses Konto nicht manuell auf 19% gestellt haben sind die Buchungen wahrscheinlich mit falscher Umsatzsteuer gebucht worden.',
'There are four tax zones.' => 'Es gibt vier Steuerzonen.',
'There are no items in stock.' => 'Dieser Artikel ist nicht eingelagert.',
'There are no items on your TODO list at the moment.' => 'Ihre Aufgabenliste enthält momentan keine Einträge.',
'Update' => 'Erneuern',
'Update Dataset' => 'Datenbank aktualisieren',
'Update Prices' => 'Preise aktualisieren',
+ 'Update SKR04: new tax account 3804 (19%)' => 'Update SKR04: neues Steuerkonto 3804 (19%) für innergemeinschaftlichen Erwerb',
'Update complete' => 'Update beendet.',
'Update prices' => 'Preise aktualisieren',
'Update?' => 'Aktualisieren?',
--- /dev/null
+# @tag: SKR04-3804-addition
+# @description: Konto 3804 zu SKR04 hinzufügen: Umsatzsteuer 19% für Steuerschlüssel 13 (Umsatzsteuer aus EG-Erwerb)
+# @depends:
+# @charset: UTF-8
+
+use strict;
+
+die("This script cannot be run from the command line.") unless ($main::form);
+
+sub mydberror {
+ my ($msg) = @_;
+ die($dbup_locale->text("Database update error:") . "<br>$msg<br>" . $DBI::errstr);
+}
+
+sub do_query {
+ my ($query, $may_fail) = @_;
+
+ if (!$dbh->do($query)) {
+ mydberror($query) unless ($may_fail);
+ $dbh->rollback();
+ $dbh->begin_work();
+ }
+}
+
+
+sub do_update {
+
+ # 1. Überprüfen ob Kontenrahmen SKR04 ist, wenn nicht alles überspringen
+ my ($kontenrahmen) = $dbh->selectrow_array("select coa from defaults");
+
+ unless ( $kontenrahmen eq 'Germany-DATEV-SKR04EU' ) {
+ print "Kontenrahmen ist nicht SKR04, überspringen<br>";
+ return 1;
+ };
+
+ # Mandant hat SKR04, erst prüfen wir, ob in der Vergangenheit Buchungen mit
+ # taxkey 13 erfolgt sind (Fall "EU ohne USt. ID), diese sind wahrscheinlich
+ # mit der falschen MwSt (16%) gebucht worden, wenn dies nicht manuell
+ # geändert worden ist
+
+ my ($anzahl_buchungen) = $dbh->selectrow_array("select count (*) from acc_trans where taxkey=13 and transdate >= '2007-01-01';");
+ if ( $anzahl_buchungen > 0 ) {
+ if ($main::form->{bookings_exist} ) {
+ # Benutzer hat Meldung bestätigt
+ print "Buchungen nach dem 01.01.2007 existierten, Upgrade überspringen";
+ return 1;
+ } else {
+ # Meldung anzeigen und auf Rückgabe warten
+ print_past_booking_warning();
+ return 2;
+ };
+ } else { # es gibt keine Buchungen mit taxkey 13 nach 01.01.2007
+
+ # prüfen ob Konto 3804 schon existiert
+ my ($konto_existiert) = $dbh->selectrow_array("select count (*) from chart where accno = '3804'");
+ if ( $konto_existiert ) {
+ # 3804 existiert, wir gehen davon aus, daß der Benutzer das Konto schon selber angelegt hat und
+ # ordnungsgemäß benutzt
+
+ if ($main::form->{account_exists} ) {
+ # Benutzer hat Meldung bestätigt
+ print "Konto existiert, Upgrade überspringen\n";
+ return 1;
+ } else {
+ # Meldung anzeigen und auf Rückgabe warten
+ print_3804_already_exists();
+ return 2;
+ };
+ } else {
+
+ # noch keine Buchungen mit taxkey 13 und Konto 3804 existiert noch nicht,
+ # also legen wir es an und machen noch die nötigen Einstellungen in tax und
+ # taxkeys
+
+ my $insert_chart = <<SQL;
+INSERT INTO chart (
+ accno, description,
+ charttype, category, link,
+ taxkey_id, pos_eur
+ )
+SELECT
+ '3804','Umsatzsteuer aus EG-Erwerb 19%',
+ 'A','I','AR_tax:IC_taxpart:IC_taxservice',
+ 0, (select pos_eur from chart where accno = '3803')
+WHERE EXISTS ( -- update only for SKR04, aber eigentlich schon überprüft
+ SELECT coa FROM defaults
+ WHERE defaults.coa='Germany-DATEV-SKR04EU'
+);
+SQL
+
+ do_query($insert_chart);
+
+ my $konto_anlegen = $dbh->prepare($insert_chart) || mydberror($insert_chart);
+
+
+ # 13-1 (16%) korrigieren:
+ my $edit_taxkey_13 = qq|UPDATE tax SET taxdescription = 'Steuerpflichtige EG-Lieferung zum vollen Steuersatz', rate = '0.16', chart_id = (select id FROM chart where accno = '3803'), taxnumber = 3803 WHERE taxkey = '13'|;
+ do_query($edit_taxkey_13);
+
+ # Sicherstellen, daß 3803 die richtige Bezeichnung hat
+ my $update_3803 = qq|update chart set description = 'Umsatzsteuer aus EG-Erwerb 16%' where accno = '3803'|;
+ do_query($update_3803);
+
+ # Zweiter Eintrag für taxkey 13 in key: 19%
+ my $insert_taxkey_13_2 = qq|INSERT INTO tax ( taxkey, taxdescription, rate, chart_id, taxnumber ) VALUES ('13', 'Steuerpflichtige EG-Lieferung zum vollen Steuersatz', '0.19', (select id from chart where accno = '3804'), '3804')|;
+
+ do_query($insert_taxkey_13_2);
+
+ # alle Konten finden, bei denen 3803 das Steuerautomatikkonto ist,
+ # und dort den zweiten Eintrag ab 1.1.2007 für 19% einstellen
+ my $sth_query = $dbh->prepare(qq|select c.id from chart c join taxkeys t on (c.id = t.chart_id) where tax_id = (select id from tax where taxnumber = '3803')|);
+ my $sth_insert = $dbh->prepare(qq|INSERT INTO taxkeys ( taxkey_id, chart_id, tax_id, pos_ustva, startdate )
+ VALUES (13, ?, (select id from tax where taxkey = 13 and rate = '0.19'),
+ (select pos_ustva from taxkeys where tax_id = (select id from tax where taxnumber = '3803') and pos_ustva > 0 limit 1),
+ '01.01.2007')|);
+ $sth_query->execute();
+
+ while (my $ref = $sth_query->fetchrow_hashref()) {
+ $sth_insert->execute($ref->{id});
+ }
+ $sth_query->finish();
+ $sth_insert->finish();
+
+ }; # end code update
+ }; # end check if 3804 exists
+
+}; # end do_update
+
+sub print_past_booking_warning {
+ print $main::form->parse_html_template("dbupgrade/SKR04_3804_update");
+};
+sub print_3804_already_exists {
+ print $main::form->parse_html_template("dbupgrade/SKR04_3804_already_exists");
+};
+
+return do_update();
--- /dev/null
+[% USE HTML %]<div class="listtop">Update SKR04: neues Steuerkonto 3804 (19%) für innergemeinschaftlichen Erwerb</div>
+
+<form action="[% script %]" method="POST">
+
+<p>Das Konto 3804 existiert schon, das Update wird übersprungen.</p>
+<p>Bitte lesen Sie die Dateidoc/skr04-update-3804/skr04_3804_hinzufuegen.html.
+
+<input type="hidden" name="account_exists" value="1">
+<input type="submit" value="Weiter">
+
+
--- /dev/null
+[% USE HTML %]<div class="listtop"><translate>Update SKR04: new tax account 3804 (19%)</translate></div>
+
+<form action="[% script %]" method="POST">
+
+<p><translate>The account 3804 already exists, the update will be skipped.</translate></p>
+<p><translate>Please read the file</translate>doc/skr04-update-3804/skr04_3804_hinzufuegen.html.
+
+<input type="hidden" name="account_exists" value="1">
+<input type="submit" value="<translate>Continue</translate>">
+
+
--- /dev/null
+[% USE HTML %]<div class="listtop">Update SKR04: neues Steuerkonto 3804 (19%) für innergemeinschaftlichen Erwerb</div>
+
+<form action="[% script %]" method="POST">
+
+<p>Das Konto 3803 wurde nach dem 01.01.2007 bebucht. Falls Sie dieses Konto nicht manuell auf 19% gestellt haben sind die Buchungen wahrscheinlich mit falscher Umsatzsteuer gebucht worden.</p>
+<p>Das Konto 3804 wird nicht automatisch hinzugefügt.</p>
+<p>Bitte lesen Sie die Dateidoc/skr04-update-3804/skr04_3804_hinzufuegen.html</p>
+
+<input type="hidden" name="bookings_exist" value="1">
+<input type="submit" value="Weiter">
+
+
--- /dev/null
+[% USE HTML %]<div class="listtop"><translate>Update SKR04: new tax account 3804 (19%)</translate></div>
+
+<form action="[% script %]" method="POST">
+
+<p><translate>There are bookings to the account 3803 after 01.01.2007. If you didn't change this account manually to 19% the bookings are probably incorrect.</translate></p>
+<p><translate>The account 3804 will not be added automatically.</translate></p>
+<p><translate>Please read the file</translate>doc/skr04-update-3804/skr04_3804_hinzufuegen.html</p>
+
+<input type="hidden" name="bookings_exist" value="1">
+<input type="submit" value="<translate>Continue</translate>">
+
+