Ueberarbeitete Buecherkontrolle
authorPhilip Reetz <p.reetz@linet-services.de>
Wed, 19 Mar 2008 17:58:11 +0000 (17:58 +0000)
committerPhilip Reetz <p.reetz@linet-services.de>
Wed, 19 Mar 2008 17:58:11 +0000 (17:58 +0000)
SL/Form.pm
bin/mozilla/am.pl
bin/mozilla/ap.pl
bin/mozilla/ar.pl
bin/mozilla/gl.pl
bin/mozilla/ir.pl
bin/mozilla/is.pl
locale/de/all
locale/de/am
locale/de/ca
locale/de/ic

index 53324c6..fd07f55 100644 (file)
@@ -1419,6 +1419,21 @@ sub get_standard_dbh {
   return $standard_dbh;
 }
 
+sub date_closed {
+  $main::lxdebug->enter_sub();
+
+  my ($self, $date, $myconfig) = @_;
+  my $dbh = $self->dbconnect($myconfig);
+
+  my $query = "SELECT 1 FROM defaults WHERE ? < closedto";
+  my $sth = prepare_execute_query($self, $dbh, $query, $date);
+  my ($closed) = $sth->fetchrow_array;
+
+  $main::lxdebug->leave_sub();
+
+  return $closed;
+}
+
 sub update_balance {
   $main::lxdebug->enter_sub();
 
index ee2b0e6..5371515 100644 (file)
@@ -2524,12 +2524,6 @@ sub audit_control {
 
   AM->closedto(\%myconfig, \%$form);
 
-  if ($form->{revtrans}) {
-    $checked{Y} = "checked";
-  } else {
-    $checked{N} = "checked";
-  }
-
   $form->header;
 
   print qq|
@@ -2543,15 +2537,6 @@ sub audit_control {
   <tr>
     <td>
       <table>
-       <tr>
-         <td>|
-    . $locale->text('Enforce transaction reversal for all dates') . qq|</th>
-         <td><input name=revtrans class=radio type=radio value="1" $checked{Y}> |
-    . $locale->text('Yes')
-    . qq| <input name=revtrans class=radio type=radio value="0" $checked{N}> |
-    . $locale->text('No')
-    . qq|</td>
-       </tr>
        <tr>
          <th>| . $locale->text('Close Books up to') . qq|</th>
          <td><input name=closedto size=11 title="$myconfig{dateformat}" value=$form->{closedto}></td>
@@ -2585,17 +2570,12 @@ sub doclose {
 
   AM->closebooks(\%myconfig, \%$form);
 
-  if ($form->{revtrans}) {
+  if ($form->{closedto}) {
     $form->redirect(
-                 $locale->text('Transaction reversal enforced for all dates'));
+                    $locale->text('Books closed up to') . " "
+                      . $locale->date(\%myconfig, $form->{closedto}, 1));
   } else {
-    if ($form->{closedto}) {
-      $form->redirect(
-                     $locale->text('Transaction reversal enforced up to') . " "
-                       . $locale->date(\%myconfig, $form->{closedto}, 1));
-    } else {
-      $form->redirect($locale->text('Books are open'));
-    }
+    $form->redirect($locale->text('Books are open'));
   }
 
   $lxdebug->leave_sub();
index 25c2196..a252f0e 100644 (file)
@@ -948,7 +948,7 @@ sub post_payment {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
@@ -982,7 +982,7 @@ sub post {
 
   $closedto  = $form->datetonum($form->{closedto},  \%myconfig);
   $transdate = $form->datetonum($form->{transdate}, \%myconfig);
-  $form->error($locale->text('Cannot post transaction for a closed period!')) if ($transdate <= $closedto);
+  $form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig));
 
   my $zero_amount_posting = 1;
   for $i (1 .. $form->{rowcount}) {
@@ -1005,7 +1005,7 @@ sub post {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
index c95d0c7..0498e11 100644 (file)
@@ -1009,7 +1009,7 @@ sub post_payment {
 
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
-#      $form->error($locale->text('Cannot post payment for a closed period!')) if ($datepaid <= $closedto);
+      $form->error($locale->text('Cannot post payment for a closed period!')) if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
 #        $form->{"exchangerate_$i"} = $form->{exchangerate} if ($invdate == $datepaid);
@@ -1050,7 +1050,7 @@ sub post {
 
   my $closedto  = $form->datetonum($form->{closedto},  \%myconfig);
   my $transdate = $form->datetonum($form->{transdate}, \%myconfig);
-  $form->error($locale->text('Cannot post transaction for a closed period!')) if ($transdate <= $closedto);
+  $form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig));
 
   $form->error($locale->text('Zero amount posting!')) 
     unless grep $_*1, map $form->parse_amount(\%myconfig, $form->{"amount_$_"}), 1..$form->{rowcount};
@@ -1067,7 +1067,7 @@ sub post {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
index 01d0114..f7dba95 100644 (file)
@@ -1457,7 +1457,7 @@ sub post_transaction {
 
   # this is just for the wise guys
   $form->error($locale->text('Cannot post transaction for a closed period!'))
-    if ($transdate <= $closedto);
+    if ($form->date_closed($form->{"transdate"}, \%myconfig));
   if ($form->round_amount($debit, 2) != $form->round_amount($credit, 2)) {
     $form->error($locale->text('Out of balance transaction!'));
   }
index 82239ae..c5f6da6 100644 (file)
@@ -1043,7 +1043,7 @@ sub post_payment {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
@@ -1100,7 +1100,7 @@ sub post {
   $invdate  = $form->datetonum($form->{invdate},  \%myconfig);
 
   $form->error($locale->text('Cannot post invoice for a closed period!'))
-    if ($invdate <= $closedto);
+    if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
   $form->isblank("exchangerate", $locale->text('Exchangerate missing!'))
     if ($form->{currency} ne $form->{defaultcurrency});
@@ -1112,7 +1112,7 @@ sub post {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
index 41788c8..8c61d72 100644 (file)
@@ -1356,7 +1356,7 @@ sub post_payment {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
@@ -1386,6 +1386,8 @@ sub post {
   $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
   $form->isblank("invdate",  $locale->text('Invoice Date missing!'));
   $form->isblank("customer", $locale->text('Customer missing!'));
+  $form->error($locale->text('Cannot post invoice for a closed period!'))
+        if ($form->date_closed($form->{"invdate"}, \%myconfig));
 
   $form->{invnumber} =~ s/^\s*//g;
   $form->{invnumber} =~ s/\s*$//g;
@@ -1417,7 +1419,7 @@ sub post {
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
       $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($datepaid <= $closedto);
+        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
index 1103579..4889ad4 100644 (file)
@@ -236,6 +236,7 @@ aktualisieren wollen?',
   'Body'                        => 'Text',
   'Body:'                       => 'Text:',
   'Books are open'              => 'Die Bücher sind geöffnet.',
+  'Books closed up to'          => 'Bücher abgeschlossen bis zum',
   'Boolean variables: If the default value is non-empty then the checkbox will be checked by default and unchecked otherwise.' => 'Ja/Nein-Variablen: Wenn der Standardwert nicht leer ist, so wird die Checkbox standardm&auml;&szlig;ig angehakt.',
   'Both'                        => 'Beide',
   'Bottom'                      => 'Unten',
@@ -582,7 +583,6 @@ aktualisieren wollen?',
   'Edit units'                  => 'Einheiten bearbeiten',
   'Employee'                    => 'Bearbeiter',
   'Empty transaction!'          => 'Buchung ist leer!',
-  'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren',
   'Enter a description for this new draft.' => 'Geben Sie eine Beschreibung f&uuml;r diesen Entwurf ein.',
   'Enter longdescription'       => 'Langtext eingeben',
   'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Geben Sie Ihre und weitere Währungen mit bis zu drei Buchstaben pro Währung und Währungen durch Doppelpunkte getrennt ein (z.B. EUR:USD:CAD)',
@@ -1481,8 +1481,6 @@ aktualisieren wollen?',
   'Transaction description'     => 'Vorgangsbezeichnung',
   'Transaction has already been cancelled!' => 'Diese Buchung wurde bereits storniert.',
   'Transaction posted!'         => 'Buchung verbucht!',
-  'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
-  'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angegebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden!',
   'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
   'Transfer'                    => 'Umlagern',
   'Transfer Quantity'           => 'Umlagermenge',
index 6e31d9c..e28e325 100644 (file)
@@ -75,6 +75,7 @@ $self->{texts} = {
   'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
   'Bins saved.'                 => 'Lagerpl&auml;tze gespeichert.',
   'Books are open'              => 'Die Bücher sind geöffnet.',
+  'Books closed up to'          => 'Bücher abgeschlossen bis zum',
   'Buchungsgruppe'              => 'Buchungsgruppe',
   'Buchungsgruppen'             => 'Buchungsgruppen',
   'Business deleted!'           => 'Firma gelöscht.',
@@ -141,7 +142,6 @@ $self->{texts} = {
   'Edit Price Factor'           => 'Preisfaktor bearbeiten',
   'Edit Printer'                => 'Drucker bearbeiten',
   'Edit Warehouse'              => 'Lager bearbeiten',
-  'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren',
   'Enter longdescription'       => 'Langtext eingeben',
   'Equity'                      => 'Passiva',
   'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
@@ -278,8 +278,6 @@ $self->{texts} = {
   'The units have been saved.'  => 'Die Einheiten wurden gespeichert.',
   'The warehouse could not be deleted because it has already been used.' => 'Das Lager konnte nicht gel&ouml;scht werden, da es bereits in Benutzung war.',
   'To (email)'                  => 'An',
-  'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
-  'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angegebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden!',
   'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
   'Translation (%s)'            => '&Uuml;bersetzung (%s)',
   'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
index 135b3ee..a8c0493 100644 (file)
@@ -5,6 +5,7 @@ $self->{texts} = {
   'AP'                          => 'Einkauf',
   'AR'                          => 'Verkauf',
   'Account'                     => 'Konto',
+  'Accrual'                     => 'Bilanzierung',
   'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
   'All reports'                 => 'Alle Berichte (Konten&uuml;bersicht, Summen- u. Saldenliste, GuV, BWA, Bilanz, Projektbuchungen)',
   'Apr'                         => 'Apr',
@@ -15,6 +16,7 @@ $self->{texts} = {
   'Bcc'                         => 'Bcc',
   'Bin List'                    => 'Lagerliste',
   'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
+  'Bis'                         => 'bis',
   'CANCELED'                    => 'Storniert',
   'CSV export -- options'       => 'CSV-Export -- Optionen',
   'Cc'                          => 'Cc',
@@ -39,6 +41,7 @@ $self->{texts} = {
   'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
   'Credit'                      => 'Haben',
   'Credit Note'                 => 'Gutschrift',
+  'Customized Report'           => 'Vorgewählte Zeiträume',
   'DATEV Export'                => 'DATEV-Export',
   'DELETED'                     => 'Gelöscht',
   'DUNNING STARTED'             => 'Mahnprozess gestartet',
@@ -47,19 +50,22 @@ $self->{texts} = {
   'Debit'                       => 'Soll',
   'Dec'                         => 'Dez',
   'December'                    => 'Dezember',
+  'Decimalplaces'               => 'Dezimalstellen',
   'Delivery Order'              => 'Lieferschein',
   'Department'                  => 'Abteilung',
   'Dependency loop detected:'   => 'Schleife in den Abh&auml;ngigkeiten entdeckt:',
   'Description'                 => 'Beschreibung',
   'Directory'                   => 'Verzeichnis',
   'ELSE'                        => 'Zusatz',
+  'EUR'                         => 'E/Ü-Rechnung',
   'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
+  'Falsches Datumsformat!'      => 'Falsches Datumsformat!',
   'Feb'                         => 'Feb',
   'February'                    => 'Februar',
   'File'                        => 'Datei',
+  'Free report period'          => 'Freier Zeitraum',
   'From'                        => 'Von',
   'General ledger and cash'     => 'Finanzbuchhaltung und Zahlungsverkehr',
-  'Include in Report'           => 'In Bericht aufnehmen',
   'Invoice'                     => 'Rechnung',
   'Jan'                         => 'Jan',
   'January'                     => 'Januar',
@@ -77,9 +83,11 @@ $self->{texts} = {
   'May '                        => 'Mai',
   'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
   'Message'                     => 'Nachricht',
+  'Method'                      => 'Verfahren',
   'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
   'Missing \'tag\' field.'      => 'Fehlendes Feld \'tag\'.',
   'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
+  'Monthly'                     => 'monatlich',
   'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
   'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/authentication.pl" angegeben.',
   'Nov'                         => 'Nov',
@@ -98,6 +106,8 @@ $self->{texts} = {
   'Proforma Invoice'            => 'Proformarechnung',
   'Project Number'              => 'Projektnummer',
   'Purchase Order'              => 'Lieferantenauftrag',
+  'Quarter'                     => 'Quartal',
+  'Quarterly'                   => 'quartalsweise',
   'Quotation'                   => 'Angebot',
   'RFQ'                         => 'Anfrage',
   'Receipt, payment, reconciliation' => 'Zahlungseingang, Zahlungsausgang, Kontenabgleich',
@@ -111,7 +121,6 @@ $self->{texts} = {
   'Storno Invoice'              => 'Stornorechnung',
   'Storno Packing List'         => 'Stornolieferschein',
   'Subject'                     => 'Betreff',
-  'Subtotal'                    => 'Zwischensumme',
   'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
   'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
   'The config file "config/authentication.pl" contained invalid Perl code:' => 'Die Konfigurationsdatei "config/authentication.pl" enthielt ung&uuml;tigen Perl-Code:',
@@ -121,15 +130,18 @@ $self->{texts} = {
   'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
   'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
   'The list has been printed.'  => 'Die Liste wurde ausgedruckt.',
-  'To'                          => 'An',
   'To (email)'                  => 'An',
   'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
   'Unknown dependency \'%s\'.'  => 'Unbekannte Abh&auml;ngigkeit \'%s\'.',
   'View warehouse content'      => 'Lagerbestand ansehen',
   'Warehouse management'        => 'Lagerverwaltung/Bestandsveränderung',
+  'YYYY'                        => 'JJJJ',
+  'Year'                        => 'Jahr',
+  'Yearly'                      => 'jährlich',
   'You do not have the permissions to access this function.' => 'Sie verf&uuml;gen nicht &uuml;ber die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
   '[email]'                     => '[email]',
   'bin_list'                    => 'Lagerliste',
+  'button'                      => '?',
   'chart_of_accounts'           => 'kontenuebersicht',
   'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Das Schl&uuml;sselwort "DB_config" fehlt.',
   'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Der Schl&uuml;ssel "LDAP_config" fehlt.',
@@ -146,6 +158,7 @@ $self->{texts} = {
   'request_quotation'           => 'Angebotsanforderung',
   'sales_order'                 => 'Kundenauftrag',
   'sales_quotation'             => 'Verkaufsangebot',
+  'wrongformat'                 => 'Falsches Format',
 };
 
 $self->{subs} = {
index d3f9522..a316eaf 100644 (file)
@@ -412,17 +412,25 @@ $self->{subs} = {
   'erzeugnis_erfassen'          => 'add_assembly',
   'ware_erfassen'               => 'add_part',
   'dienstleistung_erfassen'     => 'add_service',
+  'erzeugnisnummer_fehlt!'      => 'assembly_number_missing!',
   'weiter'                      => 'continue',
   'löschen'                     => 'delete',
   'erzeugnis_bearbeiten'        => 'edit_assembly',
   'ware_bearbeiten'             => 'edit_part',
   'dienstleistung_bearbeiten'   => 'edit_service',
+  'bevor_dieses_erzeugnis_als_ungültig_markiert_werden_kann__muß_das_inventar_auf_null_sein!' => 'inventory_quantity_must_be_zero_before_you_can_set_this_assembly_obsolete!',
+  'bevor_diese_ware_als_ungültig_markiert_werden_kann__muß_das_inventar_null_sein!' => 'inventory_quantity_must_be_zero_before_you_can_set_this_part_obsolete!',
   'neue_ware'                   => 'new_part',
+  'artikelnummer_fehlt!'        => 'part_number_missing!',
+  'waren'                       => 'parts',
   'speichern'                   => 'save',
   'als_neu_speichern'           => 'save_as_new',
+  'dienstleistungsnummer_fehlt!' => 'service_number_missing!',
+  'dienstleistungen'            => 'services',
   'top_100'                     => 'top100',
   'erneuern'                    => 'update',
   'auswählen'                   => 'choice',
+  'st.'                         => 'ea',
   'auflisten'                   => 'list',
 };