From: Moritz Bunkus Date: Tue, 7 Jan 2014 18:09:55 +0000 (+0100) Subject: Merge branch 'sepa-fixes-2320' X-Git-Tag: release-3.1.0beta1~22^2~22^2~21 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/b021f0f5808d9a3b02ddc7f13c206ebc88387ff1?hp=0e36c22a2610966d3c83957426d0c91b25c65da3 Merge branch 'sepa-fixes-2320' Behebt #2320. --- diff --git a/SL/Auth.pm b/SL/Auth.pm index 59542d65d..13044e776 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -1067,6 +1067,7 @@ sub all_rights_full { ["sales_all_edit", $locale->text("View/edit all employees sales documents")], ["edit_prices", $locale->text("Edit prices and discount (if not used, textfield is ONLY set readonly)")], ["show_ar_transactions", $locale->text("Show AR transactions as part of AR invoice report")], + ["delivery_plan", $locale->text("Show delivery plan")], ["--ap", $locale->text("AP")], ["request_quotation_edit", $locale->text("Create and edit RFQs")], ["purchase_order_edit", $locale->text("Create and edit purchase orders")], diff --git a/SL/BackgroundJob/CreatePeriodicInvoices.pm b/SL/BackgroundJob/CreatePeriodicInvoices.pm index 0817ae6c6..fa5d64935 100644 --- a/SL/BackgroundJob/CreatePeriodicInvoices.pm +++ b/SL/BackgroundJob/CreatePeriodicInvoices.pm @@ -142,6 +142,18 @@ sub _create_periodic_invoice { $invoice->post(ar_id => $config->ar_chart_id) || die; + # like $form->add_shipto, but we don't need to check for a manual exception, + # because we can already assume this (otherwise no shipto_id from order) + if ($order->shipto_id) { + + my $shipto_oe = SL::DB::Manager::Shipto->find_by(shipto_id => $order->shipto_id); + my $shipto_ar = $shipto_oe->clone_and_reset; + + $shipto_ar->module('AR'); # alter module OE -> AR + $shipto_ar->trans_id($invoice->id); # alter trans_id -> new id from invoice + $shipto_ar->save; + } + $order->link_to_record($invoice); SL::DB::PeriodicInvoice->new(config_id => $config->id, diff --git a/SL/Controller/Admin.pm b/SL/Controller/Admin.pm index 2e5542086..179142c73 100644 --- a/SL/Controller/Admin.pm +++ b/SL/Controller/Admin.pm @@ -129,6 +129,12 @@ sub action_edit_user { $self->edit_user_form(title => t8('Edit User')); } +sub action_save_newuser { + my ($self) = @_; + $::form->{user}{clients} = 0; + $self->action_save_user(); +} + sub action_save_user { my ($self) = @_; my $params = delete($::form->{user}) || { }; diff --git a/SL/Controller/DeliveryPlan.pm b/SL/Controller/DeliveryPlan.pm index ee4a29265..fc402fcc6 100644 --- a/SL/Controller/DeliveryPlan.pm +++ b/SL/Controller/DeliveryPlan.pm @@ -11,10 +11,10 @@ use SL::Locale::String; use Rose::Object::MakeMethods::Generic ( scalar => [ qw(db_args flat_filter) ], - 'scalar --get_set_init' => [ qw(models) ], + 'scalar --get_set_init' => [ qw(models all_edit_right) ], ); -__PACKAGE__->run_before(sub { $::auth->assert('sales_order_edit'); }); +__PACKAGE__->run_before(sub { $::auth->assert('delivery_plan'); }); my %sort_columns = ( reqdate => t8('Reqdate'), @@ -27,78 +27,6 @@ my %sort_columns = ( customer => t8('Customer'), ); -my $delivery_plan_query = [ - 'order.customer_id' => { gt => 0 }, - 'order.closed' => 0, - or => [ 'order.quotation' => 0, 'order.quotation' => undef ], - - # filter by shipped_qty < qty, read from innermost to outermost - 'id' => [ \" - -- 3. resolve the desired information about those - SELECT oi.id FROM ( - -- 2. slice only part, orderitem and both quantities from it - SELECT parts_id, trans_id, qty, SUM(doi_qty) AS doi_qty FROM ( - -- 1. join orderitems and deliverorder items via record_links. - -- also add customer data to filter for sales_orders - SELECT oi.parts_id, oi.trans_id, oi.id, oi.qty, doi.qty AS doi_qty - FROM orderitems oi, oe, record_links rl, delivery_order_items doi - WHERE - oe.id = oi.trans_id AND - oe.customer_id IS NOT NULL AND - (oe.quotation = 'f' OR oe.quotation IS NULL) AND - NOT oe.closed AND - rl.from_id = oe.id AND - rl.from_id = oi.trans_id AND - oe.id = oi.trans_id AND - rl.from_table = 'oe' AND - rl.to_table = 'delivery_orders' AND - rl.to_id = doi.delivery_order_id AND - oi.parts_id = doi.parts_id - ) tuples GROUP BY parts_id, trans_id, qty - ) partials - LEFT JOIN orderitems oi ON partials.parts_id = oi.parts_id AND partials.trans_id = oi.trans_id - WHERE oi.qty > doi_qty - - UNION ALL - - -- 4. since the join over record_links fails for sales_orders wihtout any delivery order - -- retrieve those without record_links at all - SELECT oi.id FROM orderitems oi, oe - WHERE - oe.id = oi.trans_id AND - oe.customer_id IS NOT NULL AND - (oe.quotation = 'f' OR oe.quotation IS NULL) AND - NOT oe.closed AND - oi.trans_id NOT IN ( - SELECT from_id - FROM record_links rl - WHERE - rl.from_table ='oe' AND - rl.to_table = 'delivery_orders' - ) - - UNION ALL - - -- 5. In case someone deleted a line of the delivery_order there will be a record_link (4 fails) - -- but there won't be a delivery_order_items to find (3 fails too). Search for orphaned orderitems this way - SELECT oi.id FROM orderitems AS oi, oe, record_links AS rl - WHERE - rl.from_table = 'oe' AND - rl.to_table = 'delivery_orders' AND - - oi.trans_id = rl.from_id AND - oi.parts_id NOT IN ( - SELECT doi.parts_id FROM delivery_order_items AS doi WHERE doi.delivery_order_id = rl.to_id - ) AND - - oe.id = oi.trans_id AND - - oe.customer_id IS NOT NULL AND - (oe.quotation = 'f' OR oe.quotation IS NULL) AND - NOT oe.closed - " ], -]; - sub action_list { my ($self) = @_; @@ -194,6 +122,106 @@ sub make_filter_summary { $self->{filter_summary} = join ', ', @filter_strings; } +sub delivery_plan_query { + my $employee_id = SL::DB::Manager::Employee->current->id; + my $oe_owner = $_[0]->all_edit_right ? '' : " oe.eployee_id = $employee_id AND"; + [ + 'order.customer_id' => { gt => 0 }, + 'order.closed' => 0, + or => [ 'order.quotation' => 0, 'order.quotation' => undef ], + + # filter by shipped_qty < qty, read from innermost to outermost + 'id' => [ \" + -- 3. resolve the desired information about those + SELECT oi.id FROM ( + -- 2. slice only part, orderitem and both quantities from it + SELECT parts_id, trans_id, qty, SUM(doi_qty) AS doi_qty FROM ( + -- 1. join orderitems and deliverorder items via record_links. + -- also add customer data to filter for sales_orders + SELECT oi.parts_id, oi.trans_id, oi.id, oi.qty, doi.qty AS doi_qty + FROM orderitems oi, oe, record_links rl, delivery_order_items doi + WHERE + oe.id = oi.trans_id AND + oe.customer_id IS NOT NULL AND + (oe.quotation = 'f' OR oe.quotation IS NULL) AND + NOT oe.closed AND + $oe_owner + rl.from_id = oe.id AND + rl.from_id = oi.trans_id AND + oe.id = oi.trans_id AND + rl.from_table = 'oe' AND + rl.to_table = 'delivery_orders' AND + rl.to_id = doi.delivery_order_id AND + oi.parts_id = doi.parts_id + ) tuples GROUP BY parts_id, trans_id, qty + ) partials + LEFT JOIN orderitems oi ON partials.parts_id = oi.parts_id AND partials.trans_id = oi.trans_id + WHERE oi.qty > doi_qty + + UNION ALL + + -- 4. since the join over record_links fails for sales_orders wihtout any delivery order + -- retrieve those without record_links at all + SELECT oi.id FROM orderitems oi, oe + WHERE + oe.id = oi.trans_id AND + oe.customer_id IS NOT NULL AND + (oe.quotation = 'f' OR oe.quotation IS NULL) AND + NOT oe.closed AND + $oe_owner + oi.trans_id NOT IN ( + SELECT from_id + FROM record_links rl + WHERE + rl.from_table ='oe' AND + rl.to_table = 'delivery_orders' + ) + + UNION ALL + + -- 5. now for the really nasty cases. + -- If someone partially delivered an order in several delivery orders, + -- there will be lots of record_links (4 doesn't catch those) but those + -- won't have matching part_ids in delivery_order_items, so 1-3 can't + -- find anything + -- In this case aggreg record_links - delivery_order - delivery_order_items + -- slice only oe.id, parts_id and sum of of qty + -- left join that onto orderitems to get matching qtys in doi while retaining + -- entrys without matches and then throw out those without record_links + -- TODO: join this and 1-3 into a general case + -- need debug info? uncomment these: + SELECT oi.id -- ,oi.trans_id, oi.parts_id, coalesce(sum, 0), agg.parts_id + FROM orderitems oi LEFT JOIN ( + SELECT rl.from_id as oid, doi.parts_id, sum(doi.qty) FROM ( + SELECT from_id, to_id + FROM record_links rl + LEFT JOIN oe ON oe.id = from_id + WHERE + rl.from_table = 'oe' AND + rl.to_table = 'delivery_orders' AND + + oe.customer_id IS NOT NULL AND + $oe_owner + (oe.quotation = 'f' OR oe.quotation IS NULL) AND NOT oe.closed + ) rl + LEFT JOIN delivery_order_items doi ON (rl.to_id = doi.delivery_order_id) + GROUP BY rl.from_id, doi.parts_id + ) agg ON (agg.oid = oi.trans_id AND agg.parts_id = oi.parts_id) + LEFT JOIN oe ON oe.id = oi.trans_id + WHERE + EXISTS ( + SELECT to_id + FROM record_links rl + WHERE oi.trans_id = rl.from_id AND rl.from_table = 'oe' AND rl.to_table = 'delivery_orders' + ) AND + coalesce(sum, 0) < oi.qty AND + oe.customer_id IS NOT NULL AND + $oe_owner + (oe.quotation = 'f' OR oe.quotation IS NULL) AND NOT oe.closed + " ], + ] +} + sub init_models { my ($self) = @_; @@ -207,11 +235,15 @@ sub init_models { }, %sort_columns, }, - query => $delivery_plan_query, + query => $self->delivery_plan_query, with_objects => [ 'order', 'order.customer', 'part' ], ); } +sub init_all_edit_right { + $::auth->assert('sales_all_edit', 1) +} + sub link_to { my ($self, $object, %params) = @_; diff --git a/SL/DB/Shipto.pm b/SL/DB/Shipto.pm index 8795a1b50..1b174c011 100644 --- a/SL/DB/Shipto.pm +++ b/SL/DB/Shipto.pm @@ -3,6 +3,7 @@ package SL::DB::Shipto; use strict; use SL::DB::MetaSetup::Shipto; +use Rose::DB::Object::Helpers qw(clone_and_reset clone); our @SHIPTO_VARIABLES = qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax shiptoemail shiptodepartment_1 shiptodepartment_2); diff --git a/SL/DO.pm b/SL/DO.pm index d0086fcd7..3d4cb23bf 100644 --- a/SL/DO.pm +++ b/SL/DO.pm @@ -63,7 +63,7 @@ sub transactions { my $vc = $form->{vc} eq "customer" ? "customer" : "vendor"; my $query = - qq|SELECT dord.id, dord.donumber, dord.ordnumber, + qq|SELECT dord.id, dord.donumber, dord.ordnumber, dord.cusordnumber, dord.transdate, dord.reqdate, ct.${vc}number, ct.name, dord.${vc}_id, dord.globalproject_id, dord.closed, dord.delivered, dord.shippingpoint, dord.shipvia, @@ -415,7 +415,9 @@ sub save { my $rc = $dbh->commit(); $form->{saved_donumber} = $form->{donumber}; - + $form->{saved_ordnumber} = $form->{ordnumber}; + $form->{saved_cusordnumber} = $form->{cusordnumber}; + Common::webdav_folder($form); $main::lxdebug->leave_sub(); @@ -604,6 +606,9 @@ sub retrieve { $sth = prepare_execute_query($form, $dbh, $query, @do_ids); delete $form->{"${vc}_id"}; + my $pos = 0; + $form->{ordnumber_array} = ' '; + $form->{cusordnumber_array} = ' '; while (my $ref = $sth->fetchrow_hashref("NAME_lc")) { if ($form->{"${vc}_id"} && ($ref->{"${vc}_id"} != $form->{"${vc}_id"})) { $sth->finish(); @@ -614,12 +619,26 @@ sub retrieve { map { $form->{$_} = $ref->{$_} } keys %$ref if ($ref); $form->{donumber_array} .= $form->{donumber} . ' '; + $pos = index($form->{ordnumber_array},' ' . $form->{ordnumber} . ' '); + if ($pos == -1) { + $form->{ordnumber_array} .= $form->{ordnumber} . ' '; + } + $pos = index($form->{cusordnumber_array},' ' . $form->{cusordnumber} . ' '); + if ($pos == -1) { + $form->{cusordnumber_array} .= $form->{cusordnumber} . ' '; + } } $sth->finish(); $form->{donumber_array} =~ s/\s*$//g; + $form->{ordnumber_array} =~ s/ //; + $form->{ordnumber_array} =~ s/\s*$//g; + $form->{cusordnumber_array} =~ s/ //; + $form->{cusordnumber_array} =~ s/\s*$//g; $form->{saved_donumber} = $form->{donumber}; + $form->{saved_ordnumber} = $form->{ordnumber}; + $form->{saved_cusordnumber} = $form->{cusordnumber}; # if not given, fill transdate with current_date $form->{transdate} = $form->current_date($myconfig) unless $form->{transdate}; @@ -749,10 +768,10 @@ sub order_details { %projects_by_id = map { $_->id => $_ } @$projects; } - $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; - $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; - if ($projects_by_id{$form->{"globalproject_id"}}) { + $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; + $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; + for (@{ $projects_by_id{$form->{"globalproject_id"}}->cvars_by_config }) { $form->{"project_cvar_" . $_->config->name} = $_->value_as_text; } diff --git a/SL/IC.pm b/SL/IC.pm index b99ec2aad..ff8484b7e 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -457,6 +457,22 @@ sub save { # add assembly records if ($form->{item} eq 'assembly') { + # check additional assembly row + my $i = $form->{assembly_rows}; + # if last row is not empty add them + if ($form->{"partnumber_$i"} ne "") { + $query = qq|SELECT id FROM parts WHERE partnumber = ?|; + my ($partid) = selectrow_query($form, $dbh, $query,$form->{"partnumber_$i"} ); + if ( $partid ) { + $form->{"qty_$i"} = 1 unless ($form->{"qty_$i"}); + $form->{"id_$i"} = $partid; + $form->{"bom_$i"} = 0; + $form->{assembly_rows}++; + } + else { + $::form->error($::locale->text("uncorrect partnumber ").$form->{"partnumber_$i"}); + } + } for my $i (1 .. $form->{assembly_rows}) { $form->{"qty_$i"} = $form->parse_amount($myconfig, $form->{"qty_$i"}); @@ -469,7 +485,6 @@ sub save { do_query($form, $dbh, $query, @values); } } - my @a = localtime; $a[5] += 1900; $a[4]++; diff --git a/SL/IS.pm b/SL/IS.pm index cd15325f1..b00e809b5 100644 --- a/SL/IS.pm +++ b/SL/IS.pm @@ -99,10 +99,10 @@ sub invoice_details { %projects_by_id = map { $_->id => $_ } @$projects; } - $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; - $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; - if ($projects_by_id{$form->{"globalproject_id"}}) { + $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; + $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; + for (@{ $projects_by_id{$form->{"globalproject_id"}}->cvars_by_config }) { $form->{"project_cvar_" . $_->config->name} = $_->value_as_text; } diff --git a/SL/OE.pm b/SL/OE.pm index ae3ff0807..797eb9717 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -1070,10 +1070,10 @@ sub order_details { %projects_by_id = map { $_->id => $_ } @$projects; } - $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; - $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; - if ($projects_by_id{$form->{"globalproject_id"}}) { + $form->{globalprojectnumber} = $projects_by_id{$form->{"globalproject_id"}}->projectnumber; + $form->{globalprojectdescription} = $projects_by_id{$form->{"globalproject_id"}}->description; + for (@{ $projects_by_id{$form->{"globalproject_id"}}->cvars_by_config }) { $form->{"project_cvar_" . $_->config->name} = $_->value_as_text; } diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index b722e2081..a196eb563 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -293,16 +293,16 @@ sub form_header { $form->{oldvcname} = $form->{"old$form->{vc}"}; $form->{oldvcname} =~ s/--.*//; - if ($form->{resubmit}) { - my $dispatch_to_popup = ''; - if ($form->{format} eq "html") { - $dispatch_to_popup .= "window.open('about:blank','Beleg'); document.do.target = 'Beleg';"; - } - # emulate click for resubmitting actions - $dispatch_to_popup .= "document.do.${_}.click(); " for grep { /^action_/ } keys %$form; + my $dispatch_to_popup = ''; + if ($form->{resubmit} && ($form->{format} eq "html")) { + $dispatch_to_popup = "window.open('about:blank','Beleg'); document.do.target = 'Beleg';"; $dispatch_to_popup .= "document.do.submit();"; - $::request->{layout}->add_javascripts_inline("\$(function(){$dispatch_to_popup})"); + } elsif ($form->{resubmit}) { + # emulate click for resubmitting actions + $dispatch_to_popup = "document.do.${_}.click(); " for grep { /^action_/ } keys %$form; } + $::request->{layout}->add_javascripts_inline("\$(function(){$dispatch_to_popup})"); + my $follow_up_vc = $form->{ $form->{vc} eq 'customer' ? 'customer' : 'vendor' }; $follow_up_vc =~ s/--\d*\s*$//; @@ -491,7 +491,7 @@ sub orders { my @columns = qw( ids transdate reqdate id donumber - ordnumber customernumber + ordnumber customernumber cusordnumber name employee salesman shipvia globalprojectnumber transaction_description department @@ -508,7 +508,7 @@ sub orders { my $report = SL::ReportGenerator->new(\%myconfig, $form); my @hidden_variables = map { "l_${_}" } @columns; - push @hidden_variables, $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered donumber ordnumber serialnumber + push @hidden_variables, $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered donumber ordnumber serialnumber cusordnumber transaction_description transdatefrom transdateto reqdatefrom reqdateto type vc employee_id salesman_id project_id); @@ -522,6 +522,7 @@ sub orders { 'donumber' => { 'text' => $locale->text('Delivery Order'), }, 'ordnumber' => { 'text' => $locale->text('Order'), }, 'customernumber' => { 'text' => $locale->text('Customer Number'), }, + 'cusordnumber' => { 'text' => $locale->text('Customer Order Number'), }, 'name' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), }, 'employee' => { 'text' => $locale->text('Employee'), }, 'salesman' => { 'text' => $locale->text('Salesman'), }, @@ -867,6 +868,8 @@ sub invoice_multi { # Hinweis: delete gibt den wert zurueck und loescht danach das element (nett und einfach) # $shell: perldoc perlunc; /delete EXPR $form->{donumber} = delete $form->{donumber_array}; + $form->{ordnumber} = delete $form->{ordnumber_array}; + $form->{cusordnumber} = delete $form->{cusordnumber_array}; $form->{deliverydate} = $form->{transdate}; $form->{transdate} = $form->current_date(\%myconfig); $form->{duedate} = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1); diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index cf3ac5768..d0e501473 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -818,6 +818,7 @@ sub use_as_new { $form->{rowcount}--; $form->{invdate} = $form->current_date(\%myconfig); $form->{duedate} = $form->get_duedate(\%myconfig, $form->{invdate}) || $form->{invdate}; + $form->{employee_id} = SL::DB::Manager::Employee->current->id; # remember pricegroups for "use as new" IS->get_pricegroups_for_parts(\%myconfig, \%$form); diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index 302dbc16e..8ec6c4503 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -1648,10 +1648,6 @@ sub generate_bwa { my %myconfig = %main::myconfig; my $locale = $main::locale; - my $defaults = SL::DB::Default->get; - $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates; - $form->{templates} = $defaults->templates; - $form->{padding} = "  "; $form->{bold} = ""; $form->{endbold} = ""; @@ -1839,9 +1835,20 @@ sub generate_bwa { . qq| $longtodate|; } - $form->{IN} = "bwa.html"; + $form->{report_date} = $locale->text('Report date') . ": " . $form->current_date; - $form->parse_template; + if ( $form->{method} eq 'cash' ) { + $form->{accounting_method} = $locale->text('Cash accounting'); + } elsif ( $form->{method} eq 'accrual' ) { + $form->{accounting_method} = $locale->text('Accrual accounting'); + } else { + $form->{accounting_method} = ""; + }; + + $form->{title} = $locale->text('BWA'); + + $form->header; + print $form->parse_html_template('rp/bwa'); $main::lxdebug->leave_sub(); } diff --git a/css/kivitendo/bwa.css b/css/kivitendo/bwa.css new file mode 100644 index 000000000..4357a97df --- /dev/null +++ b/css/kivitendo/bwa.css @@ -0,0 +1,64 @@ +/* Allgemeine Schriftdefinition */ +th,td { + font-family: Arial, Verdana, Helvetica, Sans-serif; + font-size:small; +} + +@page { + size: landscape; + margin: 0.5cm; +} + +/* Definition Tabellenueberschrift */ + +.left { text-align:left; } +.center { text-align:center; } +.right { text-align:right; } + +tr.headline { border:0; } +tr.headline td { border:0; } +h3 { font-size:120%; } +h3 { font-size:100%; } + +/* Tabellenkopf */ +th { + font-weight: bold; + border-bottom: solid thin black; + padding:0 10px; + text-align:right; +} + +th.left { border-left: solid thin black; } +th.right { border-right: solid thin black; } + +.querkopf th.right { text-align:center; } +.querkopf th { + border-top: solid thin black; + border-bottom:0; +} + +/* Tabelleninhalt */ +td { + text-align:right; + padding:0 0.5em; +} +td.left { border-left: solid thin black; } +td.right { border-right: solid thin black; } + + +/* jede zweite Zeile grau hinterlegen */ +tr.grey { + background:#f0f0f0; +} + +/* letzte Zeile in der Tabelle */ +#last td{ border-bottom: solid thin black; } + +/* Zwischensumme/-ueberschriften */ +tr.subtotal td { font-weight: bold; } + +/* Fusszeile unter der Tabelle */ +td.footer { + text-align:right; + font-size:smaller; +} diff --git a/doc/changelog b/doc/changelog index 240b18347..126877b7a 100644 --- a/doc/changelog +++ b/doc/changelog @@ -108,6 +108,8 @@ Bugfixes: - Stornierte Rechnungen (sowohl die Stornorechnung als auch das Storno nicht Buchen oder Löschen, egal was in der Mandantenkonfiguration steht) - Wiederkehrende Rechnung mit Steuer inklusive buchen Erlöse falsch (Bug 2314) + - manuelle Lieferadresse im Auftrag wird nicht in wiederkehrende Rechung übernommen (Bug 2296) + 2012-12-10 - Release 3.0.0 diff --git a/locale/de/all b/locale/de/all index 7c529a31f..ddc1a1db7 100755 --- a/locale/de/all +++ b/locale/de/all @@ -1929,6 +1929,7 @@ $self->{texts} = { 'Show delete button in purchase orders?' => 'Soll der "Löschen"-Knopf bei Lieferantenaufträgen angezeigt werden?', 'Show delete button in sales delivery orders?' => 'Soll der "Löschen"-Knopf bei Verkaufslieferscheinen angezeigt werden?', 'Show delete button in sales orders?' => 'Soll der "Löschen"-Knopf bei Kundenaufträgen angezeigt werden?', + 'Show delivery plan' => 'Lieferplan anzeigen', 'Show details' => 'Detailsanzeige', 'Show details and reports of parts, services, assemblies' => 'Details und Berichte von Waren, Dienstleistungen und Erzeugnissen anzeigen', 'Show fields used for the best before date?' => 'Felder zur Eingabe des Mindesthaltbarkeitsdatums anzeigen?', @@ -2770,6 +2771,7 @@ $self->{texts} = { 'transferred out' => 'ausgelagert', 'trial_balance' => 'susa', 'unconfigured' => 'unkonfiguriert', + 'uncorrect partnumber ' => 'Unbekannte Teilenummer ', 'up' => 'hoch', 'use program settings' => 'benutze Programmeinstellungen', 'use user config' => 'Verwende Benutzereinstellung', diff --git a/menus/erp.ini b/menus/erp.ini index a096dc6ef..8de2f0cfd 100644 --- a/menus/erp.ini +++ b/menus/erp.ini @@ -165,7 +165,7 @@ module=dn.pl action=search [AR--Reports--Delivery Plan] -ACCESS=sales_order_edit +ACCESS=delivery_plan module=controller.pl action=DeliveryPlan/list diff --git a/scripts/installation_check.pl b/scripts/installation_check.pl index 6f76e3f45..3a69630ba 100755 --- a/scripts/installation_check.pl +++ b/scripts/installation_check.pl @@ -40,6 +40,7 @@ my %check; Getopt::Long::Configure ("bundling"); GetOptions( "v|verbose" => \ my $v, + "V|no-verbose" => \ my $nv, "a|all" => \ $check{a}, "o|optional!" => \ $check{o}, "d|devel!" => \ $check{d}, @@ -49,6 +50,15 @@ GetOptions( "c|color!" => \ ( my $c = 1 ), ); +# verbos is default +if ( $v && $nv ){ + $v = 1; +}elsif ($nv){ + undef $v; +}else{ + $v = 1; +} + # if nothing is requested check "required" my $default_run; if (!defined $check{a} @@ -308,9 +318,13 @@ Probe for LaTeX documentclasses and packages in master templates. Don't probe for LaTeX document classes and packages in master templates. (Useful in combination with --all) -=item C<-v. --verbose> +=item C<-v, --verbose> + +Print additional info for missing dependancies (enabled by default) + +=item C<-V, --no-verbose> -Print additional info for missing dependancies +Disable verbosity =back diff --git a/sql/Pg-upgrade2-auth/delivery_plan_rights.pl b/sql/Pg-upgrade2-auth/delivery_plan_rights.pl new file mode 100644 index 000000000..38b31c844 --- /dev/null +++ b/sql/Pg-upgrade2-auth/delivery_plan_rights.pl @@ -0,0 +1,26 @@ +# @tag: delivery_plan_rights +# @description: Setzt das neue Recht den Lieferplan anzuzeigen +# @depends: release_3_0_0 +package SL::DBUpgrade2::delivery_plan_rights; + +use strict; +use utf8; + +use parent qw(SL::DBUpgrade2::Base); + +use SL::DBUtils; + +sub run { + my ($self) = @_; + + my $groups = $main::auth->read_groups(); + + foreach my $group (values %{$groups}) { + $group->{rights}->{delivery_plan_rights} = $group->{rights}->{sales_order_edit}; + $main::auth->save_group($group); + } + + return 1; +} # end run + +1; diff --git a/sql/Pg-upgrade2/custom_variables_delete_via_trigger_2.pl b/sql/Pg-upgrade2/custom_variables_delete_via_trigger_2.pl new file mode 100644 index 000000000..d97493d4f --- /dev/null +++ b/sql/Pg-upgrade2/custom_variables_delete_via_trigger_2.pl @@ -0,0 +1,109 @@ +# @tag: custom_variables_delete_via_trigger_2 +# @description: Benutzerdefinierte Variablen werden nun via Trigger gelöscht (beim Löschen von Kunden, Lieferanten, Kontaktpersonen, Waren, Dienstleistungen, Erzeugnissen und Projekten). +# @depends: custom_variables_delete_via_trigger + +package SL::DBUpgrade2::custom_variables_delete_via_trigger_2; + +use utf8; +use strict; + +use parent qw(SL::DBUpgrade2::Base); + +sub run { + my ($self) = @_; + + my @queries = ( + #Delete orphaned entries + q|DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id NOT IN (SELECT id FROM customer UNION SELECT id FROM vendor) + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'CT'|, + q|DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id NOT IN (SELECT id FROM contacts) + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'Contacts'|, + q|DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id NOT IN (SELECT id FROM parts) + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'IC'|, + q|DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id NOT IN (SELECT id FROM project) + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'Projects'|, + + #Create trigger + q|CREATE OR REPLACE FUNCTION delete_cv_custom_variables_trigger() RETURNS trigger AS $$ + BEGIN + DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id = OLD.id + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'CT'; + + RETURN OLD; + END; + $$ LANGUAGE plpgsql|, + + q|DROP TRIGGER IF EXISTS delete_cv_custom_variables ON customer|, + q|DROP TRIGGER IF EXISTS delete_cv_custom_variables ON vendor|, + + q|CREATE TRIGGER delete_cv_custom_variables + BEFORE DELETE ON customer + FOR EACH ROW EXECUTE PROCEDURE delete_cv_custom_variables_trigger()|, + q|CREATE TRIGGER delete_cv_custom_variables + BEFORE DELETE ON vendor + FOR EACH ROW EXECUTE PROCEDURE delete_cv_custom_variables_trigger()|, + + #Create trigger + q|CREATE OR REPLACE FUNCTION delete_contact_custom_variables_trigger() RETURNS trigger AS $$ + BEGIN + DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id = OLD.cp_id + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'Contacts'; + + RETURN OLD; + END; + $$ LANGUAGE plpgsql|, + + q|DROP TRIGGER IF EXISTS delete_contact_custom_variables ON contacts|, + + q|CREATE TRIGGER delete_contact_custom_variables + BEFORE DELETE ON contacts + FOR EACH ROW EXECUTE PROCEDURE delete_contact_custom_variables_trigger()|, + + #Create trigger + q|CREATE OR REPLACE FUNCTION delete_part_custom_variables_trigger() RETURNS trigger AS $$ + BEGIN + DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id = OLD.id + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'IC'; + + RETURN OLD; + END; + $$ LANGUAGE plpgsql|, + + q|DROP TRIGGER IF EXISTS delete_part_custom_variables ON parts|, + + q|CREATE TRIGGER delete_part_custom_variables + BEFORE DELETE ON parts + FOR EACH ROW EXECUTE PROCEDURE delete_part_custom_variables_trigger()|, + + #Create trigger + q|CREATE OR REPLACE FUNCTION delete_project_custom_variables_trigger() RETURNS trigger AS $$ + BEGIN + DELETE FROM custom_variables WHERE (sub_module = '' OR sub_module IS NULL) + AND trans_id = OLD.id + AND (SELECT module FROM custom_variable_configs WHERE id = config_id) = 'Projects'; + + RETURN OLD; + END; + $$ LANGUAGE plpgsql|, + + q|DROP TRIGGER IF EXISTS delete_project_custom_variables ON project|, + + q|CREATE TRIGGER delete_project_custom_variables + BEFORE DELETE ON project + FOR EACH ROW EXECUTE PROCEDURE delete_project_custom_variables_trigger()|, + + ); + + $self->db_query($_) for @queries; + + return 1; +} + +1; diff --git a/templates/print/RB/bwa.html b/templates/print/RB/bwa.html deleted file mode 100644 index 91907d8fe..000000000 --- a/templates/print/RB/bwa.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<%company%> -

