From d4a884c202a92c7448898a295c6ebe784a5677b2 Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Fri, 15 May 2009 14:35:09 +0000 Subject: [PATCH] Tax group manager improvements --- lib/WebGUI/Shop/TaxDriver/EU.pm | 127 +++++++++++++++++++++++++++++++- lib/WebGUI/i18n/English/Shop.pm | 13 ++++ 2 files changed, 136 insertions(+), 4 deletions(-) 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 {
$general
-
$vatGroups
+
+
+
$vatGroups
+
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;