X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=f3e7fe5d43f4c5d20d9cfdc25df944b5c03697a8;hb=08e48f66590f580cbe2c8e3df76883d88b4c0fef;hp=f11fad9a88b108659d6494fd3919b4279305434f;hpb=0070a2500fcd59d65a6f39a7a4e8d5eb9ef6cdbd;p=kivitendo-erp.git diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index f11fad9a8..f3e7fe5d4 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -41,6 +41,7 @@ use SL::CVar; use SL::IC; use SL::Helper::Flash qw(flash); use SL::HTML::Util; +use SL::Presenter::Part; use SL::ReportGenerator; #use SL::PE; @@ -167,7 +168,6 @@ sub generate_report { $form->{title} = $locale->text('Articles'); my %column_defs = ( - 'bin' => { 'text' => $locale->text('Bin'), }, 'deliverydate' => { 'text' => $locale->text('deliverydate'), }, 'description' => { 'text' => $locale->text('Part Description'), }, 'notes' => { 'text' => $locale->text('Notes'), }, @@ -177,6 +177,7 @@ sub generate_report { 'insertdate' => { 'text' => $locale->text('Insert Date'), }, 'invnumber' => { 'text' => $locale->text('Invoice Number'), }, 'lastcost' => { 'text' => $locale->text('Last Cost'), }, + 'assembly_lastcost' => { 'text' => $locale->text('Assembly Last Cost'), }, 'linetotallastcost' => { 'text' => $locale->text('Extended'), }, 'linetotallistprice' => { 'text' => $locale->text('Extended'), }, 'linetotalsellprice' => { 'text' => $locale->text('Extended'), }, @@ -184,10 +185,11 @@ sub generate_report { 'microfiche' => { 'text' => $locale->text('Microfiche'), }, 'name' => { 'text' => $locale->text('Name'), }, 'onhand' => { 'text' => $locale->text('Stocked Qty'), }, + 'assembly_qty' => { 'text' => $locale->text('Assembly Item Qty'), }, 'ordnumber' => { 'text' => $locale->text('Order Number'), }, 'partnumber' => { 'text' => $locale->text('Part Number'), }, 'partsgroup' => { 'text' => $locale->text('Partsgroup'), }, - 'priceupdate' => { 'text' => $locale->text('Updated'), }, + 'priceupdate' => { 'text' => $locale->text('Price updated'), }, 'quonumber' => { 'text' => $locale->text('Quotation'), }, 'rop' => { 'text' => $locale->text('ROP'), }, 'sellprice' => { 'text' => $locale->text('Sell Price'), }, @@ -201,6 +203,10 @@ sub generate_report { 'type_and_classific' => { 'text' => $locale->text('Type'), }, 'projectnumber' => { 'text' => $locale->text('Project Number'), }, 'projectdescription' => { 'text' => $locale->text('Project Description'), }, + 'warehouse' => { 'text' => $locale->text('Default Warehouse'), }, + 'bin' => { 'text' => $locale->text('Default Bin'), }, + 'make' => { 'text' => $locale->text('Make'), }, + 'model' => { 'text' => $locale->text('Model'), }, ); $revers = $form->{revers}; @@ -263,6 +269,7 @@ sub generate_report { obsolete => $locale->text('Obsolete'), orphaned => $locale->text('Orphaned'), onhand => $locale->text('On Hand'), + assembly_qty => $locale->text('Assembly Item Qty'), short => $locale->text('Short'), onorder => $locale->text('On Order'), ordered => $locale->text('Ordered'), @@ -279,17 +286,23 @@ sub generate_report { description => $locale->text('Part Description') . ": '$form->{description}'", make => $locale->text('Make') . ": '$form->{make}'", model => $locale->text('Model') . ": '$form->{model}'", + customername => $locale->text('Customer') . ": '$form->{customername}'", + customernumber=> $locale->text('Customer Part Number').": '$form->{customernumber}'", drawing => $locale->text('Drawing') . ": '$form->{drawing}'", microfiche => $locale->text('Microfiche') . ": '$form->{microfiche}'", l_soldtotal => $locale->text('Qty in Selected Records'), ean => $locale->text('EAN') . ": '$form->{ean}'", insertdatefrom => $locale->text('Insert Date') . ": " . $locale->text('From') . " " . $locale->date(\%myconfig, $form->{insertdatefrom}, 1), insertdateto => $locale->text('Insert Date') . ": " . $locale->text('To (time)') . " " . $locale->date(\%myconfig, $form->{insertdateto}, 1), + l_service => $locale->text('Services'), + l_assembly => $locale->text('Assemblies'), + l_part => $locale->text('Parts'), ); my @itemstatus_keys = qw(active obsolete orphaned onhand short); 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 insertdatefrom insertdateto ean shop all); + drawing microfiche l_soldtotal l_deliverydate transdatefrom transdateto insertdatefrom insertdateto ean shop all + l_service l_assembly l_part); # calculate dependencies for (@itemstatus_keys, @callback_keys) { @@ -311,6 +324,7 @@ sub generate_report { $column_defs{sellprice}{text} = $locale->text('Price'); $form->{l_lastcost} = "" } + $form->{l_assembly_lastcost} = "Y" if $form->{l_assembly} && $form->{l_lastcost}; if ($form->{description}) { $description = $form->{description}; @@ -327,8 +341,8 @@ sub generate_report { if ($form->{l_service} && !$form->{l_assembly} && !$form->{l_part}) { - # remove bin, weight and rop from list - map { $form->{"l_$_"} = "" } qw(bin weight rop); + # remove warehouse, bin, weight and rop from list + map { $form->{"l_$_"} = "" } qw(bin weight rop warehouse); $form->{l_onhand} = ""; @@ -364,6 +378,10 @@ sub generate_report { flash('warning', $::locale->text('Soldtotal does not make sense without any bsooqr options')); } + if ($form->{l_soldtotal} && ($form->{l_warehouse} || $form->{l_bin})) { + delete $form->{"l_$_"} for qw(bin warehouse); + flash('warning', $::locale->text('Sorry, I am too stupid to figure out the default warehouse/bin and the sold qty. I drop the default warehouse/bin option.')); + } if ($form->{l_name} && !$bsooqr_mode) { delete $form->{l_name}; @@ -372,8 +390,9 @@ sub generate_report { IC->all_parts(\%myconfig, \%$form); my @columns = qw( - partnumber type_and_classific description notes partsgroup bin onhand rop soldtotal unit listprice - linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost + partnumber type_and_classific description notes partsgroup warehouse bin + make model assembly_qty onhand rop soldtotal unit listprice + linetotallistprice sellprice linetotalsellprice lastcost assembly_lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber transdate name serialnumber deliverydate ean projectnumber projectdescription insertdate shop @@ -401,14 +420,16 @@ sub generate_report { %column_defs = (%column_defs, %column_defs_cvars, %column_defs_pricegroups); map { $column_defs{$_}->{visible} ||= $form->{"l_$_"} ? 1 : 0 } @columns; - map { $column_defs{$_}->{align} = 'right' } qw(onhand sellprice listprice lastcost linetotalsellprice linetotallastcost linetotallistprice rop weight soldtotal shop), @pricegroup_columns; + map { $column_defs{$_}->{align} = 'right' } qw(assembly_qty onhand sellprice listprice lastcost assembly_lastcost linetotalsellprice linetotallastcost linetotallistprice rop weight soldtotal shop), @pricegroup_columns; my @hidden_variables = ( qw(l_subtotal l_linetotal searchitems itemstatus bom l_pricegroups insertdatefrom insertdateto), - qw(l_type_and_classific classification_id), + qw(l_type_and_classific classification_id l_part l_service l_assembly l_assortment), @itemstatus_keys, @callback_keys, map({ "cvar_$_->{name}" } @searchable_custom_variables), + map({'cvar_'. $_->{name} .'_from'} grep({$_->{type} eq 'date'} @searchable_custom_variables)), + map({'cvar_'. $_->{name} .'_to'} grep({$_->{type} eq 'date'} @searchable_custom_variables)), map({'cvar_'. $_->{name} .'_qtyop'} grep({$_->{type} eq 'number'} @searchable_custom_variables)), map({ "l_$_" } @columns), ); @@ -416,7 +437,7 @@ sub generate_report { my $callback = build_std_url('action=generate_report', grep { $form->{$_} } @hidden_variables); my @sort_full = qw(partnumber description onhand soldtotal deliverydate insertdate shop); - my @sort_no_revers = qw(partsgroup bin priceupdate invnumber ordnumber quonumber name image drawing serialnumber); + my @sort_no_revers = qw(partsgroup invnumber ordnumber quonumber name image drawing serialnumber); foreach my $col (@sort_full) { $column_defs{$col}->{link} = join '&', $callback, "sort=$col", map { "$_=" . E($form->{$_}) } qw(revers lastsort); @@ -484,6 +505,7 @@ sub generate_report { $ref->{sellprice} *= $ref->{exchangerate} / $ref->{price_factor}; $ref->{listprice} *= $ref->{exchangerate} / $ref->{price_factor}; $ref->{lastcost} *= $ref->{exchangerate} / $ref->{price_factor}; + $ref->{assembly_lastcost} *= $ref->{exchangerate} / $ref->{price_factor}; # use this for assemblies my $soldtotal = $bsooqr_mode ? $ref->{soldtotal} : $ref->{onhand}; @@ -494,11 +516,11 @@ sub generate_report { $soldtotal = 0 if ($form->{sold}); } - my $edit_link = build_std_url('script=controller.pl', 'action=Part/edit', 'part.id=' . E($ref->{id}), 'callback'); + my $edit_link = build_std_url('script=controller.pl', 'action=Part/edit', 'part.id=' . E($ref->{id})); $row->{partnumber}->{link} = $edit_link; $row->{description}->{link} = $edit_link; - foreach (qw(sellprice listprice lastcost)) { + foreach (qw(sellprice listprice lastcost assembly_lastcost)) { $row->{$_}{data} = $form->format_amount(\%myconfig, $ref->{$_}, 2); $row->{"linetotal$_"}{data} = $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{$_}, 2); } @@ -532,8 +554,17 @@ sub generate_report { # | ist bestellt | Von Kunden bestellt | -> edit_oe_ord_link # | Anfrage | Angebot | -> edit_oe_quo_link - my $edit_oe_ord_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{cv} eq 'vendor' ? 'purchase_order' : 'sales_order'), 'id=' . E($ref->{trans_id}), 'callback'); - my $edit_oe_quo_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{cv} eq 'vendor' ? 'request_quotation' : 'sales_quotation'), 'id=' . E($ref->{trans_id}), 'callback'); + my $edit_oe_ord_link = ($::instance_conf->get_feature_experimental_order) + ? build_std_url("script=controller.pl", 'action=Order/edit', + 'type=' . E($ref->{cv} eq 'vendor' ? 'purchase_order' : 'sales_order'), 'id=' . E($ref->{trans_id}), 'callback') + : build_std_url("script=oe.pl", 'action=edit', + 'type=' . E($ref->{cv} eq 'vendor' ? 'purchase_order' : 'sales_order'), 'id=' . E($ref->{trans_id}), 'callback'); + + my $edit_oe_quo_link = ($::instance_conf->get_feature_experimental_order) + ? build_std_url("script=controller.pl", 'action=Order/edit', + 'type=' . E($ref->{cv} eq 'vendor' ? 'request_quotation' : 'sales_quotation'), 'id=' . E($ref->{trans_id}), 'callback') + : build_std_url("script=oe.pl", 'action=edit', + 'type=' . E($ref->{cv} eq 'vendor' ? 'request_quotation' : 'sales_quotation'), 'id=' . E($ref->{trans_id}), 'callback'); $row->{ordnumber}{link} = $edit_oe_ord_link; $row->{quonumber}{link} = $edit_oe_quo_link if (!$ref->{ordnumber}); @@ -550,8 +581,11 @@ sub generate_report { map { $row->{$_}{link} = $ref->{$_} } qw(drawing microfiche); $row->{notes}{data} = SL::HTML::Util->strip($ref->{notes}); - $row->{type_and_classific}{data} = $::request->presenter->type_abbreviation($ref->{part_type}). - $::request->presenter->classification_abbreviation($ref->{classification_id}); + $row->{type_and_classific}{data} = SL::Presenter::Part::type_abbreviation($ref->{part_type}). + SL::Presenter::Part::classification_abbreviation($ref->{classification_id}); + + # last price update + $row->{priceupdate}{data} = SL::DB::Part->new(id => $ref->{id})->load->last_price_update->valid_from->to_kivitendo; $report->add_data($row);