Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
authorJan Büren <jan@kivitendo-premium.de>
Thu, 8 Nov 2012 15:15:08 +0000 (16:15 +0100)
committerJan Büren <jan@kivitendo-premium.de>
Thu, 8 Nov 2012 15:15:08 +0000 (16:15 +0100)
1  2 
SL/RP.pm
locale/de/all
templates/webpages/rp/report.html

diff --combined SL/RP.pm
+++ b/SL/RP.pm
@@@ -1171,8 -1171,6 +1171,8 @@@ sub aging 
  
    my ($invoice, $arap, $buysell, $ct, $ct_id, $ml);
  
 +  # falls customer ziehen wir die offene forderungsliste
 +  # anderfalls für die lieferanten die offenen verbindlichkeitne
    if ($form->{ct} eq "customer") {
      $invoice = "is";
      $arap = "ar";
    }
    $ct_id = "${ct}_id";
  
 -  $form->{todate} = $form->current_date($myconfig) unless ($form->{todate});
 -  my $todate = conv_dateq($form->{todate});
 -  my $fromdate = conv_dateq($form->{fromdate});
 +  # erweiterung um einen freien zeitraum oder einen stichtag
 +  # mit entsprechender altersstrukturliste (s.a. Bug 1842)
 +  # eine neue variable an der oberfläche eingeführt, somit ist
 +  # todate == freier zeitrau und fordate == stichtag
  
 -  my $fromwhere = ($form->{fromdate} ne "") ? " AND (transdate >= (date $fromdate)) " : "";
 +  my ($review_of_aging_list, $todate, $fromdate, $fromwhere, $fordate);
  
 +  if ($form->{reporttype} eq 'custom') {  # altersstrukturliste
 +
 +    # explizit rausschmeissen was man für diesen bericht nicht braucht
 +    delete $form->{fromdate};
 +    delete $form->{todate};
 +
 +    # an der oberfläche ist das tagesaktuelle datum vorausgewählt
 +    # falls es dennoch per Benutzereingabe gelöscht wird, lieber wieder vorbelegen
 +    # ferner muss für die spätere DB-Abfrage muss todate gesetzt sein.
 +    $form->{fordate}  = $form->current_date($myconfig) unless ($form->{fordate});
 +    $fordate          = conv_dateq($form->{fordate});
 +    $todate           = $fordate;
 +
 +    if ($form->{review_of_aging_list}) { # falls die liste leer ist, alles anzeigen
 +      if ($form->{review_of_aging_list} =~ m "-") {             # ..  periode von bis
 +        my @period = split(/-/, $form->{review_of_aging_list}); # ... von periode bis periode
 +        $review_of_aging_list = " AND $period[0] <  (date $fordate) - duedate
 +                                  AND (date $fordate) - duedate  < $period[1]";
 +      } else {
 +        $form->{review_of_aging_list} =~ s/[^0-9]//g;   # größer 120 das substitute ist nur für das '>' zeichen
 +        $review_of_aging_list = " AND $form->{review_of_aging_list} < (date $fordate) - duedate";
 +      }
 +    }
 +  } else {  # freier zeitraum OHNE review_of_aging_list
 +    $form->{todate}  = $form->current_date($myconfig) unless ($form->{todate});
 +    $todate = conv_dateq($form->{todate});
 +    $fromdate = conv_dateq($form->{fromdate});
 +    $fromwhere = ($form->{fromdate} ne "") ? " AND (transdate >= (date $fromdate)) " : "";
 +  }
    my $where = " 1 = 1 ";
    my ($name, $null);
  
      $where .= qq| AND (a.department_id = | . conv_i($department_id, 'NULL') . qq|)|;
      $where_dpt = qq| AND (${arap}.department_id = | . conv_i($department_id, 'NULL') . qq|)|;
    }
 -  my $review_of_aging_list;
 -  if ($form->{review_of_aging_list}) {
 -    if ($form->{review_of_aging_list} =~ m "-"){
 -      my @period = split(/-/, $form->{review_of_aging_list});
 -      $review_of_aging_list = " AND $period[0] < date_part('days', now() - duedate)
 -                                AND date_part('days', now() - duedate)  < $period[1]";
 -    } else {
 -      $form->{review_of_aging_list} =~ s/[^0-9]//g;
 -      $review_of_aging_list = " AND $form->{review_of_aging_list} < date_part('days', now() - duedate)";
 -    }
 -  }
 -
 -  my $q_details = qq|
 + my $q_details = qq|
  
      SELECT ${ct}.id AS ctid, ${ct}.name,
        street, zipcode, city, country, contact, email,
@@@ -1685,12 -1665,12 +1685,12 @@@ sub bwa 
        $form->{ "$key" . "gesamtkosten" };
      $form->{ "$key" . "neutraleraufwand" } =
        $form->{30}{$key} + $form->{31}{$key};
