X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/2657ce87f65043473d6dfd7ab522faeda7f11149..69e526ee5:/bin/mozilla/io.pl?ds=inline diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index abbdda173..af912eeb5 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -50,15 +50,18 @@ use SL::CT; use SL::Locale::String qw(t8); use SL::IC; use SL::IO; +use SL::File; use SL::PriceSource; +use SL::DB::Contact; use SL::DB::Customer; use SL::DB::Default; 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; +use SL::Helper::PrintOptions; require "bin/mozilla/common.pl"; @@ -385,7 +388,7 @@ sub display_row { '-labels' => \%projectnumber_labels, '-default' => $form->{"project_id_$i"} )); - $column_data{reqdate} = qq||; + $column_data{reqdate} = qq||; $column_data{subtotal} = sprintf qq||, $form->{"subtotal_$i"} ? 'checked' : ''; # begin marge calculations @@ -492,7 +495,7 @@ sub display_row { HEADER => \@HEADER, }); - if (0 != ($form->{sellprice_total} * 1)) { + if (abs($form->{sellprice_total} * 1) >= 0.01) { $form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100; } @@ -1023,82 +1026,6 @@ sub request_for_quotation { quotation(); } -sub edit_e_mail { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - _check_io_auth(); - - if ($form->{second_run}) { - $form->{print_and_post} = 0; - $form->{resubmit} = 0; - } - - $form->{email} = $form->{shiptoemail} if $form->{shiptoemail} && $form->{formname} =~ /(pick|packing|bin)_list/; - - if ($form->{"cp_id"}) { - CT->get_contact(\%myconfig, $form); - $form->{"email"} = $form->{"cp_email"} if $form->{"cp_email"}; - } - - $form->{language} = $form->get_template_language(\%myconfig); - $form->{language} = "_" . $form->{language} if $form->{language}; - - my $title = $locale->text('E-mail') . " " . $form->get_formname_translation(); - - $form->{oldmedia} = $form->{media}; - $form->{media} = "email"; - - my $global_bcc = AM->get_defaults()->{global_bcc}; - - $form->{bcc} = join ', ', grep $_, $form->{bcc}, $global_bcc; - - my $attachment_filename = $form->generate_attachment_filename(); - my $subject = $form->{subject} || $form->generate_email_subject(); - - $form->header; - - my (@dont_hide_key_list, %dont_hide_key, @hidden_keys); - @dont_hide_key_list = qw(action email cc bcc subject message sendmode format header override login password); - @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; - - print $form->parse_html_template('generic/edit_email', - { title => $title, - a_filename => $attachment_filename, - subject => $subject, - print_options => print_options('inline' => 1), - action => 'send_email', - HIDDEN => [ map +{ name => $_, value => $form->{$_} }, @hidden_keys ], - SHOW_BCC => $::auth->assert('email_bcc', 'may fail') }); - - $main::lxdebug->leave_sub(); -} - -sub send_email { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - - _check_io_auth(); - - my $callback = $form->{script} . "?action=edit"; - map({ $callback .= "\&${_}=" . E($form->{$_}); } qw(type id)); - - print_form("return"); - - Common->save_email_status(\%myconfig, $form); - - $form->{callback} = $callback; - $form->redirect(); - - $main::lxdebug->leave_sub(); -} - sub print_options { $::lxdebug->enter_sub(); @@ -1294,11 +1221,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!')) @@ -1492,6 +1415,7 @@ sub print_form { $form->{emailed} .= " $form->{formname}"; $form->{emailed} =~ s/^ //; + $form->{addition} = "MAILED"; } my $emailed = $form->{emailed}; @@ -1660,45 +1584,6 @@ sub post_as_new { $main::lxdebug->leave_sub(); } -sub ship_to { - $main::lxdebug->enter_sub(); - - _check_io_auth(); - - $::form->{print_and_post} = 0 if $::form->{second_run}; - - map { $::form->{$_} = $::form->parse_amount(\%::myconfig, $::form->{$_}) } qw(exchangerate creditlimit creditremaining); - - # get details for customer/vendor - call_sub($::form->{vc} . "_details", qw(name department_1 department_2 street zipcode city country gln contact email phone fax), $::form->{vc} . "number"); - $::form->{rowcount}--; - - my $cvars = SL::DB::Shipto->new->cvars_by_config; - my @shipto_vars = qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptogln - shiptocontact shiptocp_gender shiptophone shiptofax shiptoemail - shiptodepartment_1 shiptodepartment_2); - my $previous_form = $::auth->save_form_in_session(skip_keys => [ @shipto_vars, qw(header shipto_id), map { "shiptocvar_" . $_->config->name } @{ $cvars } ]); - $::form->{title} = $::locale->text('Ship to'); - $::form->header; - - my $vc_obj = ($::form->{vc} eq 'customer' ? "SL::DB::Customer" : "SL::DB::Vendor")->new(id => $::form->{$::form->{vc} . "_id"})->load; - - $_->value($::form->{"shiptocvar_" . $_->config->name}) for @{ $cvars }; - - print $::form->parse_html_template('io/ship_to', { previousform => $previous_form, - nextsub => $::form->{display_form} || 'display_form', - vc_obj => $vc_obj, - cvars => $cvars, - }); - - $main::lxdebug->leave_sub(); -} - -sub ship_to_entered { - $::auth->restore_form_from_session(delete $::form->{previousform}); - call_sub($::form->{nextsub}); -} - sub relink_accounts { $main::lxdebug->enter_sub(); @@ -2023,3 +1908,56 @@ sub _make_record { return $obj; } + +sub setup_sales_purchase_print_options { + my $print_form = Form->new(''); + $print_form->{printers} = SL::DB::Manager::Printer->get_all_sorted; + $print_form->{languages} = SL::DB::Manager::Language->get_all_sorted; + + $print_form->{$_} = $::form->{$_} for qw(type media language_id printer_id); + + return SL::Helper::PrintOptions->get_print_options( + form => $print_form, + options => { + show_headers => 1, + }, + ); +} + +sub show_sales_purchase_email_dialog { + my $contact = $::form->{cp_id} ? SL::DB::Contact->load_cached($::form->{cp_id}) : undef; + my $email_form = { + to => $contact ? $contact->cp_email : '', + subject => $::form->generate_email_subject, + attachment_filename => $::form->generate_attachment_filename, + }; + + my $html = $::form->parse_html_template("common/_send_email_dialog", { + email_form => $email_form, + show_bcc => $::auth->assert('email_bcc', 'may fail'), + }); + + print $::form->ajax_response_header, $html; +} + +sub send_sales_purchase_email { + my $type = $::form->{type}; + my $id = $::form->{id}; + my $script = $type =~ m{sales_order|purchase_order|quotation} ? 'oe.pl' + : $type =~ m{delivery_} ? 'do.pl' + : 'is.pl'; + + my $email_form = delete $::form->{email_form}; + my %field_names = (to => 'email'); + + $::form->{ $field_names{$_} // $_ } = $email_form->{$_} for keys %{ $email_form }; + + $::form->{media} = 'email'; + + print_form("return"); + Common->save_email_status(\%::myconfig, $::form); + + flash_later('info', $::locale->text('The email has been sent.')); + + print $::form->redirect_header($script . '?action=edit&id=' . $::form->escape($id) . '&type=' . $::form->escape($type)); +}