- $lxdebug->enter_sub();
-
- $auth->assert('part_service_assembly_edit');
-
- if ($form->{ndx}) {
- $form->{ndxs_counter}++;
-
- if ($form->{ndxs_counter} > 0) {
-
- my $index = $form->{ndx};
-
- $form->{"totop100_partnumber_$form->{ndxs_counter}"} = $form->{"new_partnumber_$index"};
- $form->{"totop100_description_$form->{ndxs_counter}"} = $form->{"new_description_$index"};
- $form->{"totop100_unit_$form->{ndxs_counter}"} = $form->{"new_unit_$index"};
- $form->{"totop100_sellprice_$form->{ndxs_counter}"} = $form->{"new_sellprice_$index"};
- $form->{"totop100_soldtotal_$form->{ndxs_counter}"} = $form->{"new_soldtotal_$index"};
- } #fi
- } #fi
- &addtop100();
- $lxdebug->leave_sub();
-} #end top100
-
-sub addtop100 {
- $lxdebug->enter_sub();
-
- $auth->assert('part_service_assembly_edit');
-
- my ($revers, $lastsort, $callback, $option, $description, $sameitem,
- $partnumber, $unit, $sellprice, $soldtotal, $totop100, $onhand, $align);
- my (@column_index, %column_header, %column_data);
- my ($totalsellprice, $totallastcost, $totallistprice, $subtotalonhand, $subtotalsellprice, $subtotallastcost, $subtotallistprice);
-
- $form->{top100} = "top100";
- $form->{l_soldtotal} = "Y";
- $form->{soldtotal} = "soldtotal";
- $form->{sort} = "soldtotal";
- $form->{l_qty} = "N";
- $form->{l_linetotal} = "";
- $form->{revers} = 1;
- $form->{number} = "position";
- $form->{l_number} = "Y";
-
- $totop100 = "";
-
- $form->{title} = $locale->text('Top 100');
-
- $revers = $form->{revers};
- $lastsort = $form->{lastsort};
-
- if (($form->{lastsort} eq "") && ($form->{sort} eq undef)) {
- $form->{revers} = 0;
- $form->{lastsort} = "partnumber";
- $form->{sort} = "partnumber";
- } #fi
-
- $callback =
- "$form->{script}?action=top100&searchitems=$form->{searchitems}&itemstatus=$form->{itemstatus}&bom=$form->{bom}&l_linetotal=$form->{l_linetotal}&title="
- . $form->escape($form->{title}, 1);
-
- # if we have a serialnumber limit search
- if ($form->{serialnumber} || $form->{l_serialnumber}) {
- $form->{l_serialnumber} = "Y";
- unless ( $form->{bought}
- || $form->{sold}
- || $form->{rfq}
- || $form->{quoted}) {
- $form->{bought} = $form->{sold} = 1;
- }
- }
- IC->all_parts(\%myconfig, \%$form);
-
- if ($form->{itemstatus} eq 'active') {
- $option .= $locale->text('Active') . " : ";
- }
- if ($form->{itemstatus} eq 'obsolete') {
- $option .= $locale->text('Obsolete') . " : ";
- }
- if ($form->{itemstatus} eq 'orphaned') {
- $option .= $locale->text('Orphaned') . " : ";
- }
- if ($form->{itemstatus} eq 'onhand') {
- $option .= $locale->text('On Hand') . " : ";
- $form->{l_onhand} = "Y";
- }
- if ($form->{itemstatus} eq 'short') {
- $option .= $locale->text('Short') . " : ";
- $form->{l_onhand} = "Y";
- }
- if ($form->{onorder}) {
- $form->{l_ordnumber} = "Y";
- $callback .= "&onorder=$form->{onorder}";
- $option .= $locale->text('On Order') . " : ";
- }
- if ($form->{ordered}) {
- $form->{l_ordnumber} = "Y";
- $callback .= "&ordered=$form->{ordered}";
- $option .= $locale->text('Ordered') . " : ";
- }
- if ($form->{rfq}) {
- $form->{l_quonumber} = "Y";
- $callback .= "&rfq=$form->{rfq}";
- $option .= $locale->text('RFQ') . " : ";
- }
- if ($form->{quoted}) {
- $form->{l_quonumber} = "Y";
- $callback .= ""ed=$form->{quoted}";
- $option .= $locale->text('Quoted') . " : ";
- }
- if ($form->{bought}) {
- $form->{l_invnumber} = "Y";
- $callback .= "&bought=$form->{bought}";
- $option .= $locale->text('Bought') . " : ";
- }
- if ($form->{sold}) {
- $form->{l_invnumber} = "Y";
- $callback .= "&sold=$form->{sold}";
- $option .= $locale->text('Sold') . " : ";
- }
- if ( $form->{bought}
- || $form->{sold}
- || $form->{onorder}
- || $form->{ordered}
- || $form->{rfq}
- || $form->{quoted}) {
-
- $form->{l_lastcost} = "";
- $form->{l_name} = "Y";
- if ($form->{transdatefrom}) {
- $callback .= "&transdatefrom=$form->{transdatefrom}";
- $option .= "\n<br>"
- . $locale->text('From')
- . " "
- . $locale->date(\%myconfig, $form->{transdatefrom}, 1);
- }
- if ($form->{transdateto}) {
- $callback .= "&transdateto=$form->{transdateto}";
- $option .= "\n<br>"
- . $locale->text('To')
- . " "
- . $locale->date(\%myconfig, $form->{transdateto}, 1);
- }
- }
-
- $option .= "<br>";
-
- if ($form->{partnumber}) {
- $callback .= "&partnumber=$form->{partnumber}";
- $option .= $locale->text('Part Number') . qq| : $form->{partnumber}<br>|;
- }
- if ($form->{ean}) {
- $callback .= "&partnumber=$form->{ean}";
- $option .= $locale->text('EAN') . qq| : $form->{ean}<br>|;
- }
- if ($form->{partsgroup}) {
- $callback .= "&partsgroup=$form->{partsgroup}";
- $option .= $locale->text('Group') . qq| : $form->{partsgroup}<br>|;
- }
- if ($form->{serialnumber}) {
- $callback .= "&serialnumber=$form->{serialnumber}";
- $option .= $locale->text('Serial Number') . qq| : $form->{serialnumber}<br>|;
- }
- if ($form->{description}) {
- $callback .= "&description=$form->{description}";
- $description = $form->{description};
- $description =~ s/\n/<br>/g;
- $option .= $locale->text('Part Description') . qq| : $form->{description}<br>|;
- }
- if ($form->{make}) {
- $callback .= "&make=$form->{make}";
- $option .= $locale->text('Make') . qq| : $form->{make}<br>|;
- }
- if ($form->{model}) {
- $callback .= "&model=$form->{model}";
- $option .= $locale->text('Model') . qq| : $form->{model}<br>|;
- }
- if ($form->{drawing}) {
- $callback .= "&drawing=$form->{drawing}";
- $option .= $locale->text('Drawing') . qq| : $form->{drawing}<br>|;
- }
- if ($form->{microfiche}) {
- $callback .= "µfiche=$form->{microfiche}";
- $option .= $locale->text('Microfiche') . qq| : $form->{microfiche}<br>|;
- }
- if ($form->{l_soldtotal}) {
- $callback .= "&soldtotal=$form->{soldtotal}";
- $option .= $locale->text('soldtotal') . qq| : $form->{soldtotal}<br>|;
- }
-
- my @columns = $form->sort_columns(
- qw(number partnumber ean description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal)
- );
-
- if ($form->{l_linetotal}) {
- $form->{l_onhand} = "Y";
- $form->{l_linetotalsellprice} = "Y" if $form->{l_sellprice};
- if ($form->{l_lastcost}) {
- $form->{l_linetotallastcost} = "Y";
- if (($form->{searchitems} eq 'assembly') && !$form->{bom}) {
- $form->{l_linetotallastcost} = "";
- }
- }
- $form->{l_linetotallistprice} = "Y" if $form->{l_listprice};
- }
-
- if ($form->{searchitems} eq 'service') {
-
- # remove bin, weight and rop from list
- map { $form->{"l_$_"} = "" } qw(bin weight rop);
-
- $form->{l_onhand} = "";
-
- # qty is irrelevant unless bought or sold
- if ( $form->{bought}
- || $form->{sold}
- || $form->{onorder}
- || $form->{ordered}
- || $form->{rfq}
- || $form->{quoted}) {
- $form->{l_onhand} = "Y";
- } else {
- $form->{l_linetotalsellprice} = "";
- $form->{l_linetotallastcost} = "";
- }
- }