-     $form->{ "$key" . "neutralertrag" } =
+     $form->{ "$key" . "neutralerertrag" } =
        $form->{32}{$key} + $form->{33}{$key} + $form->{34}{$key};
      $form->{ "$key" . "ergebnisvorsteuern" } =
        $form->{ "$key" . "betriebsergebnis" } -
        $form->{ "$key" . "neutraleraufwand" } +
-       $form->{ "$key" . "neutralertrag" };
+       $form->{ "$key" . "neutralerertrag" };
      $form->{ "$key" . "ergebnis" } =
        $form->{ "$key" . "ergebnisvorsteuern" } - $form->{35}{$key};
  
diff --combined locale/de/all
@@@ -101,7 -101,7 +101,7 @@@ $self->{texts} = 
    'Accounting Group deleted!'   => 'Buchungsgruppe gel&ouml;scht!',
    'Accounting Group saved!'     => 'Buchungsgruppe gespeichert!',
    'Accounting method'           => 'Versteuerungsart',
-   'Accrual'                     => 'Bilanzierung',
+   'Accrual'                     => 'Soll-Versteuerung',
    'Active'                      => 'Aktiv',
    'Active?'                     => 'Aktiviert?',
    'Add'                         => 'Erfassen',
    'Bins saved.'                 => 'Lagerpl&auml;tze gespeichert.',
    'Bins that have been used in the past cannot be deleted anymore. For these bins there\'s no checkbox in the &quot;Delete&quot; column.' => 'Lagerpl&auml;tze, die bereits benutzt wurden, k&ouml;nnen nicht mehr gel&ouml;scht werden. Deswegen fehlt bei ihnen die Checkbox in der Spalte &quot;L&ouml;schen&quot;.',
    'Birthday'                    => 'Geburtstag',
+   'Birthday (after conversion)' => 'Geburtstag (nach Umstellung)',
+   'Birthday (before conversion)' => 'Geburtstag (vor Umstellung)',
    'Bis'                         => 'bis',
    'Bis Konto: '                 => 'bis Konto: ',
    'Block'                       => 'Block',
    'Contacts'                    => 'Ansprechpersonen',
    'Continue'                    => 'Weiter',
    'Contra'                      => 'gegen',
+   'Conversion of "birthday" contact person attribute' => 'Umstellung des Kontaktpersonenfeldes "Geburtstag"',
    'Copies'                      => 'Kopien',
    'Correct taxkey'              => 'Richtiger Steuerschlüssel',
    'Corrections'                 => 'Korrekturen',
    'Database Administration'     => 'Datenbankadministration',
    'Database Connection Test'    => 'Test der Datenbankverbindung',
    'Database Host'               => 'Datenbankcomputer',
+   'Database ID'                 => 'Datenbank-ID',
    'Database User'               => 'Datenbankbenutzer',
    'Database User missing!'      => 'Datenbankbenutzer fehlt!',
    'Database backups and restorations are disabled in the configuration.' => 'Datenbanksicherungen und -wiederherstellungen sind in der Konfiguration deaktiviert.',
    'End date'                    => 'Enddatum',
    'Enter a description for this new draft.' => 'Geben Sie eine Beschreibung f&uuml;r diesen Entwurf ein.',
    'Enter longdescription'       => 'Langtext eingeben',
+   'Enter the abbreviations separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Geben Sie Ihre und weitere Währungen als Abkürzungen durch Doppelpunkte getrennt ein (z.B. EUR:USD:CAD)',
    'Enter the requested execution date or leave empty for the quickest possible execution:' => 'Geben Sie das jeweils gewünschte Ausführungsdatum an, oder lassen Sie das Feld leer für die schnellstmögliche Ausführung:',
-   '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)',
+   'Entries for which automatic conversion failed:' => 'Einträge, für die die automatische Umstellung fehlschlug:',
+   'Entries for which automatic conversion succeeded:' => 'Einträge, für die die automatische Umstellung erfolgreich war:',
    'Equity'                      => 'Passiva',
    'Error'                       => 'Fehler',
    'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
    'Recorded taxkey'             => 'Gespeicherter Steuerschlüssel',
    'Reference'                   => 'Referenz',
    'Reference / Invoice Number'  => 'Referenz / Rechnungsnummer',
 +  'Reference day'               => 'Stichtag',
    'Reference missing!'          => 'Referenz fehlt!',
    'Release From Stock'          => 'Lagerausgang',
    'Remaining'                   => 'Rest',
    'The connection to the database could not be established.' => 'Die Verbindung zur Datenbank konnte nicht hergestellt werden.',
    'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
    'The connection was established successfully.' => 'Die Verbindung zur Datenbank wurde erfolgreich hergestellt.',
