X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fio.pl;h=b4f85af3c4a4e588e5f84927095fe1df446053fa;hb=a40f0c2f7523a7d6936ca483901c22dfe86358c9;hp=b150a3c8d888726bd96c7a10946827fb24ad6b06;hpb=19fb04d1cfad224a0f0c4c3b88494b4605fc6d4e;p=kivitendo-erp.git diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index b150a3c8d..b4f85af3c 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -50,6 +50,7 @@ use SL::CT; use SL::Locale::String qw(t8); use SL::IC; use SL::IO; +use SL::File; use SL::PriceSource; use SL::DB::Customer; @@ -58,7 +59,7 @@ use SL::DB::Language; use SL::DB::Printer; use SL::DB::Vendor; use SL::Helper::CreatePDF; -use SL::Helper::Flash qw(flash); +use SL::Helper::Flash; require "bin/mozilla/common.pl"; @@ -159,7 +160,7 @@ sub display_row { # column_index my @header_sort = qw( - runningnumber partnumber description ship ship_missing qty price_factor + runningnumber partnumber type_and_classific description ship ship_missing qty price_factor unit weight price_source sellprice discount linetotal bin stock_in_out ); @@ -169,6 +170,8 @@ sub display_row { my %column_def = ( runningnumber => { width => 5, value => $locale->text('No.'), display => 1, }, partnumber => { width => 8, value => $locale->text('Number'), display => 1, }, + type_and_classific + => { width => 2, value => $locale->text('Type'), display => 1, }, description => { width => 30, value => $locale->text('Part Description'), display => 1, }, ship => { width => 5, value => $locale->text('Delivered'), display => $is_s_p_order, }, ship_missing => { width => 5, value => $locale->text('Not delivered'), display => $show_ship_missing, }, @@ -295,12 +298,14 @@ sub display_row { my $rows = $form->numtextrows($form->{"description_$i"}, 30, 6); # quick delete single row - $column_data{runningnumber} .= q|| . + $column_data{runningnumber} = q|| . q|| . $locale->text('Remove') . q| |; $column_data{runningnumber} .= $cgi->textfield(-name => "runningnumber_$i", -id => "runningnumber_$i", -size => 5, -value => $i); # HuT $column_data{partnumber} = $cgi->textfield(-name => "partnumber_$i", -id => "partnumber_$i", -size => 12, -value => $form->{"partnumber_$i"}); + $column_data{type_and_classific} = $::request->presenter->type_abbreviation($form->{"part_type_$i"}). + $::request->presenter->classification_abbreviation($form->{"classification_id_$i"}) if $form->{"id_$i"}; $column_data{description} = (($rows > 1) # if description is too large, use a textbox instead ? $cgi->textarea( -name => "description_$i", -id => "description_$i", -default => $form->{"description_$i"}, -rows => $rows, -columns => 30) : $cgi->textfield(-name => "description_$i", -id => "description_$i", -value => $form->{"description_$i"}, -size => 30)) @@ -665,7 +670,6 @@ sub item_selected { map { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) } split / /, $form->{"taxaccounts_$i"} if !$form->{taxincluded}; $form->{creditremaining} -= $amount; - $form->{"runningnumber_$i"} = $i; # format amounts @@ -1063,12 +1067,38 @@ sub edit_e_mail { @dont_hide_key{@dont_hide_key_list} = (1) x @dont_hide_key_list; @hidden_keys = sort grep { !$dont_hide_key{$_} } grep { !ref $form->{$_} } keys %$form; + my (@files, @vc_files, @part_files, $has_document); + + if ($::instance_conf->get_doc_storage) { + @files = SL::File->get_all_versions(object_id => $form->{id}, object_type => $form->{type}, file_type => 'document'); + $has_document = 1 if scalar(@files) > 0; + @files = SL::File->get_all(object_id => $form->{id}, object_type => $form->{type}, file_type => 'attachment'); + @vc_files = SL::File->get_all(object_id => $form->{"$form->{vc}_id"}, object_type => $form->{vc}) + if $form->{vc} && $form->{"$form->{vc}_id"}; + + my %part_id_map = map { $_->{id} => $_ } grep { $_->{id} } map { + { + 'id' => $form->{"id_$_"}, + 'partname' => $form->{"partnumber_$_"} + } + } (1 .. $form->{rowcount}); + + foreach my $partid (keys %part_id_map) { + my @pfiles = SL::File->get_all(object_id => $partid, object_type => 'part'); + push @part_files, map { $_->{partname} = $part_id_map{$partid}->{partname}; $_ } @pfiles; + } + } + print $form->parse_html_template('generic/edit_email', { title => $title, a_filename => $attachment_filename, subject => $subject, + has_document => $has_document, print_options => print_options('inline' => 1), action => 'send_email', + FILES => \@files, + VC_FILES => \@vc_files, + PART_FILES => \@part_files, HIDDEN => [ map +{ name => $_, value => $form->{$_} }, @hidden_keys ], SHOW_BCC => $::auth->assert('email_bcc', 'may fail') }); @@ -1085,10 +1115,28 @@ sub send_email { my $callback = $form->{script} . "?action=edit"; map({ $callback .= "\&${_}=" . E($form->{$_}); } qw(type id)); + if ( $form->{action_oldfile} || $form->{action_nofile} ) { + if (!$form->{email} || $form->{email} =~ /^\s*$/) { + flash('error', $::locale->text('E-mail address missing!')); + } + else { + $form->send_email(\%myconfig,'pdf'); + } + } + else { + print_form("return"); + $form->{addition} = "SCREENED"; + $form->save_history; + $form->{addition} = "MAILED"; + } + + flash_later('info' , $::locale->text('E-Mail is sent to #1', $form->{email})) if !$form->{emailerr}; + flash_later('error', $::locale->text($form->{emailerr})) if $form->{emailerr}; - print_form("return"); + delete $form->{emailerr}; Common->save_email_status(\%myconfig, $form); + ##TODO andere SAVE HISTORY $form->{callback} = $callback; $form->redirect(); @@ -1291,11 +1339,7 @@ sub print_form { $form->{TEMPLATE_DRIVER_OPTIONS} = { }; if (any { $form->{type} eq $_ } qw(sales_quotation sales_order sales_delivery_order invoice request_quotation purchase_order purchase_delivery_order credit_note)) { - $form->{TEMPLATE_DRIVER_OPTIONS}->{variable_content_types} = { - longdescription => 'html', - partnotes => 'html', - notes => 'html', - }; + $form->{TEMPLATE_DRIVER_OPTIONS}->{variable_content_types} = $form->get_variable_content_types(); } $form->isblank("email", $locale->text('E-mail address missing!')) @@ -1759,9 +1803,11 @@ sub _update_part_information { foreach my $i (1..$form->{rowcount}) { next unless ($form->{"id_${i}"}); - my $info = $form->{PART_INFORMATION}->{$form->{"id_${i}"}} || { }; - $form->{"partunit_${i}"} = $info->{unit}; - $form->{"weight_$i"} = $info->{weight}; + my $info = $form->{PART_INFORMATION}->{$form->{"id_${i}"}} || { }; + $form->{"partunit_${i}"} = $info->{unit}; + $form->{"weight_$i"} = $info->{weight}; + $form->{"part_type_$i"} = $info->{part_type}; + $form->{"classification_id_$i"} = $info->{classification_id}; } $main::lxdebug->leave_sub(); @@ -1967,7 +2013,6 @@ sub _make_record_item { } sub _make_record { - Form::disconnect_standard_dbh; my $class = { sales_order => 'Order', purchase_order => 'Order',