]> wagnertech.de Git - mfinanz.git/blobdiff - bin/mozilla/ic.pl
Menge und Soldtotal in Warensuche getrennt.
[mfinanz.git] / bin / mozilla / ic.pl
index 2976a49853a392c735c76aea8404ac1b1989a966..8c915f4001c2b1cbf46351b5f09da8a79eb03c79 100644 (file)
@@ -32,7 +32,7 @@
 #======================================================================
 
 use POSIX qw(strftime);
 #======================================================================
 
 use POSIX qw(strftime);
-use List::Util qw(max);
+use List::Util qw(first max);
 use List::MoreUtils qw(any);
 
 use SL::AM;
 use List::MoreUtils qw(any);
 
 use SL::AM;
@@ -115,8 +115,10 @@ sub search {
 
   $form->header;
 
 
   $form->header;
 
+  $form->get_lists('partsgroup'    => 'ALL_PARTSGROUPS');
   print $form->parse_html_template('ic/search', { %is_xyz,
   print $form->parse_html_template('ic/search', { %is_xyz,
-                                                  dateformat => $myconfig{dateformat}, });
+                                                  dateformat => $myconfig{dateformat},
+                                                  limit => $myconfig{vclimit}, });
 
   $lxdebug->leave_sub();
 }    #end search()
 
   $lxdebug->leave_sub();
 }    #end search()
