From: Jan Büren
Date: Thu, 9 Jan 2014 11:47:36 +0000 (+0100)
Subject: Merge branch 'master' of github.com:kivitendo/kivitendo-erp
X-Git-Tag: release-3.1.0beta1~22^2~22
X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/9bf9acdff05a8047d0561c68cdd93b0a03deb568?hp=49be66cdf74882abde5a93832a959e27baddd925
Merge branch 'master' of github.com:kivitendo/kivitendo-erp
---
diff --git a/SL/AR.pm b/SL/AR.pm
index c52a00fd5..3da550d68 100644
--- a/SL/AR.pm
+++ b/SL/AR.pm
@@ -40,6 +40,7 @@ use SL::DBUtils;
use SL::IO;
use SL::MoreCommon;
use SL::DB::Default;
+use SL::TransNumber;
use strict;
@@ -136,7 +137,10 @@ sub post_transaction {
($form->{id}) = selectrow_query($form, $dbh, $query);
$query = qq|INSERT INTO ar (id, invnumber, employee_id, currency_id) VALUES (?, 'dummy', ?, (SELECT id FROM currencies WHERE name=?))|;
do_query($form, $dbh, $query, $form->{id}, $form->{employee_id}, $form->{currency});
- $form->{invnumber} = $form->update_defaults($myconfig, "invnumber", $dbh) unless $form->{invnumber};
+ if (!$form->{invnumber}) {
+ my $trans_number = SL::TransNumber->new(type => 'invoice', dbh => $dbh, number => $form->{partnumber}, id => $form->{id});
+ $form->{invnumber} = $trans_number->create_unique;
+ }
}
}
@@ -800,4 +804,3 @@ sub storno {
1;
-
diff --git a/SL/CA.pm b/SL/CA.pm
index cee831609..983f9bd04 100644
--- a/SL/CA.pm
+++ b/SL/CA.pm
@@ -366,8 +366,8 @@ sub all_transactions {
}
my $sort = grep({ $form->{sort} eq $_ } qw(transdate reference description)) ? $form->{sort} : 'transdate';
-
- $query .= qq|ORDER BY $sort|;
+ my $sort2 = ($sort eq 'reference')?'transdate':'reference';
+ $query .= qq|ORDER BY $sort , $sort2 |;
my $sth = prepare_execute_query($form, $dbh, $query, @values);
#get detail information for each transaction
diff --git a/SL/CP.pm b/SL/CP.pm
index 29ac35ab0..e2b9f48cb 100644
--- a/SL/CP.pm
+++ b/SL/CP.pm
@@ -148,15 +148,22 @@ sub get_openinvoices {
my $buysell = $form->{vc} eq 'customer' ? "buy" : "sell";
my $arap = $form->{arap} eq "ar" ? "ar" : "ap";
+ my @values = (conv_i($form->{"${vc}_id"}), "$form->{currency}");
+ my $whereinvoice = '';
+ if ($::form->{invnumber}) {
+ $whereinvoice = ' AND a.invnumber LIKE ? ';
+ push @values, $::form->{invnumber};
+ }
+
my $query =
qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, cu.name AS curr | .
qq|FROM $arap a | .
qq|LEFT JOIN currencies cu ON (cu.id=a.currency_id)| .
qq|WHERE (a.${vc}_id = ?) AND cu.name = ? AND NOT (a.amount = a.paid)| .
+ $whereinvoice .
qq|ORDER BY a.id|;
- my $sth = prepare_execute_query($form, $dbh, $query,
- conv_i($form->{"${vc}_id"}),
- "$form->{currency}");
+
+ my $sth = prepare_execute_query($form, $dbh, $query, @values);
$form->{PR} = [];
while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
diff --git a/SL/CT.pm b/SL/CT.pm
index b7ae9a504..fa1f91477 100644
--- a/SL/CT.pm
+++ b/SL/CT.pm
@@ -308,7 +308,8 @@ sub get_bank_info {
my $table = $params{vc} eq 'customer' ? 'customer' : 'vendor';
my @ids = ref $params{id} eq 'ARRAY' ? @{ $params{id} } : ($params{id});
my $placeholders = join ", ", ('?') x scalar @ids;
- my $query = qq|SELECT id, name, account_number, bank, bank_code, iban, bic
+ my $c_mandate = $params{vc} eq 'customer' ? ', mandator_id, mandate_date_of_signature' : '';
+ my $query = qq|SELECT id, name, account_number, bank, bank_code, iban, bic ${c_mandate}
FROM ${table}
WHERE id IN (${placeholders})|;
diff --git a/SL/Controller/CustomerVendor.pm b/SL/Controller/CustomerVendor.pm
index e5cb556ac..dcb8b2d6c 100644
--- a/SL/Controller/CustomerVendor.pm
+++ b/SL/Controller/CustomerVendor.pm
@@ -6,6 +6,7 @@ use parent qw(SL::Controller::Base);
use SL::JSON;
use SL::DBUtils;
use SL::Helper::Flash;
+use SL::Locale::String;
use SL::DB::Customer;
use SL::DB::Vendor;
@@ -28,7 +29,6 @@ __PACKAGE__->run_before(
$::auth->assert('customer_vendor_edit');
}
);
-
__PACKAGE__->run_before(
'_instantiate_args',
only => [
@@ -62,6 +62,9 @@ __PACKAGE__->run_before(
]
);
+__PACKAGE__->run_before('normalize_name');
+
+
sub action_add {
my ($self) = @_;
@@ -167,34 +170,34 @@ sub _save {
sub action_save {
my ($self) = @_;
- my $pattern = '[ \t\n\r]+';
- my $name = $self->{cv}->name;
- $name =~ s/^$pattern//;
- $name =~ s/$pattern$//;
- $name =~ s/$pattern/ /g;
- if ( $name eq '' ) {
- $::form->dberror( $::locale->text('Customer missing!') );
+ if (!$self->{cv}->name) {
+ flash('error', t8('Customer missing!'));
+ $self->_pre_render();
+ $self->render(
+ 'customer_vendor/form',
+ title => ($self->is_vendor() ? t8('Edit Vendor') : t8('Edit Customer')),
+ %{$self->{template_args}}
+ );
} else {
- $self->{cv}->name($name);
- }
- $self->_save();
+ $self->_save();
- my @redirect_params = (
- action => 'edit',
- id => $self->{cv}->id,
- db => ($self->is_vendor() ? 'vendor' : 'customer'),
- );
+ my @redirect_params = (
+ action => 'edit',
+ id => $self->{cv}->id,
+ db => ($self->is_vendor() ? 'vendor' : 'customer'),
+ );
- if ( $self->{contact}->cp_id ) {
- push(@redirect_params, contact_id => $self->{contact}->cp_id);
- }
+ if ( $self->{contact}->cp_id ) {
+ push(@redirect_params, contact_id => $self->{contact}->cp_id);
+ }
- if ( $self->{shipto}->shipto_id ) {
- push(@redirect_params, shipto_id => $self->{shipto}->shipto_id);
- }
+ if ( $self->{shipto}->shipto_id ) {
+ push(@redirect_params, shipto_id => $self->{shipto}->shipto_id);
+ }
- $self->redirect_to(@redirect_params);
+ $self->redirect_to(@redirect_params);
+ }
}
sub action_save_and_close {
@@ -859,4 +862,15 @@ sub _pre_render {
$::request->{layout}->add_javascripts('kivi.CustomerVendor.js');
}
+sub normalize_name {
+ my ($self) = @_;
+
+ return unless $self->{cv};
+ my $name = $self->{cv}->name;
+ $name =~ s/\s+$//;
+ $name =~ s/^\s+//;
+ $name =~ s/\s+/ /g;
+ $self->{cv}->name($name);
+}
+
1;
diff --git a/SL/Controller/DeliveryPlan.pm b/SL/Controller/DeliveryPlan.pm
index ebf6fa6b2..fc402fcc6 100644
--- a/SL/Controller/DeliveryPlan.pm
+++ b/SL/Controller/DeliveryPlan.pm
@@ -179,24 +179,45 @@ sub delivery_plan_query {
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
+ -- 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
- 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
+ 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
-
- oe.id = oi.trans_id AND
-
+ coalesce(sum, 0) < oi.qty AND
oe.customer_id IS NOT NULL AND
- (oe.quotation = 'f' OR oe.quotation IS NULL) AND
$oe_owner
- NOT oe.closed
+ (oe.quotation = 'f' OR oe.quotation IS NULL) AND NOT oe.closed
" ],
]
}
diff --git a/SL/Controller/Project.pm b/SL/Controller/Project.pm
index 23e5228ad..e47b06e87 100644
--- a/SL/Controller/Project.pm
+++ b/SL/Controller/Project.pm
@@ -126,6 +126,13 @@ sub display_form {
$params{ALL_CUSTOMERS} = SL::DB::Manager::Customer->get_all_sorted(where => [ or => [ obsolete => 0, obsolete => undef, id => $self->project->customer_id ]]);
$params{ALL_PROJECT_TYPES} = SL::DB::Manager::ProjectType->get_all_sorted;
$params{CUSTOM_VARIABLES} = CVar->get_custom_variables(module => 'Projects', trans_id => $self->project->id);
+
+ if ($params{keep_cvars}) {
+ for my $cvar (@{ $params{CUSTOM_VARIABLES} }) {
+ $cvar->{value} = $::form->{"cvar_$cvar->{name}"} if $::form->{"cvar_$cvar->{name}"};
+ }
+ }
+
CVar->render_inputs(variables => $params{CUSTOM_VARIABLES}) if @{ $params{CUSTOM_VARIABLES} };
$self->render('project/form', %params);
@@ -144,7 +151,8 @@ sub create_or_update {
if (@errors) {
flash('error', @errors);
$self->display_form(title => $is_new ? $::locale->text('Create a new project') : $::locale->text('Edit project'),
- callback => $::form->{callback});
+ callback => $::form->{callback},
+ keep_cvars => 1);
return;
}
diff --git a/SL/DB/Helper/TransNumberGenerator.pm b/SL/DB/Helper/TransNumberGenerator.pm
index cc5fc327c..b4e4e49f4 100644
--- a/SL/DB/Helper/TransNumberGenerator.pm
+++ b/SL/DB/Helper/TransNumberGenerator.pm
@@ -22,18 +22,18 @@ sub parts_scoping {
SL::DB::Manager::Part->type_filter($_[0]);
}
-my %specs = ( ar => { number_column => 'invnumber', fill_holes_in_range => 1 },
- sales_quotation => { number_column => 'quonumber', number_range_column => 'sqnumber', scoping => \&oe_scoping, },
- sales_order => { number_column => 'ordnumber', number_range_column => 'sonumber', scoping => \&oe_scoping, },
- request_quotation => { number_column => 'quonumber', number_range_column => 'rfqnumber', scoping => \&oe_scoping, },
- purchase_order => { number_column => 'ordnumber', number_range_column => 'ponumber', scoping => \&oe_scoping, },
- sales_delivery_order => { number_column => 'donumber', number_range_column => 'sdonumber', scoping => \&do_scoping, fill_holes_in_range => 1 },
- purchase_delivery_order => { number_column => 'donumber', number_range_column => 'pdonumber', scoping => \&do_scoping, fill_holes_in_range => 1 },
- customer => { number_column => 'customernumber', number_range_column => 'customernumber', },
- vendor => { number_column => 'vendornumber', number_range_column => 'vendornumber', },
- part => { number_column => 'partnumber', number_range_column => 'articlenumber', scoping => \&parts_scoping },
- service => { number_column => 'partnumber', number_range_column => 'servicenumber', scoping => \&parts_scoping },
- assembly => { number_column => 'partnumber', number_range_column => 'assemblynumber', scoping => \&parts_scoping },
+my %specs = ( ar => { number_column => 'invnumber', },
+ sales_quotation => { number_column => 'quonumber', number_range_column => 'sqnumber', scoping => \&oe_scoping, },
+ sales_order => { number_column => 'ordnumber', number_range_column => 'sonumber', scoping => \&oe_scoping, },
+ request_quotation => { number_column => 'quonumber', number_range_column => 'rfqnumber', scoping => \&oe_scoping, },
+ purchase_order => { number_column => 'ordnumber', number_range_column => 'ponumber', scoping => \&oe_scoping, },
+ sales_delivery_order => { number_column => 'donumber', number_range_column => 'sdonumber', scoping => \&do_scoping, },
+ purchase_delivery_order => { number_column => 'donumber', number_range_column => 'pdonumber', scoping => \&do_scoping, },
+ customer => { number_column => 'customernumber', number_range_column => 'customernumber', },
+ vendor => { number_column => 'vendornumber', number_range_column => 'vendornumber', },
+ part => { number_column => 'partnumber', number_range_column => 'articlenumber', scoping => \&parts_scoping, },
+ service => { number_column => 'partnumber', number_range_column => 'servicenumber', scoping => \&parts_scoping, },
+ assembly => { number_column => 'partnumber', number_range_column => 'assemblynumber', scoping => \&parts_scoping, },
);
sub get_next_trans_number {
@@ -46,7 +46,7 @@ sub get_next_trans_number {
my $number = $self->$number_column;
my $number_range_column = $spec->{number_range_column} || $number_column;
my $scoping_conditions = $spec->{scoping};
- my $fill_holes_in_range = $spec->{fill_holes_in_range};
+ my $fill_holes_in_range = !$spec->{keep_holes_in_range};
return $number if $self->id && $number;
@@ -139,8 +139,7 @@ prefix, if present, will be kept intact.
Now the number itself is increased as often as neccessary to create a
unique one by comparing the generated numbers with the existing ones
retrieved in the first step. In this step gaps in the assigned numbers
-are filled for some tables (e.g. invoices) but not for others
-(e.g. sales orders).
+are filled for all currently supported tables.
After creating the unique record number this function can update
C<$self> and the C table if requested. This is controlled
diff --git a/SL/DB/MetaSetup/Customer.pm b/SL/DB/MetaSetup/Customer.pm
index 2d5a155b9..0f523a466 100644
--- a/SL/DB/MetaSetup/Customer.pm
+++ b/SL/DB/MetaSetup/Customer.pm
@@ -9,52 +9,55 @@ use base qw(SL::DB::Object);
__PACKAGE__->meta->table('customer');
__PACKAGE__->meta->columns(
- account_number => { type => 'text' },
- bank => { type => 'text' },
- bank_code => { type => 'text' },
- bcc => { type => 'text' },
- bic => { type => 'varchar', length => 100 },
- business_id => { type => 'integer' },
- c_vendor_id => { type => 'text' },
- cc => { type => 'text' },
- city => { type => 'varchar', length => 75 },
- contact => { type => 'text' },
- country => { type => 'varchar', length => 75 },
- creditlimit => { type => 'numeric', default => '0', precision => 5, scale => 15 },
- currency_id => { type => 'integer', not_null => 1 },
- customernumber => { type => 'text' },
- delivery_term_id => { type => 'integer' },
- department_1 => { type => 'varchar', length => 75 },
- department_2 => { type => 'varchar', length => 75 },
- direct_debit => { type => 'boolean', default => 'false' },
- discount => { type => 'float', precision => 4 },
- email => { type => 'text' },
- fax => { type => 'varchar', length => 30 },
- greeting => { type => 'text' },
- homepage => { type => 'text' },
- iban => { type => 'varchar', length => 100 },
- id => { type => 'integer', not_null => 1, sequence => 'id' },
- itime => { type => 'timestamp', default => 'now()' },
- klass => { type => 'integer', default => '0' },
- language => { type => 'varchar', length => 5 },
- language_id => { type => 'integer' },
- mtime => { type => 'timestamp' },
- name => { type => 'text', not_null => 1 },
- notes => { type => 'text' },
- obsolete => { type => 'boolean', default => 'false' },
- payment_id => { type => 'integer' },
- phone => { type => 'text' },
- salesman_id => { type => 'integer' },
- street => { type => 'varchar', length => 75 },
- taxincluded => { type => 'boolean' },
- taxincluded_checked => { type => 'boolean' },
- taxnumber => { type => 'text' },
- taxzone_id => { type => 'integer', default => '0', not_null => 1 },
- terms => { type => 'integer', default => '0' },
- user_password => { type => 'text' },
- username => { type => 'varchar', length => 50 },
- ustid => { type => 'text' },
- zipcode => { type => 'varchar', length => 10 },
+ account_number => { type => 'text' },
+ bank => { type => 'text' },
+ bank_code => { type => 'text' },
+ bcc => { type => 'text' },
+ bic => { type => 'varchar', length => 100 },
+ business_id => { type => 'integer' },
+ c_vendor_id => { type => 'text' },
+ cc => { type => 'text' },
+ city => { type => 'varchar', length => 75 },
+ contact => { type => 'text' },
+ country => { type => 'varchar', length => 75 },
+ creditlimit => { type => 'numeric', default => '0', precision => 5, scale => 15 },
+ currency_id => { type => 'integer', not_null => 1 },
+ customernumber => { type => 'text' },
+ delivery_term_id => { type => 'integer' },
+ department_1 => { type => 'varchar', length => 75 },
+ department_2 => { type => 'varchar', length => 75 },
+ depositor => { type => 'text' },
+ direct_debit => { type => 'boolean', default => 'false' },
+ discount => { type => 'float', precision => 4 },
+ email => { type => 'text' },
+ fax => { type => 'varchar', length => 30 },
+ greeting => { type => 'text' },
+ homepage => { type => 'text' },
+ iban => { type => 'varchar', length => 100 },
+ id => { type => 'integer', not_null => 1, sequence => 'id' },
+ itime => { type => 'timestamp', default => 'now()' },
+ klass => { type => 'integer', default => '0' },
+ language => { type => 'varchar', length => 5 },
+ language_id => { type => 'integer' },
+ mandate_date_of_signature => { type => 'date' },
+ mandator_id => { type => 'text' },
+ mtime => { type => 'timestamp' },
+ name => { type => 'text', not_null => 1 },
+ notes => { type => 'text' },
+ obsolete => { type => 'boolean', default => 'false' },
+ payment_id => { type => 'integer' },
+ phone => { type => 'text' },
+ salesman_id => { type => 'integer' },
+ street => { type => 'varchar', length => 75 },
+ taxincluded => { type => 'boolean' },
+ taxincluded_checked => { type => 'boolean' },
+ taxnumber => { type => 'text' },
+ taxzone_id => { type => 'integer', default => '0', not_null => 1 },
+ terms => { type => 'integer', default => '0' },
+ user_password => { type => 'text' },
+ username => { type => 'varchar', length => 50 },
+ ustid => { type => 'text' },
+ zipcode => { type => 'varchar', length => 10 },
);
__PACKAGE__->meta->primary_key_columns([ 'id' ]);
diff --git a/SL/DB/MetaSetup/SepaExportItem.pm b/SL/DB/MetaSetup/SepaExportItem.pm
index 08dd06e18..f2b325d85 100644
--- a/SL/DB/MetaSetup/SepaExportItem.pm
+++ b/SL/DB/MetaSetup/SepaExportItem.pm
@@ -9,21 +9,25 @@ use base qw(SL::DB::Object);
__PACKAGE__->meta->table('sepa_export_items');
__PACKAGE__->meta->columns(
- amount => { type => 'numeric', precision => 5, scale => 25 },
- ap_id => { type => 'integer' },
- ar_id => { type => 'integer' },
- chart_id => { type => 'integer', not_null => 1 },
- end_to_end_id => { type => 'varchar', length => 35 },
- executed => { type => 'boolean', default => 'false' },
- execution_date => { type => 'date' },
- id => { type => 'integer', not_null => 1, sequence => 'id' },
- our_bic => { type => 'varchar', length => 100 },
- our_iban => { type => 'varchar', length => 100 },
- reference => { type => 'varchar', length => 35 },
- requested_execution_date => { type => 'date' },
- sepa_export_id => { type => 'integer', not_null => 1 },
- vc_bic => { type => 'varchar', length => 100 },
- vc_iban => { type => 'varchar', length => 100 },
+ amount => { type => 'numeric', precision => 5, scale => 25 },
+ ap_id => { type => 'integer' },
+ ar_id => { type => 'integer' },
+ chart_id => { type => 'integer', not_null => 1 },
+ end_to_end_id => { type => 'varchar', length => 35 },
+ executed => { type => 'boolean', default => 'false' },
+ execution_date => { type => 'date' },
+ id => { type => 'integer', not_null => 1, sequence => 'id' },
+ our_bic => { type => 'varchar', length => 100 },
+ our_depositor => { type => 'text' },
+ our_iban => { type => 'varchar', length => 100 },
+ reference => { type => 'varchar', length => 35 },
+ requested_execution_date => { type => 'date' },
+ sepa_export_id => { type => 'integer', not_null => 1 },
+ vc_bic => { type => 'varchar', length => 100 },
+ vc_depositor => { type => 'text' },
+ vc_iban => { type => 'varchar', length => 100 },
+ vc_mandate_date_of_signature => { type => 'date' },
+ vc_mandator_id => { type => 'text' },
);
__PACKAGE__->meta->primary_key_columns([ 'id' ]);
diff --git a/SL/DB/MetaSetup/Vendor.pm b/SL/DB/MetaSetup/Vendor.pm
index f2988ad74..0493aa374 100644
--- a/SL/DB/MetaSetup/Vendor.pm
+++ b/SL/DB/MetaSetup/Vendor.pm
@@ -24,6 +24,7 @@ __PACKAGE__->meta->columns(
delivery_term_id => { type => 'integer' },
department_1 => { type => 'varchar', length => 75 },
department_2 => { type => 'varchar', length => 75 },
+ depositor => { type => 'text' },
direct_debit => { type => 'boolean', default => 'false' },
discount => { type => 'float', precision => 4 },
email => { type => 'text' },
diff --git a/SL/DN.pm b/SL/DN.pm
index ebfa4f374..38174f912 100644
--- a/SL/DN.pm
+++ b/SL/DN.pm
@@ -44,6 +44,7 @@ use SL::MoreCommon;
use SL::Template;
use SL::DB::Printer;
use SL::DB::Language;
+use SL::TransNumber;
use strict;
@@ -205,6 +206,7 @@ sub create_invoice_for_fees {
my ($ar_id) = selectrow_query($form, $dbh, qq|SELECT nextval('glid')|);
my $curr = $form->get_default_currency($myconfig);
+ my $trans_number = SL::TransNumber->new(type => 'invoice', dbh => $dbh);
$query =
qq|INSERT INTO ar (id, invnumber, transdate, gldate, customer_id,
@@ -235,7 +237,7 @@ sub create_invoice_for_fees {
(SELECT id FROM employee WHERE login = ?)
)|;
@values = ($ar_id, # id
- $form->update_defaults($myconfig, 'invnumber', $dbh), # invnumber
+ $trans_number->create_unique, # invnumber
$dunning_id, # customer_id
$amount,
$amount,
@@ -246,19 +248,21 @@ sub create_invoice_for_fees {
do_query($form, $dbh, $query, @values);
$query =
- qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, taxkey)
- VALUES (?, ?, ?, current_date, current_date, 0)|;
+ qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, taxkey, tax_id, chart_link)
+ VALUES (?, ?, ?, current_date, current_date, 0,
+ (SELECT id FROM tax WHERE (taxkey = 0) AND (rate = 0)),
+ (SELECT link FROM chart WHERE id = ?))|;
$sth = prepare_query($form, $dbh, $query);
- @values = ($ar_id, conv_i($form->{AR_amount_fee}), $fee_remaining);
+ @values = ($ar_id, conv_i($form->{AR_amount_fee}), $fee_remaining, conv_i($form->{AR_amount_fee}));
do_statement($form, $sth, $query, @values);
if ($interest_remaining) {
- @values = ($ar_id, conv_i($form->{AR_amount_interest}), $interest_remaining);
+ @values = ($ar_id, conv_i($form->{AR_amount_interest}), $interest_remaining, conv_i($form->{AR_amount_interest}));
do_statement($form, $sth, $query, @values);
}
- @values = ($ar_id, conv_i($form->{AR}), -1 * $amount);
+ @values = ($ar_id, conv_i($form->{AR}), -1 * $amount, conv_i($form->{AR}));
do_statement($form, $sth, $query, @values);
$sth->finish();
diff --git a/SL/DO.pm b/SL/DO.pm
index 3d4cb23bf..31b01c424 100644
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -44,6 +44,7 @@ use SL::DB::Status;
use SL::DBUtils;
use SL::RecordLinks;
use SL::IC;
+use SL::TransNumber;
use strict;
@@ -224,7 +225,8 @@ sub save {
my $ic_cvar_configs = CVar->get_configs(module => 'IC',
dbh => $dbh);
- $form->{donumber} = $form->update_defaults($myconfig, $form->{type} eq 'sales_delivery_order' ? 'sdonumber' : 'pdonumber', $dbh) unless $form->{donumber};
+ my $trans_number = SL::TransNumber->new(type => $form->{type}, dbh => $dbh, number => $form->{donumber}, id => $form->{id});
+ $form->{donumber} ||= $trans_number->create_unique;
$form->{employee_id} = (split /--/, $form->{employee})[1] if !$form->{employee_id};
$form->get_employee($dbh) unless ($form->{employee_id});
diff --git a/SL/Form.pm b/SL/Form.pm
index 9a6bca2fd..a11b7adb6 100644
--- a/SL/Form.pm
+++ b/SL/Form.pm
@@ -3180,81 +3180,6 @@ sub get_history {
return 0;
}
-sub update_defaults {
- $main::lxdebug->enter_sub();
-
- my ($self, $myconfig, $fld, $provided_dbh) = @_;
-
- my $dbh;
- if ($provided_dbh) {
- $dbh = $provided_dbh;
- } else {
- $dbh = $self->dbconnect_noauto($myconfig);
- }
- my $query = qq|SELECT $fld FROM defaults FOR UPDATE|;
- my $sth = $dbh->prepare($query);
-
- $sth->execute || $self->dberror($query);
- my ($var) = $sth->fetchrow_array;
- $sth->finish;
-
- $var = 0 if !defined($var) || ($var eq '');
- $var = SL::PrefixedNumber->new(number => $var)->get_next;
- $query = qq|UPDATE defaults SET $fld = ?|;
- do_query($self, $dbh, $query, $var);
-
- if (!$provided_dbh) {
- $dbh->commit;
- $dbh->disconnect;
- }
-
- $main::lxdebug->leave_sub();
-
- return $var;
-}
-
-sub update_business {
- $main::lxdebug->enter_sub();
-
- my ($self, $myconfig, $business_id, $provided_dbh) = @_;
-
- my $dbh;
- if ($provided_dbh) {
- $dbh = $provided_dbh;
- } else {
- $dbh = $self->dbconnect_noauto($myconfig);
- }
- my $query =
- qq|SELECT customernumberinit FROM business
- WHERE id = ? FOR UPDATE|;
- my ($var) = selectrow_query($self, $dbh, $query, $business_id);
-
- return undef unless $var;
-
- if ($var =~ m/\d+$/) {
- my $new_var = (substr $var, $-[0]) * 1 + 1;
- my $len_diff = length($var) - $-[0] - length($new_var);
- $var = substr($var, 0, $-[0]) . ($len_diff > 0 ? '0' x $len_diff : '') . $new_var;
-
- } else {
- $var = $var . '1';
- }
-
- $query = qq|UPDATE business
- SET customernumberinit = ?
- WHERE id = ?|;
- do_query($self, $dbh, $query, $var, $business_id);
-
- if (!$provided_dbh) {
- $dbh->commit;
- $dbh->disconnect;
- }
-
- $main::lxdebug->leave_sub();
-
- return $var;
-}
-
sub get_partsgroup {
$main::lxdebug->enter_sub();
@@ -3472,6 +3397,16 @@ sub prepare_for_printing {
$self->reformat_numbers($output_numberformat, $precision, @{ $field_list });
}
+ $self->{template_meta} = {
+ formname => $self->{formname},
+ language => SL::DB::Manager::Language->find_by_or_create(id => $self->{language_id} || undef),
+ format => $self->{format},
+ media => $self->{media},
+ extension => $extension,
+ printer => SL::DB::Manager::Printer->find_by_or_create(id => $self->{printer_id} || undef),
+ today => DateTime->today,
+ };
+
return $self;
}
@@ -3591,18 +3526,6 @@ Points of interest for a beginner are:
=head1 SPECIAL FUNCTIONS
-=head2 C PARAMS
-
-PARAMS (not named):
- \%config, - config hashref
- $business_id, - business id
- $dbh - optional database handle
-
-handles business (thats customer/vendor types) sequences.
-
-special behaviour for empty strings in customerinitnumber field:
-will in this case not increase the value, and return undef.
-
=head2 C $url
Generates a HTTP redirection header for the new C<$url>. Constructs an
diff --git a/SL/IC.pm b/SL/IC.pm
index 3b7eb0848..ff8484b7e 100644
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -461,17 +461,17 @@ sub save {
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"});
- }
+ $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}) {
diff --git a/SL/IR.pm b/SL/IR.pm
index 84ce10a17..e5e02f5be 100644
--- a/SL/IR.pm
+++ b/SL/IR.pm
@@ -210,7 +210,7 @@ sub post_invoice {
# update parts table by setting lastcost to current price, don't allow negative values by using abs
$query = qq|UPDATE parts SET lastcost = ? WHERE id = ?|;
- @values = (abs($form->{"sellprice_$i"} / $basefactor), conv_i($form->{"id_$i"}));
+ @values = (abs($fxsellprice * $form->{exchangerate} / $basefactor), conv_i($form->{"id_$i"}));
do_query($form, $dbh, $query, @values);
# check if we sold the item already and
diff --git a/SL/IS.pm b/SL/IS.pm
index b00e809b5..9470f1a9a 100644
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -50,6 +50,7 @@ use SL::IO;
use SL::TransNumber;
use SL::DB::Default;
use SL::DB::Tax;
+use SL::TransNumber;
use Data::Dumper;
use strict;
@@ -582,9 +583,8 @@ sub post_invoice {
do_query($form, $dbh, $query, $form->{"id"}, $form->{"id"}, $form->{currency});
if (!$form->{invnumber}) {
- $form->{invnumber} =
- $form->update_defaults($myconfig, $form->{type} eq "credit_note" ?
- "cnnumber" : "invnumber", $dbh);
+ my $trans_number = SL::TransNumber->new(type => $form->{type}, dbh => $dbh, number => $form->{invnumber}, id => $form->{id});
+ $form->{invnumber} = $trans_number->create_unique;
}
}
}
diff --git a/SL/OE.pm b/SL/OE.pm
index 797eb9717..3d92746b5 100644
--- a/SL/OE.pm
+++ b/SL/OE.pm
@@ -46,6 +46,7 @@ use SL::DB::Status;
use SL::DB::Tax;
use SL::DBUtils;
use SL::IC;
+use SL::TransNumber;
use strict;
@@ -314,6 +315,10 @@ sub save {
my $ml = ($form->{type} eq 'sales_order') ? 1 : -1;
+ my $number_field = $form->{type} =~ m{order} ? 'ordnumber' : 'quonumber';
+ my $trans_number = SL::TransNumber->new(type => $form->{type}, dbh => $dbh, number => $form->{$number_field}, id => $form->{id});
+ $form->{$number_field} ||= $trans_number->create_unique;
+
if ($form->{id}) {
$query = qq|DELETE FROM custom_variables
WHERE (config_id IN (SELECT id FROM custom_variable_configs WHERE module = 'IC'))
diff --git a/SL/SEPA.pm b/SL/SEPA.pm
index d31204e3b..63efe2c5a 100644
--- a/SL/SEPA.pm
+++ b/SL/SEPA.pm
@@ -19,12 +19,14 @@ sub retrieve_open_invoices {
my $arap = $params{vc} eq 'customer' ? 'ar' : 'ap';
my $vc = $params{vc} eq 'customer' ? 'customer' : 'vendor';
+ my $mandate = $params{vc} eq 'customer' ? " AND COALESCE(vc.mandator_id, '') <> '' AND vc.mandate_date_of_signature IS NOT NULL " : '';
+
my $query =
qq|
SELECT ${arap}.id, ${arap}.invnumber, ${arap}.${vc}_id as vc_id, ${arap}.amount AS invoice_amount, ${arap}.invoice,
vc.name AS vcname, vc.language_id, ${arap}.duedate as duedate, ${arap}.direct_debit,
- COALESCE(vc.iban, '') <> '' AND COALESCE(vc.bic, '') <> '' AS vc_bank_info_ok,
+ COALESCE(vc.iban, '') <> '' AND COALESCE(vc.bic, '') <> '' ${mandate} AS vc_bank_info_ok,
${arap}.amount - ${arap}.paid - COALESCE(open_transfers.amount, 0) AS open_amount
@@ -76,14 +78,16 @@ sub create_export {
my $q_item_id = qq|SELECT nextval('id')|;
my $h_item_id = prepare_query($form, $dbh, $q_item_id);
+ my $c_mandate = $params{vc} eq 'customer' ? ', vc_mandator_id, vc_mandate_date_of_signature' : '';
+ my $p_mandate = $params{vc} eq 'customer' ? ', ?, ?' : '';
my $q_insert =
qq|INSERT INTO sepa_export_items (id, sepa_export_id, ${arap}_id, chart_id,
amount, requested_execution_date, reference, end_to_end_id,
- our_iban, our_bic, vc_iban, vc_bic)
+ our_iban, our_bic, vc_iban, vc_bic ${c_mandate})
VALUES (?, ?, ?, ?,
?, ?, ?, ?,
- ?, ?, ?, ?)|;
+ ?, ?, ?, ? ${p_mandate})|;
my $h_insert = prepare_query($form, $dbh, $q_insert);
my $q_reference =
@@ -130,6 +134,8 @@ sub create_export {
$transfer->{reference}, $end_to_end_id,
map { my $pfx = $_; map { $transfer->{"${pfx}_${_}"} } qw(iban bic) } qw(our vc));
+ push @values, $transfer->{vc_mandator_id}, conv_date($transfer->{vc_mandate_date_of_signature}) if $params{vc} eq 'customer';
+
do_statement($form, $h_insert, $q_insert, @values);
}
@@ -177,8 +183,10 @@ sub retrieve_export {
if ($export->{id}) {
my ($columns, $joins);
+ my $mandator_id = $params{vc} eq 'customer' ? ', mandator_id, mandate_date_of_signature' : '';
+
if ($params{details}) {
- $columns = qq|, arap.invnumber, arap.invoice, arap.transdate AS reference_date, vc.name AS vc_name, vc.${vc}number AS vc_number, c.accno AS chart_accno, c.description AS chart_description|;
+ $columns = qq|, arap.invnumber, arap.invoice, arap.transdate AS reference_date, vc.name AS vc_name, vc.${vc}number AS vc_number, c.accno AS chart_accno, c.description AS chart_description ${mandator_id}|;
$joins = qq|LEFT JOIN ${arap} arap ON (sei.${arap}_id = arap.id)
LEFT JOIN ${vc} vc ON (arap.${vc}_id = vc.id)
LEFT JOIN chart c ON (sei.chart_id = c.id)|;
diff --git a/SL/SEPA/XML.pm b/SL/SEPA/XML.pm
index 90c77ec3d..8ccfa8374 100644
--- a/SL/SEPA/XML.pm
+++ b/SL/SEPA/XML.pm
@@ -223,8 +223,8 @@ sub to_xml {
$xml->startTag('DrctDbtTx');
$xml->startTag('MndtRltdInf');
- $xml->dataElement('MndtId', $self->_restricted_identification_sepa2($transaction->get('company_number')));
- $xml->dataElement('DtOfSgntr', $transaction->get('reference_date', 2010-12-02));
+ $xml->dataElement('MndtId', $self->_restricted_identification_sepa2($transaction->get('mandator_id')));
+ $xml->dataElement('DtOfSgntr', $self->_restricted_identification_sepa2($transaction->get('date_of_signature')));
$xml->endTag('MndtRltdInf');
$xml->startTag('CdtrSchmeId');
diff --git a/bin/mozilla/arap.pl b/bin/mozilla/arap.pl
index 254498680..f56da182f 100644
--- a/bin/mozilla/arap.pl
+++ b/bin/mozilla/arap.pl
@@ -61,7 +61,7 @@ sub check_name {
$name = $name eq "customer" ? "customer" : "vendor";
- my ($new_name, $new_id) = split /--/, $form->{$name};
+ my ($new_name,$new_id) = $form->{$name} =~ /^(.*?)--(\d+)$/;
my $i = 0;
# if we use a selection
if ($form->{"select$name"}) {
diff --git a/bin/mozilla/cp.pl b/bin/mozilla/cp.pl
index b9aed484a..7daa8883a 100644
--- a/bin/mozilla/cp.pl
+++ b/bin/mozilla/cp.pl
@@ -72,9 +72,8 @@ sub payment {
# für bugfix 1771 (doppelte Leerzeichen werden nicht 'gepostet')
$form->{"select$form->{vc}"} = "";
- $form->{selectcustomer} .= " \n" if $form->{vc} eq "customer";
-
if ($form->{"all_$form->{vc}"}) {
+ $form->{"select$form->{vc}"} .= " \n";
# s.o. jb 12.10.2010
$form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id};
map { $form->{"select$form->{vc}"} .= "{name}--$_->{id}\">$_->{name}--$_->{id} \n" }
@@ -138,7 +137,7 @@ sub form_header {
# sometimes it happens that values in customer arrive without the signs '--'
# but in order to select the right option field we need values with '--'
- if ($form->{vc} eq "customer"){
+ if ($form->{vc} eq "customer" && $form->{"all_$form->{vc}"}){
my ($customername) = split /--/, $form->{ $form->{vc} };
$form->{ $form->{vc} } = $customername . "--" . $form->{customer_id};
}
@@ -324,13 +323,13 @@ sub update {
$updated = &check_name($form->{vc});
};
- if ($new_name_selected || $updated) {
+ # if ($new_name_selected || $updated) {
# get open invoices from ar/ap using $form->{vc} and a.${vc}_id, i.e. customer_id
CP->get_openinvoices(\%myconfig, \%$form);
($newvc) = split /--/, $form->{ $form->{vc} };
$form->{"old$form->{vc}"} = qq|$newvc--$form->{"$form->{vc}_id"}|;
$updated = 1;
- }
+ # }
if ($form->{currency} ne $form->{oldcurrency}) {
$form->{oldcurrency} = $form->{currency};
diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl
index e633b424e..776a99274 100644
--- a/bin/mozilla/do.pl
+++ b/bin/mozilla/do.pl
@@ -38,6 +38,7 @@ use SL::DB::DeliveryOrder;
use SL::DO;
use SL::IR;
use SL::IS;
+use SL::MoreCommon qw(ary_diff);
use SL::ReportGenerator;
use SL::WH;
require "bin/mozilla/arap.pl";
@@ -415,6 +416,12 @@ sub update_delivery_order {
$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"});
+
+ # get pricegroups for parts
+ IS->get_pricegroups_for_parts(\%myconfig, \%$form);
+
+ # build up html code for prices_$i
+ &set_pricegroup($i);
}
display_form();
@@ -491,7 +498,7 @@ sub orders {
my @columns = qw(
ids transdate reqdate
id donumber
- ordnumber customernumber cusordnumber
+ ordnumber customernumber cusordnumber
name employee salesman
shipvia globalprojectnumber
transaction_description department
@@ -687,8 +694,8 @@ sub save {
$form->{simple_save} = 1;
if (!$params{no_redirect} && !$form->{print_and_save}) {
- set_headings("edit");
- update();
+ delete @{$form}{ary_diff([keys %{ $form }], [qw(login id script type cursor_fokus)])};
+ edit();
::end_of_request();
}
$main::lxdebug->leave_sub();
@@ -829,7 +836,7 @@ sub invoice {
$form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"};
}
IS->get_pricegroups_for_parts(\%myconfig, \%$form);
- set_pricegroup($_) for 1 .. $form->{rowcount};
+ set_pricegroup($form->{rowcount});
display_form();
@@ -1320,6 +1327,8 @@ sub transfer_in {
$request->{parts_id} = $form->{"id_$i"};
$row_sum_base_qty += $request->{qty} * $units->{$request->{unit}}->{factor} / $base_unit_factor;
+ $request->{project_id} = $form->{"project_id_$i"} || $form->{globalproject_id};
+
push @all_requests, $request;
}
diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl
index 0ba19916f..413a7f6d0 100644
--- a/bin/mozilla/io.pl
+++ b/bin/mozilla/io.pl
@@ -225,6 +225,10 @@ sub display_row {
qw(qty discount sellprice lastcost price_new price_old)
unless ($form->{simple_save});
+ if ($form->{"prices_$i"} && ($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"})) {
+ $form->{"sellprice_$i"} = $form->{"price_new_$i"};
+ }
+
# unit begin
$form->{"unit_old_$i"} ||= $form->{"unit_$i"};
$form->{"selected_unit_$i"} ||= $form->{"unit_$i"};
@@ -421,7 +425,9 @@ sub display_row {
if ($is_delivery_order) {
map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount lastcost);
- push @hidden_vars, qw(sellprice discount not_discountable price_factor_id lastcost pricegroup_id);
+ $form->{"pricegroup_id_$i"} = $form->{"pricegroup_old_$i"} if $form->{"pricegroup_old_$i"};
+ $form->{"sellprice_pg_$i"} = $form->{"hidden_prices_$i"} if $form->{"hidden_prices_$i"};
+ push @hidden_vars, grep { defined $form->{"${_}_${i}"} } qw(sellprice discount not_discountable price_factor_id lastcost pricegroup_id sellprice_pg);
push @hidden_vars, "stock_${stock_in_out}_sum_qty", "stock_${stock_in_out}";
}
@@ -483,6 +489,10 @@ sub set_pricegroup {
$form->{"sellprice_$j"} = $item->{price} if $item->{selected} && $item->{pricegroup_id};
$form->{"price_new_$j"} = $form->{"sellprice_$j"} if $item->{selected} || !$item->{pricegroup_id};
}
+
+ # save hidden pricegroups for delivery_orders
+ next unless my @selected_prices = grep { $_->{selected} } @{ $form->{PRICES}{$j} };
+ $form->{"hidden_prices_$j"} = $selected_prices[-1]{price} . "--" . $selected_prices[-1]{pricegroup_id};
}
$main::lxdebug->leave_sub();
}
@@ -1336,31 +1346,7 @@ sub print_form {
# $locale->text('Quotation Number missing!')
# $locale->text('Quotation Date missing!')
- # assign number
$form->{what_done} = $form->{formname};
- if (!$form->{"${inv}number"} && !$form->{preview} && !$form->{id}) {
- $form->{"${inv}number"} = $form->update_defaults(\%myconfig, $numberfld);
- if ($form->{media} ne 'email') {
-
- # get pricegroups for parts
- IS->get_pricegroups_for_parts(\%myconfig, \%$form);
-
- # build up html code for prices_$i
- set_pricegroup($form->{rowcount});
-
- $form->{rowcount}--;
-
- call_sub($display_form);
- # saving the history
- if(!exists $form->{addition}) {
- $form->{snumbers} = "${inv}number" . "_" . $form->{"${inv}number"};
- $form->{addition} = "PRINTED";
- $form->save_history;
- }
- # /saving the history
- ::end_of_request();
- }
- }
&validate_items;
diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl
index d0e501473..ffa759544 100644
--- a/bin/mozilla/is.pl
+++ b/bin/mozilla/is.pl
@@ -154,6 +154,7 @@ sub invoice_links {
taxincluded currency cp_id intnotes id shipto_id
delivery_term_id));
+ $form->{shipto} = 1 if $editing || $form->{convert_from_oe_ids} || $form->{convert_from_do_ids};
IS->get_customer(\%myconfig, \%$form);
#quote all_customer Bug 133
@@ -1023,6 +1024,10 @@ sub yes {
$main::lxdebug->leave_sub();
}
+sub post_and_e_mail {
+ e_mail();
+};
+
sub e_mail {
$main::lxdebug->enter_sub();
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
index 3ee71e67f..d4da314cc 100644
--- a/bin/mozilla/oe.pl
+++ b/bin/mozilla/oe.pl
@@ -441,7 +441,7 @@ sub form_header {
qw(id action type vc formname media format proforma queued printed emailed
title creditlimit creditremaining tradediscount business
max_dunning_level dunning_amount shiptoname shiptostreet shiptozipcode
- CFDD_shipto shipto_id CFDD_shipto_id shiptocity shiptocountry shiptocontact shiptophone shiptofax
+ CFDD_shipto CFDD_shipto_id shiptocity shiptocountry shiptocontact shiptophone shiptofax
shiptodepartment_1 shiptodepartment_2 shiptoemail shiptocp_gender
message email subject cc bcc taxpart taxservice taxaccounts cursor_fokus
show_details),
@@ -1122,10 +1122,8 @@ sub save_and_close {
}
- # get new number in sequence if no number is given or if saveasnew was requested
- if (!$form->{$ordnumber} || $form->{saveasnew}) {
- $form->{$ordnumber} = $form->update_defaults(\%myconfig, $numberfld);
- }
+ # get new number in sequence if saveasnew was requested
+ delete $form->{$ordnumber} if $form->{saveasnew};
relink_accounts();
@@ -1232,10 +1230,6 @@ sub save {
}
- # value of $ordnumber is ordnumber or quonumber
- $form->{$ordnumber} = $form->update_defaults(\%myconfig, $numberfld)
- unless $form->{$ordnumber};
-
relink_accounts();
OE->save(\%myconfig, \%$form);
@@ -1361,8 +1355,7 @@ sub invoice {
$exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $orddate, $buysell);
if (!$exchangerate) {
- &backorder_exchangerate($orddate, $buysell);
- ::end_of_request();
+ $exchangerate = 0;
}
}
@@ -1453,75 +1446,6 @@ sub invoice {
$main::lxdebug->leave_sub();
}
-sub backorder_exchangerate {
- $main::lxdebug->enter_sub();
-
- my $form = $main::form;
- my $locale = $main::locale;
-
- check_oe_access();
-
- my ($orddate, $buysell) = @_;
-
- $form->header;
-
- print qq|
-
-|;
-
- $main::lxdebug->leave_sub();
-}
-
sub save_exchangerate {
$main::lxdebug->enter_sub();
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/bin/mozilla/sepa.pl b/bin/mozilla/sepa.pl
index 2850bfb14..6fb9907d2 100755
--- a/bin/mozilla/sepa.pl
+++ b/bin/mozilla/sepa.pl
@@ -1,7 +1,7 @@
use strict;
use List::MoreUtils qw(any none uniq);
-use List::Util qw(first);
+use List::Util qw(sum first);
use POSIX qw(strftime);
use SL::BankAccount;
@@ -105,14 +105,19 @@ sub bank_transfer_create {
$form->error($locale->text('You have selected none of the invoices.'));
}
+ my $total_trans = sum map { $_->{open_amount} } @bank_transfers;
+
my ($vc_bank_info);
my $error_message;
+ my @bank_columns = qw(iban bic);
+ push @bank_columns, qw(mandator_id mandate_date_of_signature) if $vc eq 'customer';
+
if ($form->{confirmation}) {
$vc_bank_info = { map { $_->{id} => $_ } @{ $form->{vc_bank_info} || [] } };
foreach my $info (values %{ $vc_bank_info }) {
- if (any { !$info->{$_} } qw(iban bic)) {
+ if (any { !$info->{$_} } @bank_columns) {
$error_message = $locale->text('The bank information must not be empty.');
last;
}
@@ -136,11 +141,12 @@ sub bank_transfer_create {
'bank_account_label' => $bank_account_label_sub,
'error_message' => $error_message,
'vc' => $vc,
+ 'total_trans' => $total_trans,
});
} else {
foreach my $bank_transfer (@bank_transfers) {
- foreach (qw(iban bic)) {
+ foreach (@bank_columns) {
$bank_transfer->{"vc_${_}"} = $vc_bank_info->{ $bank_transfer->{vc_id} }->{$_};
$bank_transfer->{"our_${_}"} = $bank_account->{$_};
}
@@ -493,6 +499,7 @@ sub bank_transfer_download_sepa_xml {
foreach my $item (@items) {
my $requested_execution_date;
+ my $mandator_id;
if ($item->{requested_execution_date}) {
my ($yy, $mm, $dd) = $locale->parse_date($myconfig, $item->{requested_execution_date});
$requested_execution_date = sprintf '%04d-%02d-%02d', $yy, $mm, $dd;
@@ -501,6 +508,11 @@ sub bank_transfer_download_sepa_xml {
if ($vc eq 'customer') {
my ($yy, $mm, $dd) = $locale->parse_date($myconfig, $item->{reference_date});
$item->{reference_date} = sprintf '%04d-%02d-%02d', $yy, $mm, $dd;
+ $mandator_id = $item->{mandator_id};
+ if ($item->{mandate_date_of_signature}) {
+ ($yy, $mm, $dd) = $locale->parse_date($myconfig, $item->{mandate_date_of_signature});
+ $item->{mandate_date_of_signature} = sprintf '%04d-%02d-%02d', $yy, $mm, $dd;
+ }
}
$sepa_xml->add_transaction({ 'src_iban' => $item->{our_iban},
@@ -511,9 +523,11 @@ sub bank_transfer_download_sepa_xml {
'company_number' => $item->{vc_number},
'amount' => $item->{amount},
'reference' => $item->{reference},
+ 'mandator_id' => $mandator_id,
'reference_date' => $item->{reference_date},
'execution_date' => $requested_execution_date,
- 'end_to_end_id' => $item->{end_to_end_id} });
+ 'end_to_end_id' => $item->{end_to_end_id},
+ 'date_of_signature' => $item->{mandate_date_of_signature}, });
}
my $xml = $sepa_xml->to_xml();
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/js/kivi.CustomerVendor.js b/js/kivi.CustomerVendor.js
index e8f412a61..59c07354e 100644
--- a/js/kivi.CustomerVendor.js
+++ b/js/kivi.CustomerVendor.js
@@ -44,32 +44,25 @@ namespace('kivi.CustomerVendor', function(ns) {
this.selectContact = function(params) {
var contactId = $('#contact_cp_id').val();
- if( contactId ) {
- var url = 'controller.pl?action=CustomerVendor/ajaj_get_contact&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&contact_id='+ contactId;
+ var url = 'controller.pl?action=CustomerVendor/ajaj_get_contact&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&contact_id='+ contactId;
- $.getJSON(url, function(data) {
- var contact = data.contact;
- for(var key in contact)
- $(document.getElementById('contact_'+ key)).val(contact[key])
+ $.getJSON(url, function(data) {
+ var contact = data.contact;
+ for(var key in contact)
+ $(document.getElementById('contact_'+ key)).val(contact[key])
- var cvars = data.contact_cvars;
- for(var key in cvars)
- $(document.getElementById('contact_cvar_'+ key)).val(cvars[key]);
+ var cvars = data.contact_cvars;
+ for(var key in cvars)
+ $(document.getElementById('contact_cvars_'+ key)).val(cvars[key]);
+ if ( contactId )
$('#action_delete_contact').show();
+ else
+ $('#action_delete_contact').hide();
- if( params.onFormSet )
- params.onFormSet();
- });
- }
- else {
- $('#contacts :input').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected');
-
- $('#action_delete_contact').hide();
-
- if( params.onFormSet )
+ if ( params.onFormSet )
params.onFormSet();
- }
+ });
$('#contact_cp_title_select, #contact_cp_abteilung_select').val('');
};
diff --git a/locale/de/all b/locale/de/all
index ce6c0274d..98d6920ed 100755
--- a/locale/de/all
+++ b/locale/de/all
@@ -10,6 +10,7 @@ use utf8;
# run locales.pl from this directory to rebuild the translation files
$self->{texts} = {
+ ' (in use so no change allowed)' => ' (Faktor wird verwendet, keine Ãnderung erlaubt)',
' Date missing!' => ' Datum fehlt!',
' Part Number missing!' => ' Artikelnummer fehlt!',
' missing!' => ' fehlt!',
@@ -131,7 +132,6 @@ $self->{texts} = {
'Add Delivery Note' => 'Lieferschein erfassen',
'Add Delivery Order' => 'Lieferschein erfassen',
'Add Dunning' => 'Mahnung erzeugen',
- 'Add Exchangerate' => 'Wechselkurs erfassen',
'Add Follow-Up' => 'Wiedervorlage erstellen',
'Add Follow-Up for #1' => 'Wiedervorlage für #1 erstellen',
'Add General Ledger Transaction' => 'Dialogbuchen',
@@ -278,6 +278,7 @@ $self->{texts} = {
'Bank Code Number' => 'Bankleitzahl',
'Bank Connection Tax Office' => 'Bankverbindung des Finanzamts',
'Bank Connections' => 'Bankverbindungen',
+ 'Bank account' => 'Bankkonto',
'Bank accounts' => 'Bankkonten',
'Bank code' => 'Bankleitzahl',
'Bank collection amount' => 'Einzugsbetrag',
@@ -1286,6 +1287,8 @@ $self->{texts} = {
'Make default profile' => 'Zu Standardprofil machen',
'Manage Custom Variables' => 'Benutzerdefinierte Variablen',
'Mandantennummer' => 'Mandantennummer',
+ 'Mandate Date of Signature' => 'Mandat-Unterschriftsdatum',
+ 'Mandator ID' => 'Mandanten-ID',
'Mandatory Departments' => 'Benutzer muss Abteilungen vergeben',
'Map' => 'Karte',
'Mar' => 'März',
@@ -1495,6 +1498,7 @@ $self->{texts} = {
'Outputformat' => 'Ausgabeformat',
'Overdue sales quotations and requests for quotations' => 'Ãberfällige Angebote und Preisanfragen',
'Override invoice language' => 'Diese Sprache verwenden',
+ 'Owner of account' => 'Kontoinhaber',
'PAYMENT POSTED' => 'Rechung gebucht',
'PDF' => 'PDF',
'PDF (OpenDocument/OASIS)' => 'PDF (OpenDocument/OASIS)',
@@ -1605,6 +1609,7 @@ $self->{texts} = {
'Portrait' => 'Hochformat',
'Post' => 'Buchen',
'Post Payment' => 'Zahlung buchen',
+ 'Post and E-mail' => 'Buchen und E-Mail',
'Post payments' => 'Zahlungen buchen',
'Posting Configuration' => 'Buchungskonfiguration',
'Postscript' => 'Postscript',
@@ -2002,6 +2007,7 @@ $self->{texts} = {
'Sum Credit' => 'Summe Haben',
'Sum Debit' => 'Summe Soll',
'Sum for' => 'Summe für',
+ 'Sum open amount' => 'Summierter offener Betrag',
'Sum per' => 'Summe per',
'Summen- und Saldenliste' => 'Summen- und Saldenliste',
'Superuser name' => 'Datenbankadministrator',
@@ -2225,6 +2231,8 @@ $self->{texts} = {
'The project type has been deleted.' => 'Der Projekttyp wurde gelöscht.',
'The project type has been saved.' => 'Der Projekttyp wurde gespeichert.',
'The project type is in use and cannot be deleted.' => 'Der Projekttyp wird verwendet und kann nicht gelöscht werden.',
+ 'The required information consists of the IBAN and the BIC.' => 'Die benötigten Informationen bestehen aus der IBAN und der BIC.',
+ 'The required information consists of the IBAN, the BIC, the mandator ID and the mandate\'s date of signature.' => 'Die benötigten Informationen bestehen aus IBAN, BIC, Mandanten-ID und dem Unterschriftsdatum des Mandates.',
'The second reason is that kivitendo allowed the user to enter the tax amount manually regardless of the taxkey used.' => 'Der zweite Grund war, dass kivitendo zulieÃ, dass die Benutzer beliebige, von den tatsächlichen Steuerschlüsseln unabhängige Steuerbeträge eintrugen.',
'The second way is to use Perl\'s CPAN module and let it download and install the module for you.' => 'Die zweite Variante besteht darin, Perls CPAN-Modul zu benutzen und es das Modul für Sie installieren zu lassen.',
'The selected bank account does not exist anymore.' => 'Das ausgewählte Bankkonto existiert nicht mehr.',
diff --git a/sql/Austria-chart.sql b/sql/Austria-chart.sql
deleted file mode 100644
index 255d86642..000000000
--- a/sql/Austria-chart.sql
+++ /dev/null
@@ -1,143 +0,0 @@
--- Kontoplan für Ãsterreich
--- Ferdinand Gassauer, Tue, 5 Feb 2002
--- checked and completed, Thu, 7 Feb 2002, Dieter Simader
---
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0000','AUFWENDUNGEN FÃR INGANGSETZEN UND ERWEITERN DES BETRIEBES','H','00','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0010','Firmenwert','A','015','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0100','IMMATERIELLE VERMÃGENSGEGENSTÃNDE','H','01','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0110','Rechte','A','011','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0200','GRUNDSTÃCKE','H','02-03','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0210','unbebaute Grundstücke','A','020','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0220','bebaute Grundstücke','A','021','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0229','kum. Abschreibung bebaute Grundstücke','A','039','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0400','MASCHINEN','H','04-05','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0410','Maschinen','A','041','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0419','kum. Abschreibung Maschinen','A','069','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0500','FAHRZEUGE','H','06','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0510','Fahrzeuge','A','063','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0519','kum. Abschreibung Fahrzeuge','A','069','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0600','BETRIEBS- UND GESCHÃFTSAUSSTATTUNG','H','06','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0620','Büroeinrichtungen','A','066','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0625','kum. Abschreibung Betriebs- und Geschäftsausstattung','A','069','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0700','GELEISTETE ANZAHLUNGEN','H','07','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0800','FINANZANLAGEN','H','08-09','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0810','Beteiligungen','A','081','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0820','Wertpapiere','A','080','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1100','ROHSTOFFE','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1120','Vorräte - Rohstoffe','A','110-119','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1200','BEZOGENE TEILE','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1220','Vorräte - bezogene Teile','A','120-129','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1300','HILFS- UND BETRIEBSSTOFFE','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1320','Hilfsstoffe','A','130-134','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1350','Betriebssstoffe','A','135-139','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1400','UNFERTIGE ERZEUGNISSE','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1420','Vorräte - unfertige Erzeugnisse','A','140-149','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1500','FERTIGE ERZEUGNISSE','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1520','Vorräte - Hardware','A','150-159','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1530','Vorräte - Software','A','150-159','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1540','Vorräte - Ersatzteile','A','150-159','A','IC');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1600','WAREN','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1700','NOCH NICHT ABGERECHNETE LEISTUNGEN','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1800','GELEISTETE ANZAHLUNGEN','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('1900','WERTBERICHTIGUNGEN','H','1','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2000','FORDEUNGEN AUS LIEFERUNGEN UND LEISTUNGEN','H','2','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2010','Forderungen Lieferung & Leistung','A','200-207','A','AR');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2019','Wertberichtigung uneinbringliche Forderungen','A','20-21','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2300','SONSTIGE FORDERUNGEN','H','2','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2320','sonstige Forderungen','A','23-24','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2500','FORDERUNGEN AUS ABGABENVERRECHNUNG','H','2','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2520','sonstige Forderungen aus Abgebenverrechnung','A','25','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2600','WERTPAPIERE UND ANTEILE','H','2','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2620','Wertpapiere Umlaufvermögen','A','26','A','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2700','KASSABESTAND','H','2','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2701','Kassa','A','27-28','A','AR_paid:AP_paid');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2800','SCHECKS, GUTHABEN BEI KREDITINSTITUTEN','H','2','A','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2810','Schecks','A','27-28','A','AR_paid:AP_paid');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('2820','Bankguthaben','A','280-288','A','AR_paid:AP_paid');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3100','LANGFRISTIGE VERBINDLICHKEITEN','H','3','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3110','Bank Verbindlichkeiten','A','31','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3120','Kredite von Eigentümern','A','310','L','AP_paid');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3300','VERBINDLICHKEITEN AUS LIEFERUNGEN UND LEISTUNGEN','H','33','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3310','Verbindlichkeiten aus Lieferungen und Leistungen','A','330-335','L','AP');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3500','VERBINDLICHKEITEN FINANZAMT','H','35','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3510','Finanzamt Verrechnung Körperschaftssteuer','A','350-359','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3520','Finanzamt Verrechnung Umsatzsteuer','A','350-359','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3530','Mehrwertsteuer 0%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3531','Mehrwertsteuer 10%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3532','Mehrwertsteuer 20%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3540','Vorsteuer 0%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3541','Vorsteuer 10%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('3542','Vorsteuer 20%','A','350-359','L','AR_tax:AP_tax:IC_taxpart:IC_taxservice');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4000','UMSATZ','H','4','I','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4020','Verkauf - Hardware','A','40-44','I','AR_amount:IC_sale');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4030','Verkauf - Software ','A','40-44','I','AR_amount:IC_sale');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4040','Verkauf - Ersatzteile','A','40-44','I','AR_amount:IC_sale');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4300','UMSATZ BERATUNG','H','4','I','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4320','Erlöse Beratung','A','40-44','I','AR_amount:IC_income');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4330','Erlöse Programmierung','A','40-44','I','AR_amount:IC_income');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4600','SONSTIGE ERLÃSE','H','4','I','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4630','Frachterlöse','A','46-49','I','IC_income');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5000','WARENEINSATZ','H','5','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5020','Wareneinsatz / Hardware','A','500-509','E','AP_amount:IC_cogs');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5030','Wareneinsatz / Software','A','500-509','E','AP_amount:IC_cogs');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5040','Wareneinsatz / Ersatzteile','A','520-529','E','AP_amount:IC_cogs');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5600','VERBRAUCH BRENN- UND TREIBSTOFFEN, ENERGIE UND WASSER','H','5','I','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('5610','Energie, Wasser','A','560-569','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6000','LOHNAUFWAND','H','6','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6010','Lohn ','A','600-619','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6200','GEAHLTSAUFWAND','H','6','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6210','Gehalt ','A','620-639','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6500','GESETZLICHER SOZIALAUFWAND','H','6','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6510','Dienstgeberanteile','A','645-649','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6700','FREIWILLIGER SOZIALAUFWAND','H','6','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('6710','freiwilliger Sozialaufwand','A','660-665','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7000','ABSCHREIBUNGEN','H','7','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7010','Abschreibungen','A','700','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7020','geringwertige Wirtschaftsgüter','A','701-708','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7100','SONSTIGE STEUERN','H','71','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7110','Ertragssteuern','A','710-719','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7120','Grundsteuern','A','710-719','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7200','INSTANDHALTUNGSAUFWAND','H','7','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7210','Reparatur und Instandhaltung','A','720-729','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7300','TRANSPORTKOSTEN','H','73','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7310','Frachtaufwand','A','730-731','E','AP_amount:IC_expense');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7400','MIET-,PACHT-,LEASING-, LIZENZAUFWAND','H','74','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7410','Miete','A','740-743','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7411','Lizenzen','A','748-749','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7600','VERWALTUNGSKOSTEN','H','76','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7610','Beratungsaufwand','A','775-776','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7611','Büromaterialien','A','760','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7615','Werbung und Marketing','A','765-768','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7620','uneinbringliche Forderungen','A','799','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7630','Telephonkosten','A','738-739','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7631','Internetkosten','A','738-739','E','AP_amount:IC_expense');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7632','Reise- und Repräsentationsaufwand','A','734-735','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7634','Registrierungsgebühren','A','748-749','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7700','VERSICHERUNGEN','H','77-78','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7710','Versicherung','A','770-774','E','AP_amount');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8000','FINANZERTRÃGE UND FINANZAUFWENDUNGEN','H','8','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8020','Bankzinsen und Gebühren','A','80-83','E','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8100','BETEILIGUNGSERTRÃGE','H','8','I','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8110','Erträge aus Beteiligungen','A','800-804','I','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9000','KAPITAL','H','9','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9010','Aktien, Geschäftsanteile','A','900-918','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9020','nicht einbezahltes Kapital','A','919','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9200','KAPITALRÃCKLAGEN','H','9','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9210','freie Rücklage','A','920-929','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9300','GEWINN','H','939','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9310','Gewinnvortrag Vorjahr','A','980','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9320','Jahresgewinn','A','985','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9400','RÃCKSTELLUNGEN','H','3','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9420','Abfertigungsrückstellung','A','300','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9430','Urlaubsrückstellung','A','304-309','L','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9700','EINLAGEN STILLER GESELLSCHAFTER','H','9','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('9800','EB,SB,G+V KONTEN','H','9','Q','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('4640','Devisengewinne','A','80-83','I','');
-insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8050','Devisenverluste','A','80-83','E','');
---
-insert into tax (chart_id,rate) values ((select id from chart where accno = '3530'),0.00);
-insert into tax (chart_id,rate) values ((select id from chart where accno = '3531'),0.10);
-insert into tax (chart_id,rate) values ((select id from chart where accno = '3532'),0.20);
---
-update defaults set inventory_accno_id = (select id from chart where accno = '1520'), income_accno_id = (select id from chart where accno = '4020'), expense_accno_id = (select id from chart where accno = '7610'), fxgain_accno_id = (select id from chart where accno = '4640'), fxloss_accno_id = (select id from chart where accno = '8050'), invnumber = '1000', sonumber = '1000', ponumber = '1000', curr = 'EUR:USD', weightunit = 'kg';
---
diff --git a/sql/Pg-upgrade2-auth/delivery_plan_rights.pl b/sql/Pg-upgrade2-auth/delivery_plan_rights.pl
index 38b31c844..3d58ee572 100644
--- a/sql/Pg-upgrade2-auth/delivery_plan_rights.pl
+++ b/sql/Pg-upgrade2-auth/delivery_plan_rights.pl
@@ -16,7 +16,7 @@ sub run {
my $groups = $main::auth->read_groups();
foreach my $group (values %{$groups}) {
- $group->{rights}->{delivery_plan_rights} = $group->{rights}->{sales_order_edit};
+ $group->{rights}->{delivery_plan} = $group->{rights}->{sales_order_edit};
$main::auth->save_group($group);
}
diff --git a/sql/Pg-upgrade2/add_customer_mandator_id.sql b/sql/Pg-upgrade2/add_customer_mandator_id.sql
new file mode 100644
index 000000000..99a788e92
--- /dev/null
+++ b/sql/Pg-upgrade2/add_customer_mandator_id.sql
@@ -0,0 +1,18 @@
+-- @tag: add_customer_mandator_id
+-- @description: Einführen einer Mandanten-ID- und Signatur-Datums-Spalte bei Kunden.
+-- @depends: release_3_0_0
+
+ALTER TABLE customer ADD COLUMN mandator_id text;
+ALTER TABLE customer ADD COLUMN mandate_date_of_signature date;
+ALTER TABLE sepa_export_items ADD COLUMN vc_mandator_id text;
+ALTER TABLE sepa_export_items ADD COLUMN vc_mandate_date_of_signature date;
+
+UPDATE sepa_export_items
+SET vc_mandator_id = (
+ SELECT c.customernumber
+ FROM ar
+ LEFT JOIN customer c ON (ar.customer_id = c.id)
+ WHERE ar.id = sepa_export_items.ar_id
+),
+vc_mandate_date_of_signature = '2010-01-01'::date
+WHERE ar_id IS NOT NULL;
diff --git a/sql/Pg-upgrade2/add_depositor_for_customer_vendor.sql b/sql/Pg-upgrade2/add_depositor_for_customer_vendor.sql
new file mode 100644
index 000000000..cba51d711
--- /dev/null
+++ b/sql/Pg-upgrade2/add_depositor_for_customer_vendor.sql
@@ -0,0 +1,11 @@
+-- @tag: add_depositor_for_customer_vendor
+-- @description: Einführen einer Depositor (Kontoinhaber) Spalte bei Customer bzw. Vendor
+-- @depends: sepa
+
+ALTER TABLE customer ADD depositor text;
+ALTER TABLE vendor ADD depositor text;
+ALTER TABLE sepa_export_items ADD our_depositor text;
+ALTER TABLE sepa_export_items ADD vc_depositor text;
+
+UPDATE customer SET depositor = name;
+UPDATE vendor SET depositor = name;
diff --git a/sql/Pg-upgrade2/fix_datepaid_for_sepa_transfers.sql b/sql/Pg-upgrade2/fix_datepaid_for_sepa_transfers.sql
new file mode 100644
index 000000000..dd2b06b6d
--- /dev/null
+++ b/sql/Pg-upgrade2/fix_datepaid_for_sepa_transfers.sql
@@ -0,0 +1,19 @@
+-- @tag: fix_datepaid_for_sepa_transfers
+-- @description: Feld »datepaid« bei via SEPA durchgeführten Transfers richtig setzen
+-- @depends: release_3_0_0
+UPDATE ar
+SET datepaid = (
+ SELECT MAX(acc.transdate)
+ FROM acc_trans acc
+ LEFT JOIN chart c ON (c.id = acc.chart_id)
+ WHERE (acc.trans_id = ar.id)
+ AND (c.link LIKE '%paid%')
+)
+WHERE (ar.amount != 0)
+ AND NOT ar.storno
+ AND ar.id IN (
+ SELECT sei.ar_id
+ FROM sepa_export_items sei
+ WHERE (sei.ar_id IS NOT NULL)
+ AND sei.executed
+ );
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 Betrachtungszeitraum
- Kumuliert seit Jahresanfang
-
-
-
- Bezeichnung
- Wert
- % Ges.- Leistg.
- % Ges.- Kosten
- % Pers.- Kosten
- Aufschlag
- Wert
- % Ges.- Leistg.
- % Ges.- Kosten
- % Pers.- Kosten
- Aufschlag
-
-
-
-
-
- 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 Betrachtungszeitraum
- Kumuliert seit Jahresanfang
-
-
-
- Bezeichnung
- Wert
- % Ges.- Leistg.
- % Ges.- Kosten
- % Pers.- Kosten
- Aufschlag
- Wert
- % Ges.- Leistg.
- % Ges.- Kosten
- % Pers.- Kosten
- Aufschlag
-
-
-
-
-
- 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 Betrachtungszeitraum
- Kumuliert seit Jahresanfang
-
-
-
- Bezeichnung
- Wert
- % Ges.- Leistg.
- % Ges.- Kosten
- % Pers.- Kosten
- Aufschlag
- Wert
- % Ges.- Leistg.
- % Ges.- Kosten
- % Pers.- Kosten
- Aufschlag
-
-
-
-
-
- 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/am/edit_price_factor.html b/templates/webpages/am/edit_price_factor.html
index a2191300b..6ca175aa2 100644
--- a/templates/webpages/am/edit_price_factor.html
+++ b/templates/webpages/am/edit_price_factor.html
@@ -16,7 +16,12 @@
[% 'Factor' | $T8 %]
+[% IF orphaned %]
+[% ELSE %]
+
+ [% HTML.escape(factor) %] [% ' (in use so no change allowed)' | $T8 %]
+[% END %]
diff --git a/templates/webpages/customer_vendor/form.html b/templates/webpages/customer_vendor/form.html
index a0d1ab951..ad2da05ab 100644
--- a/templates/webpages/customer_vendor/form.html
+++ b/templates/webpages/customer_vendor/form.html
@@ -16,6 +16,7 @@
[% PROCESS "customer_vendor/tabs/billing.html" %]
+ [% PROCESS "customer_vendor/tabs/bank.html" %]
[% PROCESS "customer_vendor/tabs/shipto.html" %]
[% PROCESS "customer_vendor/tabs/contacts.html" %]
[% IF ( SELF.cv.id && AUTH.assert('sales_all_edit', 1) ) %]
@@ -102,4 +104,3 @@
}
-->
-
diff --git a/templates/webpages/customer_vendor/tabs/bank.html b/templates/webpages/customer_vendor/tabs/bank.html
new file mode 100644
index 000000000..1f08af4b5
--- /dev/null
+++ b/templates/webpages/customer_vendor/tabs/bank.html
@@ -0,0 +1,63 @@
+[%- USE T8 %]
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- USE L %]
+
+
+
+
+ [% 'Owner of account' | $T8 %]
+
+
+ [% L.input_tag('cv.depositor', SELF.cv.depositor, size = 20) %]
+
+
+ [%- IF ( SELF.is_customer ) %]
+ [% 'Mandator ID' | $T8 %]
+
+ [% L.input_tag('cv.mandator_id', SELF.cv.mandator_id, size = 20) %]
+
+
+ [% 'Mandate Date of Signature' | $T8 %]
+
+ [% L.date_tag('cv.mandate_date_of_signature', SELF.cv.mandate_date_of_signature) %]
+
+ [%- END %]
+
+
+
+ [% 'IBAN' | $T8 %]
+
+
+ [% L.input_tag('cv.iban', SELF.cv.iban, size = 34, maxlength = 100) %]
+
+
+
+ [% 'BIC' | $T8 %]
+
+ [% L.input_tag('cv.bic', SELF.cv.bic, size = 20, maxlength = 100) %]
+
+
+ [% 'Bank' | $T8 %]
+
+
+ [% L.input_tag('cv.bank', SELF.cv.bank, size = 20) %]
+
+
+
+
+ [% 'Account Number' | $T8 %]
+
+
+ [% L.input_tag('cv.account_number', SELF.cv.account_number, size = 20, maxlength = 100) %]
+
+
+
+ [% 'Bank Code Number' | $T8 %]
+
+
+ [% L.input_tag('cv.bank_code', SELF.cv.bank_code, size = 20, maxlength = 100) %]
+
+
+
+
diff --git a/templates/webpages/customer_vendor/tabs/billing.html b/templates/webpages/customer_vendor/tabs/billing.html
index 5c036e070..c65bed08f 100644
--- a/templates/webpages/customer_vendor/tabs/billing.html
+++ b/templates/webpages/customer_vendor/tabs/billing.html
@@ -246,50 +246,15 @@
[%- END %]
+ [% IF ( SELF.all_currencies.size ) %]
- [% 'Account Number' | $T8 %]
-
-
- [% L.input_tag('cv.account_number', SELF.cv.account_number, size = 20, maxlength = 100) %]
-
-
-
- [% 'Bank Code Number' | $T8 %]
-
-
- [% L.input_tag('cv.bank_code', SELF.cv.bank_code, size = 20, maxlength = 100) %]
-
-
-
- [% 'Bank' | $T8 %]
-
-
- [% L.input_tag('cv.bank', SELF.cv.bank, size = 20) %]
-
-
-
-
- [% 'IBAN' | $T8 %]
-
-
- [% L.input_tag('cv.iban', SELF.cv.iban, size = 34, maxlength = 100) %]
-
-
-
- [% 'BIC' | $T8 %]
-
- [% L.input_tag('cv.bic', SELF.cv.bic, size = 11, maxlength = 100) %]
-
-
-
- [% IF ( SELF.all_currencies.size ) %]
[% 'Currency' | $T8 %]
[% L.select_tag('cv.currency_id', SELF.all_currencies, title_key = 'name', value_key = 'id', default = SELF.cv.currency_id) %]
- [% END %]
+ [% END %]
[% IF ( !INSTANCE_CONF.get_vertreter ) %]
diff --git a/templates/webpages/is/form_footer.html b/templates/webpages/is/form_footer.html
index 6b3426b60..5ab55b739 100644
--- a/templates/webpages/is/form_footer.html
+++ b/templates/webpages/is/form_footer.html
@@ -176,7 +176,7 @@
-
+
diff --git a/templates/webpages/layout/javascript_setup.js b/templates/webpages/layout/javascript_setup.js
index 8a060425e..7346ca3ee 100644
--- a/templates/webpages/layout/javascript_setup.js
+++ b/templates/webpages/layout/javascript_setup.js
@@ -27,8 +27,8 @@ $(function() {
[% END %]
});
-function fokus() {
[%- IF focus -%]
+function fokus() {
$('[% focus %]').focus();
-[%- END -%]
}
+[%- END -%]
diff --git a/templates/webpages/project/form.html b/templates/webpages/project/form.html
index 9ec39e06f..52cd78221 100644
--- a/templates/webpages/project/form.html
+++ b/templates/webpages/project/form.html
@@ -2,9 +2,9 @@
[%- USE L %][%- USE P %]
[%- USE HTML %][%- USE LxERP %]
-[%- INCLUDE 'common/flash.html' %]
+[% title %]
- [% title %]
+[%- INCLUDE 'common/flash.html' %]
[%- END %]
@@ -89,8 +89,10 @@
(1)
[%- IF is_vendor %]
[%- 'No bank information has been entered in this vendor\'s master data entry. You cannot create bank transfers unless you enter bank information.' | $T8 %]
+ [% "The required information consists of the IBAN and the BIC." | $T8 %]
[%- ELSE %]
[%- 'No bank information has been entered in this customer\'s master data entry. You cannot create bank collections unless you enter bank information.' | $T8 %]
+ [% "The required information consists of the IBAN, the BIC, the mandator ID and the mandate's date of signature." | $T8 %]
[%- END %]
[%- END %]
diff --git a/templates/webpages/sepa/bank_transfer_create.html b/templates/webpages/sepa/bank_transfer_create.html
index 561baec31..80af4c49d 100644
--- a/templates/webpages/sepa/bank_transfer_create.html
+++ b/templates/webpages/sepa/bank_transfer_create.html
@@ -47,6 +47,10 @@
[% 'IBAN' | $T8 %]
[% 'BIC' | $T8 %]
[% 'Bank' | $T8 %]
+ [% IF vc == 'customer' %]
+
[% 'Mandator ID' | $T8 %]
+
[% 'Mandate Date of Signature' | $T8 %]
+ [%- END %]
[%- FOREACH vbi = VC_BANK_INFO %]
@@ -59,6 +63,10 @@
+ [% IF vc == 'customer' %]
+
+
[% L.date_tag("vc_bank_info[].mandate_date_of_signature", vbi.mandate_date_of_signature) %]
+ [%- END %]
[%- END %]
@@ -113,6 +121,10 @@
+
+ [% 'Sum open amount' | $T8 %]: [% LxERP.format_amount(total_trans, -2) %]
+
+
[%- IF is_vendor %]
diff --git a/templates/webpages/sepa/bank_transfer_edit.html b/templates/webpages/sepa/bank_transfer_edit.html
index b8f209d75..589b3581b 100644
--- a/templates/webpages/sepa/bank_transfer_edit.html
+++ b/templates/webpages/sepa/bank_transfer_edit.html
@@ -33,6 +33,9 @@
[% 'Source bank account' | $T8 %]
[%- END %]
[% 'Amount' | $T8 %]
+ [% IF vc == 'customer' %]
+
[% 'Mandator ID' | $T8 %]
+ [%- END %]
[% 'Reference' | $T8 %]
[% 'Requested execution date' | $T8 %]
[% 'Execution date' | $T8 %]
@@ -44,7 +47,7 @@
[% 'IBAN' | $T8 %]
[% 'BIC' | $T8 %]
[%- IF show_post_payments_button %]
-
+
[% L.date_tag('set_all_execution_date', '', onchange='set_all_execution_date_fields(this);') %]
@@ -73,6 +76,9 @@
[% HTML.escape(item.vc_iban) %]
[% HTML.escape(item.vc_bic) %]
[% HTML.escape(LxERP.format_amount(item.amount, 2)) %]
+ [% IF vc == 'customer' %]
+
[% HTML.escape(item.mandator_id) %]
+ [%- END %]
[% HTML.escape(item.reference) %]
[% HTML.escape(item.requested_execution_date) %]