Kurzfristige Erfolgsrechnung <%period%>

-

SKR3   BWA

-
Blatt 1
 Im BetrachtungszeitraumKumuliert seit Jahresanfang
BezeichnungWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlagWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlag
 
Umsatzerlöse<%jetzt1%><%jetztgl1%><%kumm1%><%kummgl1%> 
Best.Verdg. FE/UE<%jetzt2%><%jetztgl2%><%kumm2%><%kummgl2%> 
Akt.Eigenleistungen<%jetzt3%><%jetztgl3%><%kumm3%><%kummgl3%> 
 
Gesamtleistung<%jetztgesamtleistung%><%jetztglgesamtleistung%><%jetztgkgesamtleistung%><%jetztpkgesamtleistung%><%kummgesamtleistung%><%kummglgesamtleistung%><%kummgkgesamtleistung%><%kummpkgesamtleistung%> 
 
Mat./Wareneinkauf<%jetzt4%><%jetztgl4%><%jetztgk4%><%jetztpk4%><%jetztauf4%><%kumm4%><%kummgl4%><%kummgk4%><%kummpk4%><%kummauf4%> 
 
Rohertrag<%jetztrohertrag%><%jetztglrohertrag%><%jetztgkrohertrag%><%jetztpkrohertrag%><%jetztaufrohertrag%><%kummrohertrag%><%kummglrohertrag%><%kummgkrohertrag%><%kummpkrohertrag%><%kummaufrohertrag%> 
 
