Datenbankupgrade Buchungsgruppen: Erzeugnisse in einem eigenen Schritt behandeln.
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 13 Dec 2006 12:02:02 +0000 (12:02 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 13 Dec 2006 12:02:02 +0000 (12:02 +0000)
15 files changed:
locale/de/Pg-upgrade-2.2.0.33-2.2.0.34
locale/de/all
sql/Pg-upgrade/Pg-upgrade-2.2.0.33-2.2.0.34.pl
templates/webpages/dbupgrade/buchungsgruppen_assemblies_de.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_assemblies_done_de.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_assemblies_done_master.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_assemblies_master.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_parts_de.html
templates/webpages/dbupgrade/buchungsgruppen_parts_done_de.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_parts_done_master.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_parts_master.html
templates/webpages/dbupgrade/buchungsgruppen_services_de.html
templates/webpages/dbupgrade/buchungsgruppen_services_done_de.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_services_done_master.html [new file with mode: 0644]
templates/webpages/dbupgrade/buchungsgruppen_services_master.html

index 231c319..57ecbbb 100644 (file)
@@ -3,6 +3,7 @@ $self->{texts} = {
 };
 
 $self->{subs} = {
+  'assign_buchungsgruppen_for_assemblies' => 'assign_buchungsgruppen_for_assemblies',
   'create_buchungsgruppen'      => 'create_buchungsgruppen',
   'display_create_bgs_dialog'   => 'display_create_bgs_dialog',
   'do_update'                   => 'do_update',
@@ -16,6 +17,7 @@ $self->{subs} = {
   'set_ic_links'                => 'set_ic_links',
   'set_taxzone_ids'             => 'set_taxzone_ids',
   'update_known_buchungsgruppen' => 'update_known_buchungsgruppen',
+  'buchungsgruppe_erfassen'     => 'create_buchungsgruppen',
 };
 
 1;
index 0ba13d7..12ae269 100644 (file)
@@ -246,6 +246,7 @@ aktualisieren wollen?',
   'Could not transfer Inventory!' => 'Konnte Waren nicht umlagern!',
   'Could not update prices!'    => 'Preise konnten nicht aktualisiert werden!',
   'Country'                     => 'Land',
+  'Create Buchungsgruppen'      => 'Buchungsgruppe erfassen',
   'Create Chart of Accounts'    => 'Kontenplan anlegen',
   'Create Dataset'              => 'Datenbank anlegen',
   'Credit'                      => 'Haben',
@@ -352,6 +353,8 @@ gestartet',
   'E-mailed'                    => 'eMail gesendet.',
   'ELSTER Export nach Winston'  => 'ELSTER Export nach Winston',
   'ELSTER-Steuernummer: '       => 'ELSTER-Steuernummer: ',
+  'EU with VAT ID'              => 'EU mit UstId-Nummer',
+  'EU without VAT ID'           => 'EU ohne UstId-Nummer',
   'EUER'                        => 'Einnahmen-/Überschussrechnung',
   'EUR'                         => 'E/Ü-Rechnung',
   'Edit'                        => 'Bearbeiten',
@@ -413,9 +416,11 @@ gestartet',
   'Exchangerate Difference'     => 'Wechselkursunterschied',
   'Exchangerate for payment missing!' => 'Es fehlt der Wechselkurs für die Bezahlung!',
   'Exchangerate missing!'       => 'Es fehlt der Wechselkurs!',
+  'Existing Buchungsgruppen'    => 'Existierende Buchungsgruppen',
   'Existing Datasets'           => 'existierende Datenbanken',
   'Expense'                     => 'Aufwandskonto',
   'Expense Account'             => 'Aufwandskonto',
+  'Expense accno'               => 'Aufwandskonto',
   'Expense/Asset'               => 'Aufwand/Anlagen',
   'Expired licenses'            => 'Abgelaufene Lizenzen',
   'Expiring in x month(s)'      => 'Die in x Monat(en) ablaufen',
@@ -484,6 +489,7 @@ gestartet',
   'Include in Report'           => 'In Bericht aufnehmen',
   'Include in drop-down menus'  => 'In Aufklappmenü aufnehmen',
   'Income Statement'            => 'GuV',
+  'Income accno'                => 'Erl&ouml;skonto',
   'Incoming Payments'           => 'Zahlungseingänge',
   'Incorrect Password!'         => 'Ungültiges Passwort!',
   'Incorrect username or password!' => 'Ungültiger Benutzername oder falsches Passwort!',
@@ -493,6 +499,7 @@ gestartet',
   'Input Number Format'         => 'Zahlenformat (Eingabe)',
   'Interest Rate'               => 'Zinssatz',
   'Internal Notes'              => 'interne Bemerkungen',
+  'International'               => 'Ausland',
   'Internet'                    => 'Internet',
   'Introduction of Buchungsgruppen' => 'Einf&uuml;hrung von Buchungsgruppen',
   'Introduction of units'       => 'Einf&uuml;hrung von Einheiten',
@@ -505,6 +512,7 @@ gestartet',
   'Inventory quantity must be zero before you can set this part obsolete!' => 'Bevor diese Ware als ungültig markiert werden kann, muÃ\9f das Inventar Null sein!',
   'Inventory saved!'            => 'Inventar gespeichert.',
   'Inventory transferred!'      => 'Inventar umgelagert.',
+  'Invetory'                    => 'Inventar',
   'Invno.'                      => '',
   'Invnumber'                   => 'Rechnungsnummer',
   'Invoice'                     => 'Rechnung',
@@ -619,7 +627,9 @@ gestartet',
   'N/A'                         => 'N.Z.',
   'Name'                        => 'Name',
   'Name missing!'               => 'Name fehlt!',
+  'National'                    => 'Inand',
   'Netto Terms'                 => 'Zahlungsziel netto',
+  'New Buchungsgruppe <TMPL_VAR __counter__>' => 'Neue Buchungsgruppe <TMPL_VAR __counter__>',
   'New Templates'               => 'neue Vorlagen',
   'New unit'                    => 'Neue Einheit',
   'Next Dunning Level'          => 'Nächste Mahnstufe',
@@ -887,6 +897,7 @@ gestartet',
   'Statements sent to printer!' => 'Sammelrechnungen an Drucker geschickt!',
   'Step 1 of 3: Parts'          => 'Schritt 1 von 3: Waren',
   'Step 2 of 3: Services'       => 'Schritt 2 von 3: Dienstleistungen',
+  'Step 3 of 3: Assemblies'     => 'Schritt 3 von 3: Erzeugnisse',
   'Step 3 of 3: Default units'  => 'Schritt 3 von 3: Standardeinheiten',
   'Steuerberater/-in'           => 'Steuerberater/-in',
   'Steuernummer'                => 'Steuernummer',
@@ -933,6 +944,7 @@ gestartet',
   'The database upgrade for the introduction of units is now complete.' => 'Das Datenbankupgrade zwecks Einf&uuml;hrung von Einheiten ist nun beendet.',
   'The factor is missing in row %d.' => 'Der Faktor fehlt in Zeile %d.',
   'The factor is missing.'      => 'Der Faktor fehlt.',
+  'The following Buchungsgruppen have already been created:' => 'Die folgenden Buchungsgruppen wurden bereits angelegt:',
   'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
   'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
   'The following units are unknown.' => 'Die folgenden Einheiten sind unbekannt.',
@@ -949,6 +961,7 @@ gestartet',
   'The units have been saved.'  => 'Die Einheiten wurden gespeichert.',
   'There are four tax zones.'   => 'Es gibt vier Steuerzonen.',
   'There are still entries in the database for which no unit has been assigned.' => 'Es gibt noch Eintr&auml;ge in der Datenbank, f&uuml;r die keine Einheit zugeordnet ist.',
+  'There is nothing to do in this step.' => 'In diesem Schritt gibt es nichts mehr zu tun.',
   'Therefore there\'s no need to create the same article more than once if it is sold or bought in/from another tax zone.' => 'Deswegen muss man den gleichen Artikel nicht mehr mehrmals anlegen, wenn er in verschiedenen Steuerzonen gehandelt werden soll.',
   'These units can be based on other units so that Lx-Office can convert prices when the user switches from one unit to another.' => 'Diese Einheiten k&ouml;nnen auf anderen Einheiten basieren, sodass Lx-Office Preise umrechnen kann, wenn der Benutzer von einer Einheit zu einer anderen Wechselt.',
   'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine Änderungen vorgenommen!',
index 2b0765f..cc4780e 100644 (file)
@@ -1,5 +1,7 @@
 #!/usr/bin/perl
 
+# Datenbankupgrade: Einfuehrung von Buchungsgruppen
+
 die("This script cannot be run from the command line.") unless ($main::form);
 
 sub mydberror {
@@ -52,13 +54,18 @@ sub set_ic_links {
 
 sub force_inventory_accno_id_for_parts {
   my $query =
-    "UPDATE parts SET inventory_accno_id = " .
-    "(SELECT bg.inventory_accno_id " .
-    " FROM buchungsgruppen bg " .
-    " WHERE bg.description = 'Standard 16%') " .
-    "WHERE (NOT inventory_accno_id ISNULL) AND (inventory_accno_id > 0)";
+    "SELECT inventory_accno_id " .
+    "FROM buchungsgruppen " .
+    "WHERE description = 'Standard 16%'";
+
+  my ($bg_id) = $dbh->selectrow_array($query);
 
-  $dbh->do($query) || mydberror($query);
+  if ($bg_id) {
+    $query =
+      "UPDATE parts SET inventory_accno_id = $bg_id " .
+      "WHERE (NOT inventory_accno_id ISNULL) AND (inventory_accno_id > 0)";
+    $dbh->do($query) || mydberror($query);
+  }
 }
 
 sub retrieve_accounts {
@@ -150,7 +157,7 @@ sub update_known_buchungsgruppen {
   my $query =
     "SELECT id, inventory_accno_id, income_accno_id, expense_accno_id " .
     "FROM parts " .
-    "WHERE NOT inventory_accno_id ISNULL AND (inventory_accno_id > 0)";
+    "WHERE NOT inventory_accno_id ISNULL AND (inventory_accno_id > 0) ";
   my $sth = $dbh->prepare($query);
   $sth->execute() || mydberror($query);
 
@@ -178,7 +185,8 @@ sub update_known_buchungsgruppen {
   my $query =
     "SELECT id, inventory_accno_id, income_accno_id, expense_accno_id " .
     "FROM parts " .
-    "WHERE inventory_accno_id ISNULL OR (inventory_accno_id = 0)";
+    "WHERE (inventory_accno_id ISNULL OR (inventory_accno_id = 0)) AND " .
+    " NOT assembly";
   my $sth = $dbh->prepare($query);
   $sth->execute() || mydberror($query);
 
@@ -201,7 +209,7 @@ sub update_known_buchungsgruppen {
 sub retrieve_unknown_accno_combinations {
   my ($buchungsgruppen) = @_;
 
-  my (@parts, @services, $sth, $query, $ref);
+  my (@parts, @services, @assemblies, $sth, $query, $ref);
 
   $query =
     "SELECT DISTINCT " .
@@ -240,10 +248,10 @@ sub retrieve_unknown_accno_combinations {
     "c2.accno AS income_accno, c2.description AS income_description, " .
     "c3.accno AS expense_accno, c3.description AS expense_description " .
     "FROM parts p " .
-    "LEFT JOIN chart c1 ON p.inventory_accno_id = c1.id " .
     "LEFT JOIN chart c2 ON p.income_accno_id = c2.id " .
     "LEFT JOIN chart c3 ON p.expense_accno_id = c3.id " .
-    "WHERE inventory_accno_id ISNULL OR (inventory_accno_id = 0)";
+    "WHERE (inventory_accno_id ISNULL OR (inventory_accno_id = 0)) AND " .
+    " NOT assembly";
 
   $sth = $dbh->prepare($query);
   $sth->execute() || mydberror($query);
@@ -263,7 +271,23 @@ sub retrieve_unknown_accno_combinations {
   }
   $sth->finish();
 
-  return (\@parts, \@services);
+  $query =
+    "SELECT DISTINCT " .
+    "p.income_accno_id, " .
+    "c.accno AS income_accno, c.description AS income_description " .
+    "FROM parts p " .
+    "LEFT JOIN chart c ON p.income_accno_id = c.id " .
+    "WHERE p.assembly AND " .
+    " (p.buchungsgruppen_id ISNULL OR (p.buchungsgruppen_id = 0))";
+
+  $sth = $dbh->prepare($query);
+  $sth->execute() || mydberror($query);
+
+  while ($ref = $sth->fetchrow_hashref()) {
+    push(@assemblies, $ref);
+  }
+
+  return (\@parts, \@services, \@assemblies);
 }
 
 sub display_create_bgs_dialog {
@@ -278,6 +302,10 @@ sub display_create_bgs_dialog {
     $entry->{"eur"} = $main::eur;
   }
 
+  # $form->parse_html_template("dbupgrade/buchungsgruppen_parts")
+  # $form->parse_html_template("dbupgrade/buchungsgruppen_services")
+  # $form->parse_html_template("dbupgrade/buchungsgruppen_assemblies")
+
   print($form->parse_html_template("dbupgrade/buchungsgruppen_${type}",
                                    { "LIST" => $list,
                                      "BUCHUNGSGRUPPEN" => $buchungsgruppen,
@@ -299,15 +327,17 @@ sub create_buchungsgruppen {
                  $form->{"income_accno_id_3_$i"} &&
                  $form->{"expense_accno_id_3_$i"});
 
-    my $query =
+    my $query = "SELECT nextval('id')";
+    my ($id) = $dbh->selectrow_array($query);
+    $query =
       "INSERT INTO buchungsgruppen (" .
-      "description, inventory_accno_id, " .
+      "id, description, inventory_accno_id, " .
       "income_accno_id_0, expense_accno_id_0, " .
       "income_accno_id_1, expense_accno_id_1, " .
       "income_accno_id_2, expense_accno_id_2, " .
       "income_accno_id_3, expense_accno_id_3) " .
-      "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
-    my @values = ($form->{"description_$i"});
+      "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+    my @values = ($id, $form->{"description_$i"});
 
     foreach my $acc (qw(inventory_accno_id
                         income_accno_id_0 expense_accno_id_0
@@ -318,8 +348,36 @@ sub create_buchungsgruppen {
     }
 
     mydoquery($query, @values);
+
+    $form->{"new_buchungsgruppen_id_$i"} = $id;
+  }
+
+  $dbh->commit();
+  $dbh->begin_work();
+}
+
+sub assign_buchungsgruppen_for_assemblies {
+  my ($query, $sth, $i);
+
+  $query =
+    "UPDATE parts " .
+    "SET buchungsgruppen_id = ? " .
+    "WHERE assembly AND " .
+    "(buchungsgruppen_id ISNULL OR (buchungsgruppen_id = 0)) AND " .
+    "(income_accno_id = ?)";
+  $sth = $dbh->prepare($query);
+
+  for ($i = 1; $i <= $form->{"rowcount"}; $i++) {
+    next unless ($form->{"new_buchungsgruppen_id_$i"});
+
+    my @values = ($form->{"new_buchungsgruppen_id_$i"},
+                  $form->{"income_accno_id_0_$i"});
+    $sth->execute(@values) ||
+      mydberror($query . " (" . join(", ", @values) . ")");
   }
 
+  $sth->finish();
+
   $dbh->commit();
   $dbh->begin_work();
 }
@@ -359,6 +417,8 @@ sub retrieve_std_inventory_accno_id {
     $sth->finish();
   }
 
+  $inventory_accno_id = 1 unless ($inventory_accno_id);
+
   $form->{"std_inventory_accno_id"} = $inventory_accno_id;
 }
 
@@ -367,6 +427,11 @@ sub do_update {
     create_buchungsgruppen();
   }
 
+  if ($main::form->{"action2"} eq "create_buchungsgruppen_assemblies") {
+    create_buchungsgruppen();
+    assign_buchungsgruppen_for_assemblies();
+  }
+
   retrieve_std_inventory_accno_id();
 
   # Set all taxzone_id columns = 0.
@@ -389,7 +454,8 @@ sub do_update {
   # Retrieve all distinct combinations of inventory_accno_id,
   # income_accno_id and expense_accno_id for which there's no
   # Buchungsgruppe. Then let the user create new ones.
-  ($parts, $services) = retrieve_unknown_accno_combinations($buchungsgruppen);
+  ($parts, $services, $assemblies) =
+    retrieve_unknown_accno_combinations($buchungsgruppen);
 
   my ($acc_inventory, $acc_income, $acc_expense) = retrieve_accounts();
 
@@ -400,6 +466,8 @@ sub do_update {
                               $acc_inventory, $acc_income, $acc_expense,
                               $buchungsgruppen);
     return 2;
+  } else {
+    print($form->parse_html_template("dbupgrade/buchungsgruppen_parts_done"));
   }
 
   if (scalar(@{$services})) {
@@ -407,6 +475,17 @@ sub do_update {
                               $acc_inventory, $acc_income, $acc_expense,
                               $buchungsgruppen);
     return 2;
+  } else {
+    print($form->parse_html_template("dbupgrade/buchungsgruppen_services_done"));
+  }
+
+  if (scalar(@{$assemblies})) {
+    display_create_bgs_dialog("assemblies", $assemblies,
+                              $acc_inventory, $acc_income, $acc_expense,
+                              $buchungsgruppen);
+    return 2;
+  } else {
+    print($form->parse_html_template("dbupgrade/buchungsgruppen_assemblies_done"));
   }
 
   print($form->parse_html_template("dbupgrade/buchungsgruppen_footer"));
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_assemblies_de.html b/templates/webpages/dbupgrade/buchungsgruppen_assemblies_de.html
new file mode 100644 (file)
index 0000000..daf9821
--- /dev/null
@@ -0,0 +1,146 @@
+<div class="listtop">Schritt 3 von 3: Erzeugnisse</div>
+
+<form name="Form" method="post" action="login.pl">
+
+ <input type="hidden" name="path" value="<TMPL_VAR path ESCAPE=HTML>">
+ <input type="hidden" name="login" value="<TMPL_VAR login ESCAPE=HTML>">
+ <input type="hidden" name="hashed_password" value="<TMPL_VAR password ESCAPE=HTML>">
+ <input type="hidden" name="type" value="parts">
+ <input type="hidden" name="action" value="login">
+ <input type="hidden" name="action2" value="create_buchungsgruppen_assemblies">
+
+ <TMPL_IF saved_message>
+  <p><TMPL_VAR saved_message></p>
+ </TMPL_IF>
+
+ <div class="subsubheading">Existierende Buchungsgruppen</div>
+
+ <p>
+  Die folgenden Buchungsgruppen wurden bereits angelegt:
+  <br>
+  <ul>
+   <TMPL_LOOP BUCHUNGSGRUPPEN>
+    <li>
+     <TMPL_VAR description ESCAPE=HTML>:
+     Inventar: <TMPL_VAR inventory_accno>;
+
+     Erl&ouml;skonto/Aufwandskonto
+     Inand: <TMPL_VAR income_accno_0>/<TMPL_VAR expense_accno_0>;
+
+     Erl&ouml;skonto/Aufwandskonto
+     EU mit UstId-Nummer: <TMPL_VAR income_accno_1>/<TMPL_VAR expense_accno_1>;
+
+     Erl&ouml;skonto/Aufwandskonto
+     EU ohne UstId-Nummer: <TMPL_VAR income_accno_2>/<TMPL_VAR expense_accno_2>;
+
+     Erl&ouml;skonto/Aufwandskonto
+     Ausland: <TMPL_VAR income_accno_3>/<TMPL_VAR expense_accno_3>
+    </li>
+   </TMPL_LOOP>
+  </ul>
+ </p>
+
+ <TMPL_LOOP LIST>
+  <div class="subsubheading">Neue Buchungsgruppe <TMPL_VAR __counter__></div>
+
+  <table>
+   <tr>
+    <td>Beschreibung:</td>
+    <td><input name="description_<TMPL_VAR __counter__>"></td>
+   </tr>
+
+   <TMPL_IF eur>
+    <input type="hidden" name="inventory_accno_id_<TMPL_VAR __counter__>" value="<TMPL_VAR std_inventory_accno_id>">
+    <TMPL_ELSE>
+    <tr>
+     <td>Inventar:</td>
+     <td>
+      <input type="hidden" name="inventory_accno_id_<TMPL_VAR __counter__>" value="<TMPL_VAR inventory_accno_id ESCAPE=HTML>">
+      <TMPL_VAR inventory_accno ESCAPE=HTML>--<TMPL_VAR inventory_description ESCAPE=HTML>
+     </td>
+    </tr>
+   </TMPL_IF>
+
+   <tr>
+    <td>Erl&ouml;skonto Inand:</td>
+    <td>
+     <input type="hidden" name="income_accno_id_0_<TMPL_VAR __counter__>" value="<TMPL_VAR income_accno_id ESCAPE=HTML>">
+     <TMPL_VAR income_accno ESCAPE=HTML>--<TMPL_VAR income_description ESCAPE=HTML>
+    </td>
+   </tr>
+
+   <tr>
+    <td>Aufwandskonto EU mit UstId-Nummer:</td>
+    <td>
+     <select name="expense_accno_id_0_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td>Erl&ouml;skonto EU mit UstId-Nummer:</td>
+    <td>
+     <select name="income_accno_id_1_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_INCOME><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td>Aufwandskonto EU mit UstId-Nummer:</td>
+    <td>
+     <select name="expense_accno_id_1_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td>Erl&ouml;skonto EU ohne UstId-Nummer:</td>
+    <td>
+     <select name="income_accno_id_2_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_INCOME><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td>Aufwandskonto EU ohne UstId-Nummer:</td>
+    <td>
+     <select name="expense_accno_id_2_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td>Erl&ouml;skonto Ausland:</td>
+    <td>
+     <select name="income_accno_id_3_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_INCOME><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td>Aufwandskonto Ausland:</td>
+    <td>
+     <select name="expense_accno_id_3_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+  </table>
+
+  <TMPL_IF __last__>
+   <input type="hidden" name="rowcount" value="<TMPL_VAR __counter__>">
+  </TMPL_IF>
+
+  <hr>
+ </TMPL_LOOP>
+
+ <input type="submit" name="dummy" value="Buchungsgruppe erfassen">
+
+</form>
+
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_assemblies_done_de.html b/templates/webpages/dbupgrade/buchungsgruppen_assemblies_done_de.html
new file mode 100644 (file)
index 0000000..088d233
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="listtop">Schritt 3 von 3: Erzeugnisse</div>
+
+<p>In diesem Schritt gibt es nichts mehr zu tun.</p>
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_assemblies_done_master.html b/templates/webpages/dbupgrade/buchungsgruppen_assemblies_done_master.html
new file mode 100644 (file)
index 0000000..26af74e
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="listtop"><translate>Step 3 of 3: Assemblies</translate></div>
+
+<p><translate>There is nothing to do in this step.</translate></p>
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_assemblies_master.html b/templates/webpages/dbupgrade/buchungsgruppen_assemblies_master.html
new file mode 100644 (file)
index 0000000..7381b93
--- /dev/null
@@ -0,0 +1,146 @@
+<div class="listtop"><translate>Step 3 of 3: Assemblies</translate></div>
+
+<form name="Form" method="post" action="login.pl">
+
+ <input type="hidden" name="path" value="<TMPL_VAR path ESCAPE=HTML>">
+ <input type="hidden" name="login" value="<TMPL_VAR login ESCAPE=HTML>">
+ <input type="hidden" name="hashed_password" value="<TMPL_VAR password ESCAPE=HTML>">
+ <input type="hidden" name="type" value="parts">
+ <input type="hidden" name="action" value="login">
+ <input type="hidden" name="action2" value="create_buchungsgruppen_assemblies">
+
+ <TMPL_IF saved_message>
+  <p><TMPL_VAR saved_message></p>
+ </TMPL_IF>
+
+ <div class="subsubheading"><translate>Existing Buchungsgruppen</translate></div>
+
+ <p>
+  <translate>The following Buchungsgruppen have already been created:</translate>
+  <br>
+  <ul>
+   <TMPL_LOOP BUCHUNGSGRUPPEN>
+    <li>
+     <TMPL_VAR description ESCAPE=HTML>:
+     <translate>Invetory</translate>: <TMPL_VAR inventory_accno>;
+
+     <translate>Income accno</translate>/<translate>Expense accno</translate>
+     <translate>National</translate>: <TMPL_VAR income_accno_0>/<TMPL_VAR expense_accno_0>;
+
+     <translate>Income accno</translate>/<translate>Expense accno</translate>
+     <translate>EU with VAT ID</translate>: <TMPL_VAR income_accno_1>/<TMPL_VAR expense_accno_1>;
+
+     <translate>Income accno</translate>/<translate>Expense accno</translate>
+     <translate>EU without VAT ID</translate>: <TMPL_VAR income_accno_2>/<TMPL_VAR expense_accno_2>;
+
+     <translate>Income accno</translate>/<translate>Expense accno</translate>
+     <translate>International</translate>: <TMPL_VAR income_accno_3>/<TMPL_VAR expense_accno_3>
+    </li>
+   </TMPL_LOOP>
+  </ul>
+ </p>
+
+ <TMPL_LOOP LIST>
+  <div class="subsubheading"><translate>New Buchungsgruppe <TMPL_VAR __counter__></translate></div>
+
+  <table>
+   <tr>
+    <td><translate>Description</translate>:</td>
+    <td><input name="description_<TMPL_VAR __counter__>"></td>
+   </tr>
+
+   <TMPL_IF eur>
+    <input type="hidden" name="inventory_accno_id_<TMPL_VAR __counter__>" value="<TMPL_VAR std_inventory_accno_id>">
+    <TMPL_ELSE>
+    <tr>
+     <td><translate>Inventory</translate>:</td>
+     <td>
+      <input type="hidden" name="inventory_accno_id_<TMPL_VAR __counter__>" value="<TMPL_VAR inventory_accno_id ESCAPE=HTML>">
+      <TMPL_VAR inventory_accno ESCAPE=HTML>--<TMPL_VAR inventory_description ESCAPE=HTML>
+     </td>
+    </tr>
+   </TMPL_IF>
+
+   <tr>
+    <td><translate>Income accno</translate> <translate>National</translate>:</td>
+    <td>
+     <input type="hidden" name="income_accno_id_0_<TMPL_VAR __counter__>" value="<TMPL_VAR income_accno_id ESCAPE=HTML>">
+     <TMPL_VAR income_accno ESCAPE=HTML>--<TMPL_VAR income_description ESCAPE=HTML>
+    </td>
+   </tr>
+
+   <tr>
+    <td><translate>Expense accno</translate> <translate>EU with VAT ID</translate>:</td>
+    <td>
+     <select name="expense_accno_id_0_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td><translate>Income accno</translate> <translate>EU with VAT ID</translate>:</td>
+    <td>
+     <select name="income_accno_id_1_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_INCOME><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td><translate>Expense accno</translate> <translate>EU with VAT ID</translate>:</td>
+    <td>
+     <select name="expense_accno_id_1_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td><translate>Income accno</translate> <translate>EU without VAT ID</translate>:</td>
+    <td>
+     <select name="income_accno_id_2_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_INCOME><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td><translate>Expense accno</translate> <translate>EU without VAT ID</translate>:</td>
+    <td>
+     <select name="expense_accno_id_2_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td><translate>Income accno</translate> <translate>International</translate>:</td>
+    <td>
+     <select name="income_accno_id_3_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_INCOME><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+
+   <tr>
+    <td><translate>Expense accno</translate> <translate>International</translate>:</td>
+    <td>
+     <select name="expense_accno_id_3_<TMPL_VAR __counter__>">
+      <TMPL_LOOP ACC_EXPENSE><option value="<TMPL_VAR id>" <TMPL_VAR selected>><TMPL_VAR accno ESCAPE=HTML>--<TMPL_VAR description ESCAPE=HTML></option></TMPL_LOOP>
+     </select>
+    </td>
+   </tr>
+  </table>
+
+  <TMPL_IF __last__>
+   <input type="hidden" name="rowcount" value="<TMPL_VAR __counter__>">
+  </TMPL_IF>
+
+  <hr>
+ </TMPL_LOOP>
+
+ <input type="submit" name="dummy" value="<translate>Create Buchungsgruppen</translate>">
+
+</form>
+
index 9c2185b..452047e 100644 (file)
@@ -1,4 +1,4 @@
-<div class="listtop">Schritt 1 von 2: Waren</div>
+<div class="listtop">Schritt 1 von 3: Waren</div>
 
 <form name="Form" method="post" action="login.pl">
 
@@ -13,7 +13,7 @@
   <p><TMPL_VAR saved_message></p>
  </TMPL_IF>
 
- <div class="subsubheading">Bestehende Buchungsgruppen</div>
+ <div class="subsubheading">Existierende Buchungsgruppen</div>
 
  <p>
   Die folgenden Buchungsgruppen wurden bereits angelegt:
@@ -25,7 +25,7 @@
      Inventar: <TMPL_VAR inventory_accno>;
 
      Erl&ouml;skonto/Aufwandskonto
-     Inland: <TMPL_VAR income_accno_0>/<TMPL_VAR expense_accno_0>;
+     Inand: <TMPL_VAR income_accno_0>/<TMPL_VAR expense_accno_0>;
 
      Erl&ouml;skonto/Aufwandskonto
      EU mit UstId-Nummer: <TMPL_VAR income_accno_1>/<TMPL_VAR expense_accno_1>;
@@ -62,7 +62,7 @@
    </TMPL_IF>
 
    <tr>
-    <td>Erl&ouml;skonto Inland:</td>
+    <td>Erl&ouml;skonto Inand:</td>
     <td>
      <input type="hidden" name="income_accno_id_0_<TMPL_VAR __counter__>" value="<TMPL_VAR income_accno_id ESCAPE=HTML>">
      <TMPL_VAR income_accno ESCAPE=HTML>--<TMPL_VAR income_description ESCAPE=HTML>
@@ -70,7 +70,7 @@
    </tr>
 
    <tr>
-    <td>Aufwandskonto Inland:</td>
+    <td>Aufwandskonto Inand:</td>
     <td>
      <input type="hidden" name="expense_accno_id_0_<TMPL_VAR __counter__>" value="<TMPL_VAR expense_accno_id ESCAPE=HTML>">
      <TMPL_VAR expense_accno ESCAPE=HTML>--<TMPL_VAR expense_description ESCAPE=HTML>
   <hr>
  </TMPL_LOOP>
 
- <input type="submit" onclick="document.Form.action2.value = 'create_buchungsgruppen'; document.Form.submit();" name="dummy" value="Buchungsgruppen erfassen">
+ <input type="submit" onclick="document.Form.action2.value = 'create_buchungsgruppen'; document.Form.submit();" name="dummy" value="Buchungsgruppe erfassen">
 
 </form>
 
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_parts_done_de.html b/templates/webpages/dbupgrade/buchungsgruppen_parts_done_de.html
new file mode 100644 (file)
index 0000000..e2f26c8
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="listtop">Schritt 1 von 3: Waren</div>
+
+<p>In diesem Schritt gibt es nichts mehr zu tun.</p>
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_parts_done_master.html b/templates/webpages/dbupgrade/buchungsgruppen_parts_done_master.html
new file mode 100644 (file)
index 0000000..0c4b178
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="listtop"><translate>Step 1 of 3: Parts</translate></div>
+
+<p><translate>There is nothing to do in this step.</translate></p>
index 318b000..6f4e949 100644 (file)
@@ -1,4 +1,4 @@
-<div class="listtop"><translate>Step 1 of 2: Parts</translate></div>
+<div class="listtop"><translate>Step 1 of 3: Parts</translate></div>
 
 <form name="Form" method="post" action="login.pl">
 
index b56ff43..b2659ce 100644 (file)
@@ -1,4 +1,4 @@
-<div class="listtop">Schritt 2 von 2: Dienstleistungen</div>
+<div class="listtop">Schritt 2 von 3: Dienstleistungen</div>
 
 <form name="Form" method="post" action="login.pl">
 
@@ -13,7 +13,7 @@
   <p><TMPL_VAR saved_message></p>
  </TMPL_IF>
 
- <div class="subsubheading">Bestehende Buchungsgruppen</div>
+ <div class="subsubheading">Existierende Buchungsgruppen</div>
 
  <p>
   Die folgenden Buchungsgruppen wurden bereits angelegt:
@@ -25,7 +25,7 @@
      Inventar: <TMPL_VAR inventory_accno>;
 
      Erl&ouml;skonto/Aufwandskonto
-     Inland: <TMPL_VAR income_accno_0>/<TMPL_VAR expense_accno_0>;
+     Inand: <TMPL_VAR income_accno_0>/<TMPL_VAR expense_accno_0>;
 
      Erl&ouml;skonto/Aufwandskonto
      EU mit UstId-Nummer: <TMPL_VAR income_accno_1>/<TMPL_VAR expense_accno_1>;
@@ -63,7 +63,7 @@
    </TMPL_IF>
 
    <tr>
-    <td>Erl&ouml;skonto Inland:</td>
+    <td>Erl&ouml;skonto Inand:</td>
     <td>
      <input type="hidden" name="income_accno_id_0_<TMPL_VAR __counter__>" value="<TMPL_VAR income_accno_id ESCAPE=HTML>">
      <TMPL_VAR income_accno ESCAPE=HTML>--<TMPL_VAR income_description ESCAPE=HTML>
@@ -71,7 +71,7 @@
    </tr>
 
    <tr>
-    <td>Aufwandskonto Inland:</td>
+    <td>Aufwandskonto Inand:</td>
     <td>
      <input type="hidden" name="expense_accno_id_0_<TMPL_VAR __counter__>" value="<TMPL_VAR expense_accno_id ESCAPE=HTML>">
      <TMPL_VAR expense_accno ESCAPE=HTML>--<TMPL_VAR expense_description ESCAPE=HTML>
   <hr>
  </TMPL_LOOP>
 
- <input type="submit" onclick="document.Form.action2.value = 'create_buchungsgruppen'; document.Form.submit();" name="dummy" value="Buchungsgruppen erfassen">
+ <input type="submit" onclick="document.Form.action2.value = 'create_buchungsgruppen'; document.Form.submit();" name="dummy" value="Buchungsgruppe erfassen">
 
 </form>
 
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_services_done_de.html b/templates/webpages/dbupgrade/buchungsgruppen_services_done_de.html
new file mode 100644 (file)
index 0000000..b2df9bd
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="listtop">Schritt 2 von 3: Dienstleistungen</div>
+
+<p>In diesem Schritt gibt es nichts mehr zu tun.</p>
diff --git a/templates/webpages/dbupgrade/buchungsgruppen_services_done_master.html b/templates/webpages/dbupgrade/buchungsgruppen_services_done_master.html
new file mode 100644 (file)
index 0000000..c55db13
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="listtop"><translate>Step 2 of 3: Services</translate></div>
+
+<p><translate>There is nothing to do in this step.</translate></p>
index 3eade42..6847d6e 100644 (file)
@@ -1,4 +1,4 @@
-<div class="listtop"><translate>Step 2 of 2: Services</translate></div>
+<div class="listtop"><translate>Step 2 of 3: Services</translate></div>
 
 <form name="Form" method="post" action="login.pl">