diff --git a/lib/WebGUI/Shop/TaxDriver/EU.pm b/lib/WebGUI/Shop/TaxDriver/EU.pm
index e75429eaa..b772790f0 100644
--- a/lib/WebGUI/Shop/TaxDriver/EU.pm
+++ b/lib/WebGUI/Shop/TaxDriver/EU.pm
@@ -20,7 +20,10 @@ use SOAP::Lite;
use WebGUI::Content::Account;
use WebGUI::TabForm;
use WebGUI::Utility qw{ isIn };
+use WebGUI::International;
+
use Business::Tax::VAT::Validation;
+use JSON qw{ to_json };
use Tie::IxHash;
use base qw{ WebGUI::Shop::TaxDriver };
@@ -279,6 +282,7 @@ Returns the form that contains the configuration options for this plugin in the
sub getConfigurationScreen {
my $self = shift;
my $session = $self->session;
+ my $i18n = WebGUI::International->new( $session, 'Shop' );
my $taxGroups = $self->get( 'taxGroups' ) || [];
@@ -329,12 +333,13 @@ sub getConfigurationScreen {
. q{};
}
$vatGroups .= q{};
- $vatGroups .=
- WebGUI::Form::formHeader( $session )
+ $vatGroups =
+ 'Add a VAT group'
+ . WebGUI::Form::formHeader( $session, { extras => 'id="addGroupForm"' } )
. WebGUI::Form::hidden( $session, { name => 'shop', value => 'tax' } )
. WebGUI::Form::hidden( $session, { name => 'method', value => 'do' } )
. WebGUI::Form::hidden( $session, { name => 'do', value => 'addGroup' } )
- . 'Name '
+ . ' Name '
. WebGUI::Form::text( $session, { name => 'name' } )
. ' Rate '
. WebGUI::Form::float( $session, { name => 'rate' } )
@@ -347,12 +352,17 @@ sub getConfigurationScreen {
$style->setLink($self->{_css},{rel=>"stylesheet", rel=>"stylesheet",type=>"text/css"});
$style->setLink($url->extras('/yui/build/fonts/fonts-min.css'),{type=>"text/css", rel=>"stylesheet"});
$style->setLink($url->extras('/yui/build/tabview/assets/skins/sam/tabview.css'),{type=>"text/css", rel=>"stylesheet"});
+ $style->setLink($url->extras('/yui/build/button/assets/skins/sam/button.css'),{type=>"text/css", rel=>"stylesheet"});
$style->setLink($url->extras('/yui/build/container/assets/container.css'),{ type=>'text/css', rel=>"stylesheet" });
$style->setLink($url->extras('/hoverhelp.css'),{ type=>'text/css', rel=>"stylesheet" });
+ $style->setLink($url->extras('yui/build/datatable/assets/skins/sam/datatable.css'), {rel=>'stylesheet', type => 'text/CSS'});
$style->setScript($url->extras('/yui/build/utilities/utilities.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/yui/build/container/container-min.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/yui/build/tabview/tabview-min.js'),{ type=>'text/javascript' });
$style->setScript($url->extras('/hoverhelp.js'),{ type=>'text/javascript' });
+ $style->setScript($url->extras('yui/build/datasource/datasource-min.js'), {type => 'text/javascript'});
+ $style->setScript($url->extras('yui/build/datatable/datatable-min.js'), {type => 'text/javascript'});
+ $style->setScript($url->extras('yui/build/button/button-min.js'), {type => 'text/javascript'});
my $output = <
@@ -363,13 +373,102 @@ sub getConfigurationScreen {
EOHTML
+ $output .= qq|
+
+ |;
+
return $output;
}
@@ -742,6 +841,26 @@ sub www_deleteVATNumber {
return $instance->displayContent( $instance->callMethod("manageTaxData", [], $session->user->userId) );
}
+#-------------------------------------------------------------------
+sub www_getTaxGroupsAsJSON {
+ my $self = shift;
+ my $url = $self->session->url;
+
+ my $taxGroups = $self->get('taxGroups') || [];
+
+ foreach my $group ( @{ $taxGroups} ) {
+ my $id = $group->{ id };
+
+ $group->{ deleteUrl } = $url->page( 'shop=tax;method=do;do=deleteGroup;groupId=' . $id );
+ $group->{ setDefaultUrl } = $url->page( 'shop=tax;method=do;do=setDefaultGroup;groupId=' . $id );
+ $group->{ isDefault } = 1 if $id eq $self->get( 'defaultGroup' );
+ }
+
+ $self->session->http->setMimeType( 'application/json' );
+ return to_json( { records => $taxGroups } );
+}
+
+
#-------------------------------------------------------------------
=head2 www_saveConfiguration
diff --git a/lib/WebGUI/i18n/English/Shop.pm b/lib/WebGUI/i18n/English/Shop.pm
index 6b37a52de..ece5ac611 100644
--- a/lib/WebGUI/i18n/English/Shop.pm
+++ b/lib/WebGUI/i18n/English/Shop.pm
@@ -1634,6 +1634,19 @@ our $I18N = {
lastUpdated => 0,
context => q|Button label in the edit address screen.|,
},
+
+ 'group label' => {
+ message => q|Label|,
+ lastUpdated => 0,
+ context => q|Label in the EU tax manager|,
+ },
+
+ 'group rate' => {
+ message => q|Tax rate|,
+ lastUpdated => 0,
+ context => q|Label in the EU tax manager|,
+ },
+
};
1;