So.betr.Erlöse<%jetzt5%><%jetztgl5%><%jetztgk5%><%jetztpk5%><%kumm5%><%kummgl5%><%kummgk5%><%kummpk5%> 
 
Betriebl. Rohertrag<%jetztbetriebrohertrag%><%jetztglbetriebrohertrag%><%jetztgkbetriebrohertrag%><%jetztpkbetriebrohertrag%><%jetztaufbetriebrohertrag%><%kummbetriebrohertrag%><%kummglbetriebrohertrag%><%kummgkbetriebrohertrag%><%kummpkbetriebrohertrag%><%kummaufbetriebrohertrag%> 
 
Kostenarten: 
Personalkosten<%jetzt10%><%jetztgl10%><%jetztgk10%><%jetztpk10%><%kumm10%><%kummgl10%><%kummgk10%><%kummpk10%> 
Raumkosten<%jetzt11%><%jetztgl11%><%jetztgk11%><%jetztpk11%><%kumm11%><%kummgl11%><%kummgk11%><%kummpk11%> 
Betriebl.Steuern<%jetzt12%><%jetztgl12%><%jetztgk12%><%jetztpk12%><%kumm12%><%kummgl12%><%kummgk12%><%kummpk12%> 
Versich./Beiträge<%jetzt13%><%jetztgl13%><%jetztgk13%><%jetztpk13%><%kumm13%><%kummgl13%><%kummgk13%><%kummpk13%> 
Kfz-Kosten (o.St.)<%jetzt14%><%jetztgl14%><%jetztgk14%><%jetztpk14%><%kumm14%><%kummgl14%><%kummgk14%><%kummpk14%> 
Werbe-/Reisekosten<%jetzt15%><%jetztgl15%><%jetztgk15%><%jetztpk15%><%kumm15%><%kummgl15%><%kummgk15%><%kummpk15%> 
Kosten Warenabgabe<%jetzt16%><%jetztgl16%><%jetztgk16%><%jetztpk16%><%kumm16%><%kummgl16%> -<%kummgk16%><%kummpk16%> 
Abschreibungen<%jetzt17%><%jetztgl17%><%jetztgk17%><%jetztpk17%><%kumm17%><%kummgl17%><%kummgk17%><%kummpk17%> 
Reparatur/Instandh.<%jetzt18%><%jetztgl18%><%jetztgk18%><%jetztpk18%><%kumm18%><%kummgl18%><%kummgk18%><%kummpk18%> 
Sonstige Kosten<%jetzt20%><%jetztgl20%><%jetztgk20%><%jetztpk20%><%kumm20%><%kummgl20%><%kummgk20%><%kummpk20%> 
Gesamtkosten<%jetztgesamtkosten%><%jetztglgesamtkosten%><%jetztgkgesamtkosten%><%jetztpkgesamtkosten%><%kummgesamtkosten%><%kummglgesamtkosten%><%kummgkgesamtkosten%><%kummpkgesamtkosten%> 
 
