From: Jan Büren Date: Mon, 6 Jan 2014 15:33:44 +0000 (+0100) Subject: Merge branch 'master' of github.com:kivitendo/kivitendo-erp X-Git-Tag: release-3.1.0beta1~22^2~53^2^2~1 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/80c07cb7a24d6019075f5991970dfe38ef36a774?hp=0944c42cb08b92576684720c88ab13f21968be0d Merge branch 'master' of github.com:kivitendo/kivitendo-erp --- diff --git a/SL/DN.pm b/SL/DN.pm index c38733e19..ebfa4f374 100644 --- a/SL/DN.pm +++ b/SL/DN.pm @@ -327,12 +327,13 @@ sub save_dunning { $form->{DUNNING_PDFS_EMAIL} = []; + $form->{dunning_id} = $dunning_id; + $self->create_invoice_for_fees($myconfig, $form, $dbh, $dunning_id); $self->print_invoice_for_fees($myconfig, $form, $dunning_id, $dbh); $self->print_dunning($myconfig, $form, $dunning_id, $dbh); - $form->{dunning_id} = $dunning_id; if ($send_email) { $self->send_email($myconfig, $form, $dunning_id, $dbh); diff --git a/bin/mozilla/common.pl b/bin/mozilla/common.pl index 8e374ec51..abe345150 100644 --- a/bin/mozilla/common.pl +++ b/bin/mozilla/common.pl @@ -511,6 +511,10 @@ sub mark_as_paid_common { $referer =~ /^(.*)\?action\=[^\&]*(\&.*)$/; $script = $1; $callback = $2; + } elsif ($referer =~ /RESTORE_FORM_FROM_SESSION_ID/){ + $referer =~ /^(.*)\?RESTORE_FORM_FROM_SESSION_ID\=(.*)$/; + $script = $1; + $callback = ""; } else { $script = $referer; $callback = ""; diff --git a/bin/mozilla/dn.pl b/bin/mozilla/dn.pl index 01658ab10..9cac44e3a 100644 --- a/bin/mozilla/dn.pl +++ b/bin/mozilla/dn.pl @@ -251,7 +251,8 @@ sub save_dunning { $form->{language_id} = $saved_language_id; - if($form->{DUNNING_PDFS}) { + if (scalar @{ $form->{DUNNING_PDFS} }) { + $form->{dunning_id} = strftime("%Y%m%d", localtime time) if scalar @{ $form->{DUNNING_PDFS}} > 1; DN->melt_pdfs(\%myconfig, $form, $form->{copies}); } @@ -498,6 +499,7 @@ sub print_multiple { if (!$form->{force_lang}) { $form->{language_id} = $language_ids[$i]; } + $form->{dunning_id} = $dunning_id; DN->print_invoice_for_fees(\%myconfig, $form, $dunning_id); DN->print_dunning(\%myconfig, $form, $dunning_id); $i++; @@ -505,7 +507,7 @@ sub print_multiple { $form->{language_id} = $saved_language_id; if (scalar @{ $form->{DUNNING_PDFS} }) { - $form->{dunning_id} = strftime("%Y%m%d", localtime time); + $form->{dunning_id} = strftime("%Y%m%d", localtime time) if scalar @{ $form->{DUNNING_PDFS}} > 1; DN->melt_pdfs(\%myconfig, $form, $form->{copies}); if ($form->{media} eq 'printer') { diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index 3e54c1ed8..b722e2081 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -412,7 +412,7 @@ sub update_delivery_order { map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] }; $form->{"marge_price_factor_$i"} = $form->{item_list}->[0]->{price_factor}; - $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}); + $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"} * (1 - $form->{tradediscount})); $form->{"lastcost_$i"} = $form->format_amount(\%myconfig, $form->{"lastcost_$i"}); $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}); } diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index c7cb71b07..a696f9c18 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -1194,14 +1194,22 @@ sub generate_report { # soldtotal doesn't make sense with more than one bsooqr option. # so reset it to sold (the most common option), and issue a warning + # ... + # also it doesn't make sense without bsooqr. disable and issue a warning too my @bsooqr = qw(sold bought onorder ordered rfq quoted); - if ($form->{l_subtotal} && 1 < grep { $form->{$_} } @bsooqr) { + my $bsooqr_mode = grep { $form->{$_} } @bsooqr; + if ($form->{l_subtotal} && 1 < $bsooqr_mode) { my $enabled = first { $form->{$_} } @bsooqr; $form->{$_} = '' for @bsooqr; $form->{$enabled} = 'Y'; push @options, $::locale->text('Subtotal cannot distinguish betweens record types. Only one of the selected record types will be displayed: #1', $optiontexts{$enabled}); } + if ($form->{l_soldtotal} && !$bsooqr_mode) { + delete $form->{l_soldtotal}; + + flash('warning', $::locale->text('Soldtotal does not make sense without any bsooqr options')); + } IC->all_parts(\%myconfig, \%$form); @@ -1266,7 +1274,7 @@ sub generate_report { 'assembly' => $locale->text('assembly_list'), ); - $report->set_options('top_info_text' => $locale->text('Options') . ': ' . join(', ', grep $_, @options), + $report->set_options('raw_top_info_text' => $form->parse_html_template('ic/generate_report_top', { options => \@options }), 'raw_bottom_info_text' => $form->parse_html_template('ic/generate_report_bottom'), 'output_format' => 'HTML', 'title' => $form->{title}, @@ -1316,7 +1324,7 @@ sub generate_report { $ref->{lastcost} *= $ref->{exchangerate} / $ref->{price_factor}; # use this for assemblies - my $soldtotal = $ref->{soldtotal}; + my $soldtotal = $bsooqr_mode ? $ref->{soldtotal} : $ref->{onhand}; if ($ref->{assemblyitem}) { $row->{partnumber}{align} = 'right'; diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl index 30124cf64..46e32fabc 100644 --- a/bin/mozilla/ir.pl +++ b/bin/mozilla/ir.pl @@ -116,43 +116,14 @@ sub invoice_links { } } - my ($payment_id, $language_id, $taxzone_id, $currency, $delivery_term_id); - if ($form->{payment_id}) { - $payment_id = $form->{payment_id}; - } - if ($form->{language_id}) { - $language_id = $form->{language_id}; - } - if ($form->{taxzone_id}) { - $taxzone_id = $form->{taxzone_id}; - } - if ($form->{currency}) { - $currency = $form->{currency}; - } - if ($form->{delivery_term_id}) { - $delivery_term_id = $form->{delivery_term_id}; - } + $form->backup_vars(qw(payment_id language_id taxzone_id + currency delivery_term_id intnotes cp_id)); - my $cp_id = $form->{cp_id}; IR->get_vendor(\%myconfig, \%$form); IR->retrieve_invoice(\%myconfig, \%$form); - $form->{cp_id} = $cp_id; - if ($payment_id) { - $form->{payment_id} = $payment_id; - } - if ($language_id) { - $form->{language_id} = $language_id; - } - if ($taxzone_id) { - $form->{taxzone_id} = $taxzone_id; - } - if ($currency) { - $form->{currency} = $currency; - } - if ($delivery_term_id) { - $form->{delivery_term_id} = $delivery_term_id; - } + $form->restore_vars(qw(payment_id language_id taxzone_id + currency delivery_term_id intnotes cp_id)); my @curr = $form->get_all_currencies(); map { $form->{selectcurrency} .= "