+   'The contact person attribute "birthday" is converted from a free-form text field into a date field.' => 'Das Kontaktpersonenfeld "Geburtstag" wird von einem freien Textfeld auf ein Datumsfeld umgestellt.',
    'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
    'The custom variable has been deleted.' => 'Die benutzerdefinierte Variable wurde gel&ouml;scht.',
    'The custom variable has been saved.' => 'Die benutzerdefinierte Variable wurde gespeichert.',
    'This option controls the method used for profit determination.' => 'Dieser Parameter legt die Berechnungsmethode für die Gewinnermittlung fest.',
    'This option controls the posting and calculation behavior for the accounting method.' => 'Dieser Parameter steuert die Buchungs- und Berechnungsmethoden für die Versteuerungsart.',
    'This partnumber is not unique. You should change it.' => 'Diese Artikelnummer ist nicht eindeutig. Bitte wählen Sie eine andere.',
+   'This requires you to manually correct entries for which an automatic conversion failed and to check those for which it succeeded.' => 'Dies erfordert, dass Sie diejenigen Einträge manuell korrigieren, für die die automatische Umstellung fehlschlug, sowie dass Sie diejenigen überprüfen, für die die Umstellung erfolgreich war.',
    'This transaction has to be split into several transactions manually.' => 'Diese Buchung muss manuell in mehrere Buchungen aufgeteilt werden.',
    'This update will change the nature the onhand of goods is tracked.' => 'Dieses update &auml;ndert die Art und Weise wie Lagermengen gez&auml;lt werden.',
    'This upgrade script tries to map all existing parts in the database to the newly created Buchungsgruppen.' => 'Dieses Upgradescript versucht, bei allen bestehenden Artikeln neu erstellte Buchungsgruppen zuzuordnen.',
    'follow_up_list'              => 'wiedervorlageliste',
    'for'                         => 'f&uuml;r',
    'for Period'                  => 'für den Zeitraum',
 +  'for date'                    => 'zum Stichtag',
    'found'                       => 'Gefunden',
    'from (time)'                 => 'von',
    'general_ledger_list'         => 'buchungsjournal',
@@@ -63,7 -63,7 +63,7 @@@
      <th align=left>[% 'Method' | $T8 %]</th>
      <td colspan=3>
        [% L.radio_button_tag('method', value='accrual', checked=accrual, label=LxERP.t8('Accrual')) %]
-       [% L.radio_button_tag('method', value='cash', checked=cash, label=LxERP.t8('EUR')) %]
+       [% L.radio_button_tag('method', value='cash', checked=cash, label=LxERP.t8('cash')) %]
      </td>
    </tr>
  [%- END %]
@@@ -83,7 -83,7 +83,7 @@@
  <table border="0">
  [%- IF selectdepartment %]
    <tr>
 -    <th align=right nowrap>[% 'Department' | $T8 %]</th>
 +    <th align="left" nowrap>[% 'Department' | $T8 %]</th>
      <td colspan=3><select name=department>[% selectdepartment %]</select></td>
    </tr>
  [%- END %]
  
  [%- IF is_aging %]
    <tr>
 -    <th align=right>[% label %]</th>
 +    <th align=left>[% label %]</th>
      <td>[% vc %]</td>
    </tr>
 +</table>
 +<table border="0">
 +  <tr>
 +    <td colspan=5><hr size=1 noshade></td>
 +  </tr>
    <tr>
 -    <td>[% 'Review of Aging list' | $T8 %]</td>
 -    <td><select name="review_of_aging_list">
 +    <th align=left><input name=reporttype class=radio type=radio value="custom" checked><b>[% 'Reference day' | $T8 %]</b>&nbsp; </th>
 +     <td align="right" colspan="4">[% 'Review of Aging list' | $T8 %] <select name="review_of_aging_list">
          <option></option>
          <option>0-30</option>
          <option>30-60</option>
          <option>60-90</option>
          <option>90-120</option>
          <option>&gt; 120</option>
 -        </select>
 +        </select> [% 'for date' | $T8 %] [% L.date_tag('fordate', today) %]
      </td>
    </tr>
    <tr>
 -    <td align=left colspan=4>
 +    <td colspan=5><hr size=3 noshade></td>
 + </tr>
 + <tr>
 +    <th align=left><input name=reporttype class=radio type=radio value="free"><b>[% 'Free report period' | $T8 %]</b>&nbsp; </th>
 +    <td align="right" colspan=4>
        [% 'From' | $T8 %] [% L.date_tag('fromdate', fromdate) %]
        [% 'Bis' | $T8 %] [% L.date_tag('todate') %]
      </td>