Betriebsergebnis<%jetztbetriebsergebnis%><%jetztglbetriebsergebnis%> -<%jetztgkbetriebsergebnis%><%jetztpkbetriebsergebnis%><%kummbetriebsergebnis%><%kummglbetriebsergebnis%> -<%kummgkbetriebsergebnis%><%kummpkbetriebsergebnis%> 
 
Zinsaufwand<%jetzt30%><%jetztgl30%><%jetztgk30%><%jetztpk30%><%kumm30%><%kummgl30%><%kummgk30%><%kummpk30%> 
Übrige Steuern<%jetzt19%><%jetztgl19%><%jetztgk19%><%jetztpk19%><%kumm19%><%kummg191%><%kummgk19%><%kummpk19%> 
Sonst. neutr. Aufwand<%jetzt31%><%jetztgl31%><%jetztgk31%><%jetztpk31%><%kumm31%><%kummgl31%><%kummgk31%><%kummpk31%> 
Neutraler Aufwand<%jetztneutraleraufwand%><%jetztglneutraleraufwand%><%jetztgkneutraleraufwand%><%jetztpkneutraleraufwand%><%kummneutraleraufwand%><%kummglneutraleraufwand%><%kummgkneutraleraufwand%><%kummpkneutraleraufwand%> 
 
