Popup-Button bei Upgrade
authorNiclas Zimmermann <niclas@kivitendo-premium.de>
Mon, 10 Jun 2013 15:33:43 +0000 (17:33 +0200)
committerNiclas Zimmermann <niclas@kivitendo-premium.de>
Mon, 10 Jun 2013 15:33:43 +0000 (17:33 +0200)
Beim Upgrade für eindeutige Artikelnummern, war es bisher nicht
möglich die bestehende Artikelliste zu durchsuchen. Jetzt kann man
durch Klick auf einen Button ein Popup-Fenster öffnen, um die
Artikelliste zu durchsuchen.

Fixed #2238.

Conflicts:

locale/de/all

SL/User.pm
locale/de/all
sql/Pg-upgrade2/erzeugnisnummern.pl
templates/webpages/dbupgrade/erzeugnisnummern.html

index e11fda4..871a453 100644 (file)
@@ -137,7 +137,7 @@ sub login {
 
     if ($update_available) {
       $form->{"title"} = $main::locale->text("Dataset upgrade");
-      $form->header();
+      $form->header(no_layout => $form->{no_layout});
       print $form->parse_html_template("dbupgrade/header");
 
       $form->{dbupdate} = "db$myconfig{dbname}";
index d1422f6..d786c2e 100755 (executable)
@@ -441,6 +441,7 @@ $self->{texts} = {
   'Close Flash'                 => 'Schließen',
   'Close SEPA exports'          => 'SEPA-Export abschließen',
   'Close Window'                => 'Fenster Schlie&szlig;en',
+  'Close window'                => 'Fenster schließen',
   'Closed'                      => 'Geschlossen',
   'Collective Orders only work for orders from one customer!' => 'Sammelaufträge funktionieren nur für Aufträge von einem Kunden!',
   'Column name'                 => 'Spaltenname',
@@ -914,6 +915,7 @@ $self->{texts} = {
   'Filter date by'              => 'Datum filtern nach',
   'Filter for customer variables' => 'Filter für benutzerdefinierte Kundenvariablen',
   'Filter for item variables'   => 'Filter für benutzerdefinierte Artikelvariablen',
+  'Filter parts'                => 'Artikel filtern',
   'Finish'                      => 'Abschlie&szlig;en',
   'First 20 Lines'              => 'Nur erste 20 Datensätze',
   'Fix transaction'             => 'Buchung korrigieren',
@@ -1432,6 +1434,7 @@ $self->{texts} = {
   'Parts must have an entry type.' => 'Waren m&uuml;ssen eine Buchungsgruppe haben.',
   'Parts with existing part numbers' => 'Artikel mit existierender Artikelnummer',
   'Parts, services and assemblies' => 'Waren, Dienstleistungen und Erzeugnisse',
+  'Parts:'                      => 'Artikel:',
   'Partsgroup (database ID)'    => 'Warengruppe (Datenbank-ID)',
   'Partsgroup (name)'           => 'Warengruppe (Name)',
   'Password'                    => 'Passwort',
@@ -1776,6 +1779,7 @@ $self->{texts} = {
   'Service unit'                => 'Dienstleistungseinheit',
   'Service, assembly or part'   => 'Dienstleistung, Erzeugnis oder Ware',
   'Services'                    => 'Dienstleistungen',
+  'Services, assemblies or parts' => 'Dienstleistungen, Erzeugnisse oder Waren',
   'Set Language Values'         => 'Spracheinstellungen',
   'Set eMail text'              => 'eMail Text eingeben',
   'Settings'                    => 'Einstellungen',
@@ -1811,6 +1815,7 @@ $self->{texts} = {
   'Show TODO list'              => 'Aufgabenliste anzeigen',
   'Show Transfer via default'   => 'Ein- / Auslagern über Standardlagerplatz anzeigen',
   'Show administration link'    => 'Link zur Administration anzeigen',
+  'Show all parts'              => 'Alle Artikel anzeigen',
   'Show by default'             => 'Standardm&auml;&szlig;ig anzeigen',
   'Show custom variable search inputs' => 'Suchoptionen für Benutzerdefinierte Variablen verstecken',
   'Show delete button in purchase delivery orders?' => 'Soll der "Löschen"-Knopf bei Einkaufslieferscheinen angezeigt werden?',
@@ -2298,6 +2303,7 @@ $self->{texts} = {
   'Valid'                       => 'Gültig',
   'Valid from'                  => 'Gültig ab',
   'Valid until'                 => 'gültig bis',
+  'Valid/Obsolete'              => 'Gültig/ungültig',
   'Value'                       => 'Wert',
   'Variable'                    => 'Variable',
   'Variable Description'        => 'Datenfeldbezeichnung',
index 4146894..a6e9593 100644 (file)
@@ -13,6 +13,10 @@ use SL::DBUtils;
 sub run {
   my ($self) = @_;
 
+  if ($::form->{upgrade_action} eq 'filter_parts') {
+    return $self->filter_parts($self);
+  }
+
   if ( $::form->{'continued'} ) {
     my $update_query;
     foreach my $i (1 .. $::form->{rowcount}) {
@@ -50,4 +54,62 @@ sub print_error_message {
   print $::form->parse_html_template("dbupgrade/erzeugnisnummern");
 }
 
+sub filter_parts {
+  my $self = shift;
+
+  my $where = 'TRUE';
+  my @values;
+
+  if ( $::form->{filter_partnumber} ) {
+    $where .= ' AND partnumber ILIKE ?';
+    push(@values, $::form->like( $::form->{filter_partnumber} ));
+  }
+
+  if ($::form->{filter_description}) {
+    $where .= ' AND description ILIKE ?';
+    push(@values, $::form->like($::form->{filter_description}));
+  }
+
+  if ($::form->{filter_notes}) {
+    $where .= ' AND notes ILIKE ?';
+    push(@values, $::form->like($::form->{filter_notes}));
+  }
+
+  if ($::form->{filter_ean}) {
+    $where .= ' AND ean ILIKE ?';
+    push(@values, $::form->like($::form->{filter_ean}));
+  }
+
+  if ($::form->{filter_type} eq 'assembly') {
+    $where .= ' AND assembly';
+  }
+
+  if ($::form->{filter_type} eq 'service') {
+    $where .= ' AND inventory_accno_id IS NULL AND NOT assembly';
+  }
+
+  if ($::form->{filter_type} eq 'part') {
+    $where .= ' AND inventory_accno_id IS NOT NULL';
+    $where .= ' AND NOT assembly';
+  }
+
+  if ($::form->{filter_obsolete} eq 'obsolete') {
+    $where .= ' AND obsolete';
+  }
+
+  if ($::form->{filter_obsolete} eq 'valid') {
+    $where .= ' AND NOT obsolete';
+  }
+
+  my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id, obsolete
+                 FROM parts
+                 WHERE $where
+                 ORDER BY partnumber|;
+
+  $::form->{ALL_PARTS} = [ selectall_hashref_query($::form, $self->dbh, $query, @values) ];
+
+  print $::form->parse_html_template("dbupgrade/show_partlist");
+  return 2;
+}
+
 1;
index 6466854..5b8f1a6 100644 (file)
@@ -1,5 +1,17 @@
 [%- USE T8 %]
 [% USE HTML %][%- USE LxERP -%]<div class="listtop">[% 'Double partnumbers' | $T8 %]</div>
+<script type="text/javascript">
+<!--
+function show_parts(vc) {
+  var width = 750;
+  var height = 550;
+  var parm = centerParms(width, height) + ",width=" + width + ",height=" + height + ",status=yes,scrollbars=yes";
+  url = "controller.pl?action=LoginScreen/login&upgrade_action=filter_parts&no_layout=1"
+  //alert(url);
+  window.open(url, "_new_generic", parm);
+}
+//-->
+</script>
 
 <form name="Form" method="post" action="login.pl">
 <input type="hidden" name="action" value="login">
@@ -38,6 +50,9 @@
   <input type="hidden" name="rowcount" value="[% rowcount %]">
 </table>
 
+<input type="button" value="[% 'Show all parts' | $T8 %]" onclick="show_parts('customer')">
+<br>
+<br>
 <input type="submit" value="[% 'Continue' | $T8 %]">
 
 </form>