From: Moritz Bunkus Date: Wed, 4 Apr 2018 07:37:29 +0000 (+0200) Subject: Merge pull request #18 from robert-scheck/vatno X-Git-Tag: release-3.5.4~436 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/001f0168070d166b1a6fa44f52fd9dd0396ab7f7?hp=d5c7291d8adcad4d63e12e788393f5aaf3469e6c Merge pull request #18 from robert-scheck/vatno Use consistently shortening "USt-IdNr." according to German BZSt --- diff --git a/.htaccess b/.htaccess index 66862278a..977b220d9 100644 --- a/.htaccess +++ b/.htaccess @@ -1,11 +1,19 @@ ### Choose a character set (just in case you like to change it here) -### uncommit the line you wish to activate +### uncomment the line you wish to activate #AddDefaultCharset ISO-8859-15 #AddDefaultCharset UTF-8 ### simple access control by client ip -### uncomment the lines starting with Order ..., Deny ... and Allow ... -### examples: "Allow from 192.168" or "Allow from 192.168.1" or "Allow from 192.168.178" or "Allow from 217.84.201.2" -#Order deny,allow -#Deny from all -#Allow from 192.168 +### uncomment the lines starting with until last +### examples for Apache >= 2.4: "Require ip 192.168" or "Require ip 192.168.1" or "Require ip 192.168.178" or "Require ip 217.84.201.2" +### examples for Apache <= 2.2: "Allow from 192.168" or "Allow from 192.168.1" or "Allow from 192.168.178" or "Allow from 217.84.201.2" +# +# # Apache 2.4 +# Require ip 192.168 +# +# +# # Apache 2.2 +# Order deny,allow +# Deny from all +# Allow from 192.168 +# diff --git a/SL/.htaccess b/SL/.htaccess index 0a9a0473a..cde5b4437 100644 --- a/SL/.htaccess +++ b/SL/.htaccess @@ -1,2 +1,9 @@ -Order Allow,Deny -Deny from all + + # Apache 2.4 + Require all denied + + + # Apache 2.2 + Order deny,allow + Deny from all + diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index b3477b2e3..36896ee11 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -137,32 +137,44 @@ sub action_save { sub action_save_as_new { my ($self) = @_; - if (!$self->order->id) { + my $order = $self->order; + + if (!$order->id) { $self->js->flash('error', t8('This object has not been saved yet.')); return $self->js->render(); } - delete $::form->{$_} for qw(closed delivered converted_from_oe_id converted_from_orderitems_ids); - - my $src_order = SL::DB::Order->new(id => $self->order->id)->load; + # load order from db to check if values changed + my $saved_order = SL::DB::Order->new(id => $order->id)->load; + my %new_attrs; # Lets assign a new number if the user hasn't changed the previous one. # If it has been changed manually then use it as-is. - if (trim($self->order->number) eq $src_order->number) { - $self->order->number(''); - } + $new_attrs{number} = (trim($order->number) eq $saved_order->number) + ? '' + : trim($order->number); - # Clear reqdate and transdate unless changed - if ($self->order->transdate == $src_order->transdate) { - $self->order->transdate(DateTime->today_local) - } - if ($self->order->reqdate == $src_order->reqdate) { + # Clear transdate unless changed + $new_attrs{transdate} = ($order->transdate == $saved_order->transdate) + ? DateTime->today_local + : $order->transdate; + + # Set new reqdate unless changed + if ($order->reqdate == $saved_order->reqdate) { my $extra_days = $self->type eq _sales_quotation_type() ? $::instance_conf->get_reqdate_interval : 1; - $self->order->reqdate(DateTime->today_local->next_workday(extra_days => $extra_days)); + $new_attrs{reqdate} = DateTime->today_local->next_workday(extra_days => $extra_days); + } else { + $new_attrs{reqdate} = $order->reqdate; } # Update employee - $self->order->employee(SL::DB::Manager::Employee->current); + $new_attrs{employee} = SL::DB::Manager::Employee->current; + + # Create new record from current one + $self->order(SL::DB::Order->new_from($order, destination_type => $order->type, attributes => \%new_attrs)); + + # no linked records on save as new + delete $::form->{$_} for qw(converted_from_oe_id converted_from_orderitems_ids); # save $self->action_save(); diff --git a/SL/DB/Order.pm b/SL/DB/Order.pm index 31f6ad4a3..6baa0e20d 100644 --- a/SL/DB/Order.pm +++ b/SL/DB/Order.pm @@ -205,8 +205,12 @@ sub new_from { croak("A destination type must be given parameter") unless $params{destination_type}; my $destination_type = delete $params{destination_type}; - my $src_dst_allowed = ('sales_quotation' eq $source->type && 'sales_order' eq $destination_type) - || ('request_quotation' eq $source->type && 'purchase_order' eq $destination_type); + my $src_dst_allowed = ('sales_quotation' eq $source->type && 'sales_order' eq $destination_type) + || ('request_quotation' eq $source->type && 'purchase_order' eq $destination_type) + || ('sales_quotation' eq $source->type && 'sales_quotation' eq $destination_type) + || ('sales_order' eq $source->type && 'sales_order' eq $destination_type) + || ('request_quotation' eq $source->type && 'request_quotation' eq $destination_type) + || ('purchase_order' eq $source->type && 'purchase_order' eq $destination_type); croak("Cannot convert from '" . $source->type . "' to '" . $destination_type . "'") unless $src_dst_allowed; my ($item_parent_id_column, $item_parent_column); @@ -221,7 +225,7 @@ sub new_from { ordnumber payment_id quonumber reqdate salesman_id shippingpoint shipvia taxincluded taxzone_id transaction_description vendor_id )), - quotation => 0, + quotation => !!($destination_type =~ m{quotation$}), closed => 0, delivered => 0, transdate => DateTime->today_local, @@ -229,7 +233,7 @@ sub new_from { # Custom shipto addresses (the ones specific to the sales/purchase # record and not to the customer/vendor) are only linked from - # shipto → delivery_orders. Meaning delivery_orders.shipto_id + # shipto → order. Meaning order.shipto_id # will not be filled in that case. if (!$source->shipto_id && $source->id) { $args{custom_shipto} = $source->custom_shipto->clone($class) if $source->can('custom_shipto') && $source->custom_shipto; @@ -372,7 +376,8 @@ At the moment only sales quotations and sales orders can be converted. =head2 C Creates a new C instance and copies as much -information from C<$source> as possible. At the moment only sales orders from +information from C<$source> as possible. At the moment only records with the +same destination type as the source type and sales orders from sales quotations and purchase orders from requests for quotations can be created. @@ -391,8 +396,8 @@ C<%params> can include the following options =item C (mandatory) -The type of the newly created object. Can be C or -C for now. +The type of the newly created object. Can be C, +C, C or C for now. =item C diff --git a/bin/mozilla/.htaccess b/bin/mozilla/.htaccess index 0a9a0473a..cde5b4437 100644 --- a/bin/mozilla/.htaccess +++ b/bin/mozilla/.htaccess @@ -1,2 +1,9 @@ -Order Allow,Deny -Deny from all + + # Apache 2.4 + Require all denied + + + # Apache 2.2 + Order deny,allow + Deny from all + diff --git a/config/.htaccess b/config/.htaccess index 0a9a0473a..cde5b4437 100644 --- a/config/.htaccess +++ b/config/.htaccess @@ -1,2 +1,9 @@ -Order Allow,Deny -Deny from all + + # Apache 2.4 + Require all denied + + + # Apache 2.2 + Order deny,allow + Deny from all + diff --git a/locale/.htaccess b/locale/.htaccess index 0a9a0473a..cde5b4437 100644 --- a/locale/.htaccess +++ b/locale/.htaccess @@ -1,2 +1,9 @@ -Order Allow,Deny -Deny from all + + # Apache 2.4 + Require all denied + + + # Apache 2.2 + Order deny,allow + Deny from all + diff --git a/scripts/.htaccess b/scripts/.htaccess index 0a9a0473a..cde5b4437 100644 --- a/scripts/.htaccess +++ b/scripts/.htaccess @@ -1,2 +1,9 @@ -Order Allow,Deny -Deny from all + + # Apache 2.4 + Require all denied + + + # Apache 2.2 + Order deny,allow + Deny from all + diff --git a/t/.htaccess b/t/.htaccess index 0a9a0473a..cde5b4437 100644 --- a/t/.htaccess +++ b/t/.htaccess @@ -1,2 +1,9 @@ -Order Allow,Deny -Deny from all + + # Apache 2.4 + Require all denied + + + # Apache 2.2 + Order deny,allow + Deny from all + diff --git a/templates/.htaccess b/templates/.htaccess index 0a9a0473a..cde5b4437 100644 --- a/templates/.htaccess +++ b/templates/.htaccess @@ -1,2 +1,9 @@ -Order Allow,Deny -Deny from all + + # Apache 2.4 + Require all denied + + + # Apache 2.2 + Order deny,allow + Deny from all +