Zinserträge<%jetzt32%><%jetztgl32%><%jetztgk32%><%jetztpk32%><%kumm32%><%kummgl32%><%kummgk32%><%kummpk32%> 
Sonst. neutr. Ertr.<%jetzt33%><%jetztgl33%><%jetztgk33%><%jetztpk33%><%kumm33%><%kummgl33%><%kummgk33%><%kummpk33%> 
Verr.kalk.Kosten<%jetzt34%><%jetztgl34%> - <%jetztgk34%><%jetztpk34%><%kumm34%><%kummgl34%><%kummgk34%><%kummpk34%> 
Neutraler Ertrag<%jetztneutralerertrag%><%jetztglneutralerertrag%><%jetztgkneutralerertrag%><%jetztpkneutralerertrag%><%kummneutralerertrag%><%kummglneutralerertrag%><%kummgkneutralerertrag%><%kummpkneutralerertrag%> 
 
Ergebnis vor Steuern<%jetztergebnisvorsteuern%><%jetztglergebnisvorsteuern%><%jetztgkergebnisvorsteuern%><%jetztpkergebnisvorsteuern%><%kummergebnisvorsteuern%><%kummglergebnisvorsteuern%><%kummgkergebnisvorsteuern%><%kummpkergebnisvorsteuern%> 
 
Steuern Eink.u.Ertr.<%jetzt35%><%jetztgl35%><%jetztgk35%><%jetztpk35%><%kumm35%><%kummgl35%><%kummgk35%><%kummpk35%> 
 
Vorläufiges Ergebnis<%jetztergebnis%><%jetztglergebnis%><%jetztgkergebnis%><%jetztpkergebnis%><%kummergebnis%><%kummglergebnis%><%kummgkergebnis%><%kummpkergebnis%> 
 
- diff --git a/templates/print/Standard/bwa.html b/templates/print/Standard/bwa.html deleted file mode 100644 index 91907d8fe..000000000 --- a/templates/print/Standard/bwa.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<%company%> -

Kurzfristige Erfolgsrechnung <%period%>

-

SKR3   BWA

-
Blatt 1
 Im BetrachtungszeitraumKumuliert seit Jahresanfang
BezeichnungWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlagWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlag
 
Umsatzerlöse<%jetzt1%><%jetztgl1%><%kumm1%><%kummgl1%> 
Best.Verdg. FE/UE<%jetzt2%><%jetztgl2%><%kumm2%><%kummgl2%> 
Akt.Eigenleistungen<%jetzt3%><%jetztgl3%><%kumm3%><%kummgl3%> 
 
Gesamtleistung<%jetztgesamtleistung%><%jetztglgesamtleistung%><%jetztgkgesamtleistung%><%jetztpkgesamtleistung%><%kummgesamtleistung%><%kummglgesamtleistung%><%kummgkgesamtleistung%><%kummpkgesamtleistung%> 
 
Mat./Wareneinkauf<%jetzt4%><%jetztgl4%><%jetztgk4%><%jetztpk4%><%jetztauf4%><%kumm4%><%kummgl4%><%kummgk4%><%kummpk4%><%kummauf4%> 
 
Rohertrag<%jetztrohertrag%><%jetztglrohertrag%><%jetztgkrohertrag%><%jetztpkrohertrag%><%jetztaufrohertrag%><%kummrohertrag%><%kummglrohertrag%><%kummgkrohertrag%><%kummpkrohertrag%><%kummaufrohertrag%> 
 
So.betr.Erlöse<%jetzt5%><%jetztgl5%><%jetztgk5%><%jetztpk5%><%kumm5%><%kummgl5%><%kummgk5%><%kummpk5%> 
 
Betriebl. Rohertrag<%jetztbetriebrohertrag%><%jetztglbetriebrohertrag%><%jetztgkbetriebrohertrag%><%jetztpkbetriebrohertrag%><%jetztaufbetriebrohertrag%><%kummbetriebrohertrag%><%kummglbetriebrohertrag%><%kummgkbetriebrohertrag%><%kummpkbetriebrohertrag%><%kummaufbetriebrohertrag%> 
 