@@ -1041,7 +1043,7 @@ sub generate_report {
     'listprice'          => { 'text' => $locale->text('List Price'), },
     'microfiche'         => { 'text' => $locale->text('Microfiche'), },
     'name'               => { 'text' => $locale->text('Name'), },
     'listprice'          => { 'text' => $locale->text('List Price'), },
     'microfiche'         => { 'text' => $locale->text('Microfiche'), },
     'name'               => { 'text' => $locale->text('Name'), },
-    'onhand'             => { 'text' => $locale->text('Qty'), },
+    'onhand'             => { 'text' => $locale->text('Stocked Qty'), },
     'ordnumber'          => { 'text' => $locale->text('Order Number'), },
     'partnumber'         => { 'text' => $locale->text('Part Number'), },
     'partsgroup'         => { 'text' => $locale->text('Group'), },
     'ordnumber'          => { 'text' => $locale->text('Order Number'), },
     'partnumber'         => { 'text' => $locale->text('Part Number'), },
     'partsgroup'         => { 'text' => $locale->text('Group'), },
@@ -1050,7 +1052,7 @@ sub generate_report {
     'rop'                => { 'text' => $locale->text('ROP'), },
     'sellprice'          => { 'text' => $locale->text('Sell Price'), },
     'serialnumber'       => { 'text' => $locale->text('Serial Number'), },
     'rop'                => { 'text' => $locale->text('ROP'), },
     'sellprice'          => { 'text' => $locale->text('Sell Price'), },
     'serialnumber'       => { 'text' => $locale->text('Serial Number'), },
-    'soldtotal'          => { 'text' => $locale->text('soldtotal'), },
+    'soldtotal'          => { 'text' => $locale->text('Qty in Selected Records'), },
     'transdate'          => { 'text' => $locale->text('Transdate'), },
     'unit'               => { 'text' => $locale->text('Unit'), },
     'weight'             => { 'text' => $locale->text('Weight'), },
     'transdate'          => { 'text' => $locale->text('Transdate'), },
     'unit'               => { 'text' => $locale->text('Unit'), },
     'weight'             => { 'text' => $locale->text('Weight'), },
@@ -1103,6 +1105,13 @@ sub generate_report {
     no_sn_joins  => [ qw(bought sold) ],
   );
 
     no_sn_joins  => [ qw(bought sold) ],
   );
 
+  # get name of partsgroup if id is given
+  my $pg_name;
+  if ($form->{partsgroup_id}) {
+    my $pg = SL::DB::PartsGroup->new(id => $form->{partsgroup_id})->load;
+    $pg_name = $pg->{'partsgroup'};
+  }
+
   # these strings get displayed at the top of the results to indicate the user which switches were used
   my %optiontexts = (
     active        => $locale->text('Active'),
   # these strings get displayed at the top of the results to indicate the user which switches were used
   my %optiontexts = (
     active        => $locale->text('Active'),
@@ -1120,6 +1129,7 @@ sub generate_report {
     transdateto   => $locale->text('To (time)')  . " " . $locale->date(\%myconfig, $form->{transdateto}, 1),
     partnumber    => $locale->text('Part Number')      . ": '$form->{partnumber}'",
     partsgroup    => $locale->text('Group')            . ": '$form->{partsgroup}'",
     transdateto   => $locale->text('To (time)')  . " " . $locale->date(\%myconfig, $form->{transdateto}, 1),
     partnumber    => $locale->text('Part Number')      . ": '$form->{partnumber}'",
     partsgroup    => $locale->text('Group')            . ": '$form->{partsgroup}'",
+    partsgroup_id => $locale->text('Group')            . ": '$pg_name'",
     serialnumber  => $locale->text('Serial Number')    . ": '$form->{serialnumber}'",
     description   => $locale->text('Part Description') . ": '$form->{description}'",
     make          => $locale->text('Make')             . ": '$form->{make}'",
     serialnumber  => $locale->text('Serial Number')    . ": '$form->{serialnumber}'",
     description   => $locale->text('Part Description') . ": '$form->{description}'",
     make          => $locale->text('Make')             . ": '$form->{make}'",
@@ -1131,7 +1141,7 @@ sub generate_report {
   );
 
   my @itemstatus_keys = qw(active obsolete orphaned onhand short);
   );
 
   my @itemstatus_keys = qw(active obsolete orphaned onhand short);
-  my @callback_keys   = qw(onorder ordered rfq quoted bought sold partnumber partsgroup serialnumber description make model
+  my @callback_keys   = qw(onorder ordered rfq quoted bought sold partnumber partsgroup partsgroup_id serialnumber description make model
                            drawing microfiche l_soldtotal l_deliverydate transdatefrom transdateto ean);
 
   # calculate dependencies
                            drawing microfiche l_soldtotal l_deliverydate transdatefrom transdateto ean);
 
   # calculate dependencies
@@ -1191,10 +1201,10 @@ sub generate_report {
   IC->all_parts(\%myconfig, \%$form);
 
   my @columns = qw(
   IC->all_parts(\%myconfig, \%$form);
 
   my @columns = qw(
-    partnumber description partsgroup bin onhand rop unit listprice
+    partnumber description partsgroup bin onhand rop soldtotal unit listprice
     linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost
     priceupdate weight image drawing microfiche invnumber ordnumber quonumber
     linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost
     priceupdate weight image drawing microfiche invnumber ordnumber quonumber
-    transdate name serialnumber soldtotal deliverydate ean
+    transdate name serialnumber deliverydate ean
   );
 
   my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
   );
 
   my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
@@ -1263,7 +1273,7 @@ sub generate_report {
   my %subtotals = map { $_ => 0 } ('onhand', @subtotal_columns);
   my %totals    = map { $_ => 0 } @subtotal_columns;
   my $idx       = 0;
   my %subtotals = map { $_ => 0 } ('onhand', @subtotal_columns);
   my %totals    = map { $_ => 0 } @subtotal_columns;
   my $idx       = 0;
-  my $same_item = $form->{parts}[0]{ $form->{sort} } if (scalar @{ $form->{parts} });
+  my $same_item = @{ $form->{parts} } ? $form->{parts}[0]{ $form->{sort} } : undef;
 
   my $defaults  = AM->get_defaults();
 
 
   my $defaults  = AM->get_defaults();
 
@@ -1528,7 +1538,6 @@ sub form_header {
 
   $auth->assert('part_service_assembly_edit');
 
 
   $auth->assert('part_service_assembly_edit');
 
-  $form->{eur}              = $::lx_office_conf{system}->{eur}; # config dumps into namespace - yuck
   $form->{pg_keys}          = sub { "$_[0]->{partsgroup}--$_[0]->{id}" };
   $form->{description_area} = ($form->{rows} = $form->numtextrows($form->{description}, 40)) > 1;
   $form->{notes_rows}       =  max 4, $form->numtextrows($form->{notes}, 40), $form->numtextrows($form->{formel}, 40);
   $form->{pg_keys}          = sub { "$_[0]->{partsgroup}--$_[0]->{id}" };
   $form->{description_area} = ($form->{rows} = $form->numtextrows($form->{description}, 40)) > 1;
   $form->{notes_rows}       =  max 4, $form->numtextrows($form->{notes}, 40), $form->numtextrows($form->{formel}, 40);
@@ -1728,7 +1737,7 @@ sub update {
 
         if ($rows > 1) {
           $form->{makemodel_rows}--;
 
         if ($rows > 1) {
           $form->{makemodel_rows}--;
-          &select_item;
+          select_item(mode => 'IC');
           ::end_of_request();
         } else {
           map { $form->{item_list}[$i]{$_} =~ s/\"/"/g }
           ::end_of_request();
         } else {
           map { $form->{item_list}[$i]{$_} =~ s/\"/"/g }
@@ -2030,4 +2039,22 @@ sub ajax_autocomplete {
   $main::lxdebug->leave_sub();
 }
 
   $main::lxdebug->leave_sub();
 }
 
+sub back_to_record {
+  _check_io_auth();
+
+  $::auth->restore_form_from_session($::form->{previousform}, clobber => 1);
+  $::form->{rowcount}--;
+  $::form->{action}   = 'display_form';
+  $::form->{callback} = $::form->{script} . '?' . join('&', map { $::form->escape($_) . '=' . $::form->escape($::form->{$_}) } sort keys %{ $::form });
+  $::form->redirect;
+}
+
 sub continue { call_sub($form->{"nextsub"}); }
 sub continue { call_sub($form->{"nextsub"}); }
+
+sub dispatcher {
+  my $action = first { $::form->{"action_${_}"} } qw(add back_to_record);
+  $::form->error($::locale->text('No action defined.')) unless $action;
+
+  $::form->{dispatched_action} = $action;
+  call_sub($action);
+}