X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fic.pl;h=cfe6451d7e1ba88caf1886f2fd43e0d2c1fdef39;hb=bea5a6c5fbb338f7baee3690c3403adb23a92a04;hp=8200b01100700d6e758bdfc3c5072fb609a7b1bb;hpb=61cdba5d566357f3beabe0e7f3f0cb2d7bdccd73;p=kivitendo-erp.git diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index 8200b0110..cfe6451d7 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -94,7 +94,7 @@ sub add { sub search { $lxdebug->enter_sub(); - $auth->assert('part_service_assembly_edit'); + $auth->assert('part_service_assembly_details'); $form->{revers} = 0; # switch for backward sorting $form->{lastsort} = ""; # memory for which table was sort at last time @@ -106,8 +106,6 @@ sub search { $form->{title} = $locale->text($form->{title}); $form->{title} = $locale->text('Assemblies') if ($is_xyz{is_assembly}); - $form->{jsscript} = 1; - $form->{CUSTOM_VARIABLES} = CVar->get_configs('module' => 'IC'); ($form->{CUSTOM_VARIABLES_FILTER_CODE}, $form->{CUSTOM_VARIABLES_INCLUSION_CODE}) = CVar->render_search_options('variables' => $form->{CUSTOM_VARIABLES}, @@ -1011,7 +1009,7 @@ sub addtop100 { sub generate_report { $lxdebug->enter_sub(); - $auth->assert('part_service_assembly_edit'); + $auth->assert('part_service_assembly_details'); my ($revers, $lastsort, $description); @@ -1463,7 +1461,7 @@ sub parts_subtotal { sub edit { $lxdebug->enter_sub(); - $auth->assert('part_service_assembly_edit'); + $auth->assert('part_service_assembly_details'); # show history button $form->{javascript} = qq||; @@ -1484,7 +1482,7 @@ sub edit { sub link_part { $lxdebug->enter_sub(); - $auth->assert('part_service_assembly_edit'); + $auth->assert('part_service_assembly_details'); IC->create_links("IC", \%myconfig, \%$form); @@ -1574,7 +1572,7 @@ sub link_part { sub form_header { $lxdebug->enter_sub(); - $auth->assert('part_service_assembly_edit'); + $auth->assert('part_service_assembly_details'); $form->{pg_keys} = sub { "$_[0]->{partsgroup}--$_[0]->{id}" }; $form->{description_area} = ($form->{rows} = $form->numtextrows($form->{description}, 40)) > 1; @@ -1585,7 +1583,22 @@ sub form_header { $form->get_lists('price_factors' => 'ALL_PRICE_FACTORS', 'partsgroup' => 'all_partsgroup', - 'vendors' => 'ALL_VENDORS',); + 'vendors' => 'ALL_VENDORS', + 'warehouses' => { 'key' => 'WAREHOUSES', + 'bins' => 'BINS', }); + # leerer wert für Lager und Lagerplatz korrekt einstellt + # ID 0 sollte in Ordnung sein, da der Zähler sowieso höher ist + my $no_default_bin_entry = { 'id' => '0', description => '--', 'BINS' => [ { id => '0', description => ''} ] }; + push @ { $form->{WAREHOUSES} }, $no_default_bin_entry; + if (my $max = scalar @{ $form->{WAREHOUSES} }) { + my ($default_warehouse_id, $default_bin_id); + if ($form->{action} eq 'add') { # default only for new entries + $default_warehouse_id = $::instance_conf->get_warehouse_id; + $default_bin_id = $::instance_conf->get_bin_id; + } + $form->{warehouse_id} ||= $default_warehouse_id || $form->{WAREHOUSES}->[$max -1]->{id}; + $form->{bin_id} ||= $default_bin_id || $form->{WAREHOUSES}->[$max -1]->{BINS}->[0]->{id}; + } IC->retrieve_buchungsgruppen(\%myconfig, $form); @@ -1595,16 +1608,11 @@ sub form_header { flash('info', $::locale->text('This partnumber is not unique. You should change it.')); } - # use JavaScript Calendar or not (yes!) - $form->{jsscript} = 1; - my $units = AM->retrieve_units(\%myconfig, $form); $form->{ALL_UNITS} = [ map +{ name => $_ }, sort { $units->{$a}{sortkey} <=> $units->{$b}{sortkey} } keys %$units ]; $form->{defaults} = AM->get_defaults(); - $::request->{layout}->focus("#partnumber"); - $form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'IC', 'trans_id' => $form->{id}); CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}, show_disabled_message => 1) @@ -1616,6 +1624,9 @@ sub form_header { # BUCHUNGSGRUPPEN => $form->{BUCHUNGSGRUPPEN}, # payment_terms => $form->{payment_terms}, # all_partsgroup => $form->{all_partsgroup}}); + + $form->{show_edit_buttons} = $main::auth->check_right($form->{login}, 'part_service_assembly_edit'); + print $form->parse_html_template('ic/form_header'); $lxdebug->leave_sub(); } @@ -1623,7 +1634,7 @@ sub form_header { sub form_footer { $lxdebug->enter_sub(); - $auth->assert('part_service_assembly_edit'); + $auth->assert('part_service_assembly_details'); print $form->parse_html_template('ic/form_footer'); @@ -1758,6 +1769,8 @@ sub assembly_row { sub update { $lxdebug->enter_sub(); + $auth->assert('part_service_assembly_edit'); + # parse pricegroups. and no, don't rely on check_form for this... map { $form->{"price_$_"} = $form->parse_amount(\%myconfig, $form->{"price_$_"}) } 1 .. $form->{price_rows}; $form->{sellprice} = $form->parse_amount(\%myconfig, $form->{sellprice}); @@ -1846,6 +1859,11 @@ sub save { $form->error($locale->text('Description must not be empty!')) unless $form->{description}; $form->error($locale->text('Partnumber must not be set to empty!')) if $form->{id} && !$form->{partnumber}; + # undef warehouse_id if the empty value is selected + if ( ($form->{warehouse_id} == 0) && ($form->{bin_id} == 0) ) { + undef $form->{warehouse_id}; + undef $form->{bin_id}; + } # save part if (IC->save(\%myconfig, \%$form) == 3) { $form->error($locale->text('Partnumber not unique!')); @@ -2018,7 +2036,7 @@ sub delete { sub price_row { $lxdebug->enter_sub(); - $auth->assert('part_service_assembly_edit'); + $auth->assert('part_service_assembly_details'); my ($numrows) = @_;