Kostenarten: 
Personalkosten<%jetzt10%><%jetztgl10%><%jetztgk10%><%jetztpk10%><%kumm10%><%kummgl10%><%kummgk10%><%kummpk10%> 
Raumkosten<%jetzt11%><%jetztgl11%><%jetztgk11%><%jetztpk11%><%kumm11%><%kummgl11%><%kummgk11%><%kummpk11%> 
Betriebl.Steuern<%jetzt12%><%jetztgl12%><%jetztgk12%><%jetztpk12%><%kumm12%><%kummgl12%><%kummgk12%><%kummpk12%> 
Versich./Beiträge<%jetzt13%><%jetztgl13%><%jetztgk13%><%jetztpk13%><%kumm13%><%kummgl13%><%kummgk13%><%kummpk13%> 
Kfz-Kosten (o.St.)<%jetzt14%><%jetztgl14%><%jetztgk14%><%jetztpk14%><%kumm14%><%kummgl14%><%kummgk14%><%kummpk14%> 
Werbe-/Reisekosten<%jetzt15%><%jetztgl15%><%jetztgk15%><%jetztpk15%><%kumm15%><%kummgl15%><%kummgk15%><%kummpk15%> 
Kosten Warenabgabe<%jetzt16%><%jetztgl16%><%jetztgk16%><%jetztpk16%><%kumm16%><%kummgl16%> -<%kummgk16%><%kummpk16%> 
Abschreibungen<%jetzt17%><%jetztgl17%><%jetztgk17%><%jetztpk17%><%kumm17%><%kummgl17%><%kummgk17%><%kummpk17%> 
Reparatur/Instandh.<%jetzt18%><%jetztgl18%><%jetztgk18%><%jetztpk18%><%kumm18%><%kummgl18%><%kummgk18%><%kummpk18%> 
Sonstige Kosten<%jetzt20%><%jetztgl20%><%jetztgk20%><%jetztpk20%><%kumm20%><%kummgl20%><%kummgk20%><%kummpk20%> 
Gesamtkosten<%jetztgesamtkosten%><%jetztglgesamtkosten%><%jetztgkgesamtkosten%><%jetztpkgesamtkosten%><%kummgesamtkosten%><%kummglgesamtkosten%><%kummgkgesamtkosten%><%kummpkgesamtkosten%> 
 
Betriebsergebnis<%jetztbetriebsergebnis%><%jetztglbetriebsergebnis%> -<%jetztgkbetriebsergebnis%><%jetztpkbetriebsergebnis%><%kummbetriebsergebnis%><%kummglbetriebsergebnis%> -<%kummgkbetriebsergebnis%><%kummpkbetriebsergebnis%> 
 
Zinsaufwand<%jetzt30%><%jetztgl30%><%jetztgk30%><%jetztpk30%><%kumm30%><%kummgl30%><%kummgk30%><%kummpk30%> 
Übrige Steuern<%jetzt19%><%jetztgl19%><%jetztgk19%><%jetztpk19%><%kumm19%><%kummg191%><%kummgk19%><%kummpk19%> 
Sonst. neutr. Aufwand<%jetzt31%><%jetztgl31%><%jetztgk31%><%jetztpk31%><%kumm31%><%kummgl31%><%kummgk31%><%kummpk31%> 
Neutraler Aufwand<%jetztneutraleraufwand%><%jetztglneutraleraufwand%><%jetztgkneutraleraufwand%><%jetztpkneutraleraufwand%><%kummneutraleraufwand%><%kummglneutraleraufwand%><%kummgkneutraleraufwand%><%kummpkneutraleraufwand%> 
 
Zinserträge<%jetzt32%><%jetztgl32%><%jetztgk32%><%jetztpk32%><%kumm32%><%kummgl32%><%kummgk32%><%kummpk32%> 
Sonst. neutr. Ertr.<%jetzt33%><%jetztgl33%><%jetztgk33%><%jetztpk33%><%kumm33%><%kummgl33%><%kummgk33%><%kummpk33%> 
Verr.kalk.Kosten<%jetzt34%><%jetztgl34%> - <%jetztgk34%><%jetztpk34%><%kumm34%><%kummgl34%><%kummgk34%><%kummpk34%> 
Neutraler Ertrag<%jetztneutralerertrag%><%jetztglneutralerertrag%><%jetztgkneutralerertrag%><%jetztpkneutralerertrag%><%kummneutralerertrag%><%kummglneutralerertrag%><%kummgkneutralerertrag%><%kummpkneutralerertrag%> 
 
Ergebnis vor Steuern<%jetztergebnisvorsteuern%><%jetztglergebnisvorsteuern%><%jetztgkergebnisvorsteuern%><%jetztpkergebnisvorsteuern%><%kummergebnisvorsteuern%><%kummglergebnisvorsteuern%><%kummgkergebnisvorsteuern%><%kummpkergebnisvorsteuern%> 
 
Steuern Eink.u.Ertr.<%jetzt35%><%jetztgl35%><%jetztgk35%><%jetztpk35%><%kumm35%><%kummgl35%><%kummgk35%><%kummpk35%> 
 
Vorläufiges Ergebnis<%jetztergebnis%><%jetztglergebnis%><%jetztgkergebnis%><%jetztpkergebnis%><%kummergebnis%><%kummglergebnis%><%kummgkergebnis%><%kummpkergebnis%> 
 
- diff --git a/templates/print/f-tex/bwa.html b/templates/print/f-tex/bwa.html deleted file mode 100644 index 91907d8fe..000000000 --- a/templates/print/f-tex/bwa.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<%company%> -

Kurzfristige Erfolgsrechnung <%period%>

-

SKR3   BWA

-
Blatt 1
 Im BetrachtungszeitraumKumuliert seit Jahresanfang
BezeichnungWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlagWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlag
 
Umsatzerlöse<%jetzt1%><%jetztgl1%><%kumm1%><%kummgl1%> 
Best.Verdg. FE/UE<%jetzt2%><%jetztgl2%><%kumm2%><%kummgl2%> 
Akt.Eigenleistungen<%jetzt3%><%jetztgl3%><%kumm3%><%kummgl3%> 
 
Gesamtleistung<%jetztgesamtleistung%><%jetztglgesamtleistung%><%jetztgkgesamtleistung%><%jetztpkgesamtleistung%><%kummgesamtleistung%><%kummglgesamtleistung%><%kummgkgesamtleistung%><%kummpkgesamtleistung%> 
 
Mat./Wareneinkauf<%jetzt4%><%jetztgl4%><%jetztgk4%><%jetztpk4%><%jetztauf4%><%kumm4%><%kummgl4%><%kummgk4%><%kummpk4%><%kummauf4%> 
 
Rohertrag<%jetztrohertrag%><%jetztglrohertrag%><%jetztgkrohertrag%><%jetztpkrohertrag%><%jetztaufrohertrag%><%kummrohertrag%><%kummglrohertrag%><%kummgkrohertrag%><%kummpkrohertrag%><%kummaufrohertrag%> 
 
So.betr.Erlöse<%jetzt5%><%jetztgl5%><%jetztgk5%><%jetztpk5%><%kumm5%><%kummgl5%><%kummgk5%><%kummpk5%> 
 
Betriebl. Rohertrag<%jetztbetriebrohertrag%><%jetztglbetriebrohertrag%><%jetztgkbetriebrohertrag%><%jetztpkbetriebrohertrag%><%jetztaufbetriebrohertrag%><%kummbetriebrohertrag%><%kummglbetriebrohertrag%><%kummgkbetriebrohertrag%><%kummpkbetriebrohertrag%><%kummaufbetriebrohertrag%> 
 
Kostenarten: 
Personalkosten<%jetzt10%><%jetztgl10%><%jetztgk10%><%jetztpk10%><%kumm10%><%kummgl10%><%kummgk10%><%kummpk10%> 
Raumkosten<%jetzt11%><%jetztgl11%><%jetztgk11%><%jetztpk11%><%kumm11%><%kummgl11%><%kummgk11%><%kummpk11%> 
Betriebl.Steuern<%jetzt12%><%jetztgl12%><%jetztgk12%><%jetztpk12%><%kumm12%><%kummgl12%><%kummgk12%><%kummpk12%> 
Versich./Beiträge<%jetzt13%><%jetztgl13%><%jetztgk13%><%jetztpk13%><%kumm13%><%kummgl13%><%kummgk13%><%kummpk13%> 
Kfz-Kosten (o.St.)<%jetzt14%><%jetztgl14%><%jetztgk14%><%jetztpk14%><%kumm14%><%kummgl14%><%kummgk14%><%kummpk14%> 
Werbe-/Reisekosten<%jetzt15%><%jetztgl15%><%jetztgk15%><%jetztpk15%><%kumm15%><%kummgl15%><%kummgk15%><%kummpk15%> 
Kosten Warenabgabe<%jetzt16%><%jetztgl16%><%jetztgk16%><%jetztpk16%><%kumm16%><%kummgl16%> -<%kummgk16%><%kummpk16%> 
Abschreibungen<%jetzt17%><%jetztgl17%><%jetztgk17%><%jetztpk17%><%kumm17%><%kummgl17%><%kummgk17%><%kummpk17%> 
Reparatur/Instandh.<%jetzt18%><%jetztgl18%><%jetztgk18%><%jetztpk18%><%kumm18%><%kummgl18%><%kummgk18%><%kummpk18%> 
Sonstige Kosten<%jetzt20%><%jetztgl20%><%jetztgk20%><%jetztpk20%><%kumm20%><%kummgl20%><%kummgk20%><%kummpk20%> 
Gesamtkosten<%jetztgesamtkosten%><%jetztglgesamtkosten%><%jetztgkgesamtkosten%><%jetztpkgesamtkosten%><%kummgesamtkosten%><%kummglgesamtkosten%><%kummgkgesamtkosten%><%kummpkgesamtkosten%> 
 
Betriebsergebnis<%jetztbetriebsergebnis%><%jetztglbetriebsergebnis%> -<%jetztgkbetriebsergebnis%><%jetztpkbetriebsergebnis%><%kummbetriebsergebnis%><%kummglbetriebsergebnis%> -<%kummgkbetriebsergebnis%><%kummpkbetriebsergebnis%> 
 
Zinsaufwand<%jetzt30%><%jetztgl30%><%jetztgk30%><%jetztpk30%><%kumm30%><%kummgl30%><%kummgk30%><%kummpk30%> 
Übrige Steuern<%jetzt19%><%jetztgl19%><%jetztgk19%><%jetztpk19%><%kumm19%><%kummg191%><%kummgk19%><%kummpk19%> 
Sonst. neutr. Aufwand<%jetzt31%><%jetztgl31%><%jetztgk31%><%jetztpk31%><%kumm31%><%kummgl31%><%kummgk31%><%kummpk31%> 
Neutraler Aufwand<%jetztneutraleraufwand%><%jetztglneutraleraufwand%><%jetztgkneutraleraufwand%><%jetztpkneutraleraufwand%><%kummneutraleraufwand%><%kummglneutraleraufwand%><%kummgkneutraleraufwand%><%kummpkneutraleraufwand%> 
 
Zinserträge<%jetzt32%><%jetztgl32%><%jetztgk32%><%jetztpk32%><%kumm32%><%kummgl32%><%kummgk32%><%kummpk32%> 
Sonst. neutr. Ertr.<%jetzt33%><%jetztgl33%><%jetztgk33%><%jetztpk33%><%kumm33%><%kummgl33%><%kummgk33%><%kummpk33%> 
Verr.kalk.Kosten<%jetzt34%><%jetztgl34%> - <%jetztgk34%><%jetztpk34%><%kumm34%><%kummgl34%><%kummgk34%><%kummpk34%> 
Neutraler Ertrag<%jetztneutralerertrag%><%jetztglneutralerertrag%><%jetztgkneutralerertrag%><%jetztpkneutralerertrag%><%kummneutralerertrag%><%kummglneutralerertrag%><%kummgkneutralerertrag%><%kummpkneutralerertrag%> 
 
Ergebnis vor Steuern<%jetztergebnisvorsteuern%><%jetztglergebnisvorsteuern%><%jetztgkergebnisvorsteuern%><%jetztpkergebnisvorsteuern%><%kummergebnisvorsteuern%><%kummglergebnisvorsteuern%><%kummgkergebnisvorsteuern%><%kummpkergebnisvorsteuern%> 
 
Steuern Eink.u.Ertr.<%jetzt35%><%jetztgl35%><%jetztgk35%><%jetztpk35%><%kumm35%><%kummgl35%><%kummgk35%><%kummpk35%> 
 
Vorläufiges Ergebnis<%jetztergebnis%><%jetztglergebnis%><%jetztgkergebnis%><%jetztpkergebnis%><%kummergebnis%><%kummglergebnis%><%kummgkergebnis%><%kummpkergebnis%> 
 
- diff --git a/templates/webpages/admin/edit_user.html b/templates/webpages/admin/edit_user.html index 94db96b12..5ecd92673 100644 --- a/templates/webpages/admin/edit_user.html +++ b/templates/webpages/admin/edit_user.html @@ -158,7 +158,7 @@ function save_as_new() { $("#user_id").val(""); - submit_with_action("save_user"); + submit_with_action("save_newuser"); } --> diff --git a/templates/webpages/rp/bwa.html b/templates/webpages/rp/bwa.html new file mode 100644 index 000000000..1bd15f987 --- /dev/null +++ b/templates/webpages/rp/bwa.html @@ -0,0 +1,518 @@ +[%- USE T8 %] +[%- USE HTML %] +[%- USE LxERP %] + + +[% L.stylesheet_tag('css/kivitendo/bwa') %] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[% company %] +

[% title | $T8 %] [% period %]

+

[% accounting_method %] - [% report_date %]

+
Blatt 1
 Im BetrachtungszeitraumKumuliert seit Jahresanfang
BezeichnungWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlagWert% Ges.- Leistg.% Ges.- Kosten% Pers.- KostenAufschlag
 
Umsatzerlöse[% jetzt1 %][% jetztgl1 %][% kumm1 %][% kummgl1 %] 
Best.Verdg. FE/UE[% jetzt2 %][% jetztgl2 %][% kumm2 %][% kummgl2 %] 
Akt.Eigenleistungen[% jetzt3 %][% jetztgl3 %][% kumm3 %][% kummgl3 %] 
 
Gesamtleistung[% jetztgesamtleistung %][% jetztglgesamtleistung %][% jetztgkgesamtleistung %][% jetztpkgesamtleistung %][% kummgesamtleistung %][% kummglgesamtleistung %][% kummgkgesamtleistung %][% kummpkgesamtleistung %] 
 
Mat./Wareneinkauf[% jetzt4 %][% jetztgl4 %][% jetztgk4 %][% jetztpk4 %][% jetztauf4 %][% kumm4 %][% kummgl4 %][% kummgk4 %][% kummpk4 %][% kummauf4 %] 
 
Rohertrag[% jetztrohertrag %][% jetztglrohertrag %][% jetztgkrohertrag %][% jetztpkrohertrag %][% jetztaufrohertrag %][% kummrohertrag %][% kummglrohertrag %][% kummgkrohertrag %][% kummpkrohertrag %][% kummaufrohertrag %] 
 
So.betr.Erlöse[% jetzt5 %][% jetztgl5 %][% jetztgk5 %][% jetztpk5 %][% kumm5 %][% kummgl5 %][% kummgk5 %][% kummpk5 %] 
 
Betriebl. Rohertrag[% jetztbetriebrohertrag %][% jetztglbetriebrohertrag %][% jetztgkbetriebrohertrag %][% jetztpkbetriebrohertrag %][% jetztaufbetriebrohertrag %][% kummbetriebrohertrag %][% kummglbetriebrohertrag %][% kummgkbetriebrohertrag %][% kummpkbetriebrohertrag %][% kummaufbetriebrohertrag %] 
 
Kostenarten: 
Personalkosten[% jetzt10 %][% jetztgl10 %][% jetztgk10 %][% jetztpk10 %][% kumm10 %][% kummgl10 %][% kummgk10 %][% kummpk10 %] 
Raumkosten[% jetzt11 %][% jetztgl11 %][% jetztgk11 %][% jetztpk11 %][% kumm11 %][% kummgl11 %][% kummgk11 %][% kummpk11 %] 
Betriebl.Steuern[% jetzt12 %][% jetztgl12 %][% jetztgk12 %][% jetztpk12 %][% kumm12 %][% kummgl12 %][% kummgk12 %][% kummpk12 %] 
Versich./Beiträge[% jetzt13 %][% jetztgl13 %][% jetztgk13 %][% jetztpk13 %][% kumm13 %][% kummgl13 %][% kummgk13 %][% kummpk13 %] 
Kfz-Kosten (o.St.)[% jetzt14 %][% jetztgl14 %][% jetztgk14 %][% jetztpk14 %][% kumm14 %][% kummgl14 %][% kummgk14 %][% kummpk14 %] 
Werbe-/Reisekosten[% jetzt15 %][% jetztgl15 %][% jetztgk15 %][% jetztpk15 %][% kumm15 %][% kummgl15 %][% kummgk15 %][% kummpk15 %] 
Kosten Warenabgabe[% jetzt16 %][% jetztgl16 %][% jetztgk16 %][% jetztpk16 %][% kumm16 %][% kummgl16 %] +[% kummgk16 %][% kummpk16 %] 
Abschreibungen[% jetzt17 %][% jetztgl17 %][% jetztgk17 %][% jetztpk17 %][% kumm17 %][% kummgl17 %][% kummgk17 %][% kummpk17 %] 
Reparatur/Instandh.[% jetzt18 %][% jetztgl18 %][% jetztgk18 %][% jetztpk18 %][% kumm18 %][% kummgl18 %][% kummgk18 %][% kummpk18 %] 
Sonstige Kosten[% jetzt20 %][% jetztgl20 %][% jetztgk20 %][% jetztpk20 %][% kumm20 %][% kummgl20 %][% kummgk20 %][% kummpk20 %] 
Gesamtkosten[% jetztgesamtkosten %][% jetztglgesamtkosten %][% jetztgkgesamtkosten %][% jetztpkgesamtkosten %][% kummgesamtkosten %][% kummglgesamtkosten %][% kummgkgesamtkosten %][% kummpkgesamtkosten %] 
 
Betriebsergebnis[% jetztbetriebsergebnis %][% jetztglbetriebsergebnis %] +[% jetztgkbetriebsergebnis %][% jetztpkbetriebsergebnis %][% kummbetriebsergebnis %][% kummglbetriebsergebnis %] +[% kummgkbetriebsergebnis %][% kummpkbetriebsergebnis %] 
 
Zinsaufwand[% jetzt30 %][% jetztgl30 %][% jetztgk30 %][% jetztpk30 %][% kumm30 %][% kummgl30 %][% kummgk30 %][% kummpk30 %] 
Übrige Steuern[% jetzt19 %][% jetztgl19 %][% jetztgk19 %][% jetztpk19 %][% kumm19 %][% kummg191 %][% kummgk19 %][% kummpk19 %] 
Sonst. neutr. Aufwand[% jetzt31 %][% jetztgl31 %][% jetztgk31 %][% jetztpk31 %][% kumm31 %][% kummgl31 %][% kummgk31 %][% kummpk31 %] 
Neutraler Aufwand[% jetztneutraleraufwand %][% jetztglneutraleraufwand %][% jetztgkneutraleraufwand %][% jetztpkneutraleraufwand %][% kummneutraleraufwand %][% kummglneutraleraufwand %][% kummgkneutraleraufwand %][% kummpkneutraleraufwand %] 
 
Zinserträge[% jetzt32 %][% jetztgl32 %][% jetztgk32 %][% jetztpk32 %][% kumm32 %][% kummgl32 %][% kummgk32 %][% kummpk32 %] 
Sonst. neutr. Ertr.[% jetzt33 %][% jetztgl33 %][% jetztgk33 %][% jetztpk33 %][% kumm33 %][% kummgl33 %][% kummgk33 %][% kummpk33 %] 
Verr.kalk.Kosten[% jetzt34 %][% jetztgl34 %] + [% jetztgk34 %][% jetztpk34 %][% kumm34 %][% kummgl34 %][% kummgk34 %][% kummpk34 %] 
Neutraler Ertrag[% jetztneutralerertrag %][% jetztglneutralerertrag %][% jetztgkneutralerertrag %][% jetztpkneutralerertrag %][% kummneutralerertrag %][% kummglneutralerertrag %][% kummgkneutralerertrag %][% kummpkneutralerertrag %] 
 
Ergebnis vor Steuern[% jetztergebnisvorsteuern %][% jetztglergebnisvorsteuern %][% jetztgkergebnisvorsteuern %][% jetztpkergebnisvorsteuern %][% kummergebnisvorsteuern %][% kummglergebnisvorsteuern %][% kummgkergebnisvorsteuern %][% kummpkergebnisvorsteuern %] 
 
Steuern Eink.u.Ertr.[% jetzt35 %][% jetztgl35 %][% jetztgk35 %][% jetztpk35 %][% kumm35 %][% kummgl35 %][% kummgk35 %][% kummpk35 %] 
 
Vorläufiges Ergebnis[% jetztergebnis %][% jetztglergebnis %][% jetztgkergebnis %][% jetztpkergebnis %][% kummergebnis %][% kummglergebnis %][% kummgkergebnis %][% kummpkergebnis %] 
 
diff --git a/templates/webpages/rp/income_statement.html b/templates/webpages/rp/income_statement.html index e5f00baf2..af0f19b95 100644 --- a/templates/webpages/rp/income_statement.html +++ b/templates/webpages/rp/income_statement.html @@ -18,58 +18,58 @@ - Umsatzerlöse + Umsatzerlöse - [% eur1 %] + [% eur1 %] - sonstige Erlöse + sonstige Erlöse - [% eur2 %] + [% eur2 %] - Privatanteile + Privatanteile - [% eur3 %] + [% eur3 %] - Zinserträge + Zinserträge - [% eur4 %] + [% eur4 %] - Außerordentliche Erträge + Außerordentliche Erträge - [% eur5 %] + [% eur5 %] - Vereinnahmte Umsatzsteuer + Vereinnahmte Umsatzsteuer - [% eur6 %] + [% eur6 %] - Umsatzsteuererstattungen + Umsatzsteuererstattungen - [% eur7 %] + [% eur7 %] @@ -94,178 +94,178 @@ - Wareneingänge + Wareneingänge - [% eur8 %] + [% eur8 %] - Löhne und Gehäter + Löhne und Gehäter - [% eur9 %] + [% eur9 %] - Gesetzlicher sozialer Aufwand + Gesetzlicher sozialer Aufwand - [% eur10 %] + [% eur10 %] - Mieten + Mieten - [% eur11 %] + [% eur11 %] - Gas, Strom, Wasser + Gas, Strom, Wasser - [% eur12 %] + [% eur12 %] - Instandhaltung + Instandhaltung - [% eur13 %] + [% eur13 %] - Steuern, Versicherungen, Beiträge + Steuern, Versicherungen, Beiträge - [% eur14 %] + [% eur14 %] - Kfz-Steuern + Kfz-Steuern - [% eur15 %] + [% eur15 %] - Kfz-Versicherungen + Kfz-Versicherungen - [% eur16 %] + [% eur16 %] - Sonstige Fahrzeugkosten + Sonstige Fahrzeugkosten - [% eur17 %] + [% eur17 %] - Werbe- und Reisekosten + Werbe- und Reisekosten - [% eur18 %] + [% eur18 %] - Instandhaltung und Werkzeuge + Instandhaltung und Werkzeuge - [% eur19 %] + [% eur19 %] - Fachzeitschriften, Bücher + Fachzeitschriften, Bücher - [% eur20 %] + [% eur20 %] - Miete für Einrichtungen + Miete für Einrichtungen - [% eur21 %] + [% eur21 %] - Rechts- und Beratungskosten + Rechts- und Beratungskosten - [% eur22 %] + [% eur22 %] - Bürobedarf, Porto, Telefon + Bürobedarf, Porto, Telefon - [% eur23 %] + [% eur23 %] - Sonstige Aufwendungen + Sonstige Aufwendungen - [% eur24 %] + [% eur24 %] - Abschreibungen auf Anlagevermögen + Abschreibungen auf Anlagevermögen - [% eur25 %] + [% eur25 %] - Abschreibungen auf GWG + Abschreibungen auf GWG - [% eur26 %] + [% eur26 %] - Vorsteuer + Vorsteuer - [% eur27 %] + [% eur27 %] - Umsatzsteuerzahlungen + Umsatzsteuerzahlungen - [% eur28 %] + [% eur28 %] - Zinsaufwand + Zinsaufwand - [% eur29 %] + [% eur29 %] - Außerordentlicher Aufwand + Außerordentlicher Aufwand - [% eur30 %] + [% eur30 %] - Betriebliche Steuern + Betriebliche Steuern - [% eur31 %] + [% eur31 %]