Fixed missing i18n and some POD and a bug in the javascript for the admin screen of the EU tax plugin.
This commit is contained in:
parent
867aa51507
commit
dabc50f008
2 changed files with 280 additions and 75 deletions
|
|
@ -149,6 +149,7 @@ sub addVATNumber {
|
|||
my $user = shift || $self->session->user;
|
||||
my $localCheckOnly = shift;
|
||||
my $db = $self->session->db;
|
||||
my $i18n = WebGUI::International->new( $self->session, 'TaxDriver_EU' );
|
||||
|
||||
WebGUI::Error::InvalidParam->throw( 'A VAT number is required' )
|
||||
unless $number;
|
||||
|
|
@ -163,7 +164,7 @@ sub addVATNumber {
|
|||
|
||||
# Number contains syntax error does not exist. Do not write the code to the db.
|
||||
if ( !$numberIsValid && $validator->get_last_error_code <= 16 ) {
|
||||
return 'The entered VAT number is invalid.';
|
||||
return $i18n->get('vat number invalid');
|
||||
}
|
||||
|
||||
# Write the code to the db.
|
||||
|
|
@ -176,7 +177,7 @@ sub addVATNumber {
|
|||
0,
|
||||
] );
|
||||
|
||||
return $numberIsValid ? undef : 'Number validation currently not available. Check later.';
|
||||
return $numberIsValid ? undef : $i18n->get('vies unavailable');
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -282,12 +283,12 @@ 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 $i18n = WebGUI::International->new( $session, 'TaxDriver_EU' );
|
||||
|
||||
my $taxGroups = $self->get( 'taxGroups' ) || [];
|
||||
|
||||
tie my %countryOptions, 'Tie::IxHash', (
|
||||
'' => ' - select a country - ',
|
||||
'' => ' - ' . $i18n->get('select country') . ' - ',
|
||||
%EU_COUNTRIES,
|
||||
);
|
||||
|
||||
|
|
@ -308,57 +309,43 @@ sub getConfigurationScreen {
|
|||
$f->selectBox(
|
||||
name => 'shopCountry',
|
||||
value => $self->get( 'shopCountry' ),
|
||||
label => 'Residential country',
|
||||
hoverHelp => 'The country where your shop resides.',
|
||||
label => $i18n->get('shop country'),
|
||||
hoverHelp => $i18n->get('shop country help'),
|
||||
options => \%countryOptions,
|
||||
);
|
||||
$f->template(
|
||||
name => 'userTemplateId',
|
||||
value => $self->get('userTemplateId'),
|
||||
label => 'User screen template',
|
||||
label => $i18n->get('user template'),
|
||||
hoverHelp => $i18n->get('user template help'),
|
||||
namespace => 'TaxDriver/EU/User',
|
||||
);
|
||||
$f->yesNo(
|
||||
name => 'automaticViesApproval',
|
||||
value => $self->get( 'automaticViesApproval' ),
|
||||
label => 'Automatic VIES approval?',
|
||||
value => $self->get('automaticViesApproval'),
|
||||
label => $i18n->get('auto vies approval'),
|
||||
hoverHelp => $i18n->get('auto vies approval help'),
|
||||
);
|
||||
$f->yesNo(
|
||||
name => 'acceptOnViesUnavailable',
|
||||
value => $self->get( 'acceptOnViesUnavailable' ),
|
||||
label => 'Accept VAT numbers when VIES is unavailable?',
|
||||
value => $self->get('acceptOnViesUnavailable'),
|
||||
label => $i18n->get('accept when vies unavailable'),
|
||||
hoverHelp => $i18n->get('accept when vies unavailable help'),
|
||||
);
|
||||
|
||||
$f->submit;
|
||||
my $general = $f->print;
|
||||
|
||||
# VAT groups manager
|
||||
my $vatGroups = '<b>VAT groups</b><br />';
|
||||
$vatGroups .= q{<table><thead><tr><th>Group name</th><th>Rate</th></tr></thead><tbody>};
|
||||
foreach my $group ( @{ $taxGroups} ) {
|
||||
my $deleteUrl = $session->url->page('shop=tax;method=do;do=deleteGroup;groupId=' . $group->{ id });
|
||||
my $makeDefaultUrl = $session->url->page('shop=tax;method=do;do=setDefaultGroup;groupId=' . $group->{ id });
|
||||
|
||||
$vatGroups .=
|
||||
q{<tr><td>}
|
||||
. join( '</td><td>',
|
||||
$group->{ name } . ( $group->{ id } eq $self->get( 'defaultGroup' ) ? '<i>(default)</i>' : '' ),
|
||||
$group->{ rate },
|
||||
qq{<a href="$deleteUrl">delete</a>},
|
||||
qq{<a href="$makeDefaultUrl">Set as default group</a>},
|
||||
)
|
||||
. q{</td></tr>};
|
||||
}
|
||||
$vatGroups .= q{</tbody></table>};
|
||||
$vatGroups =
|
||||
'<b>Add a VAT group</b>'
|
||||
my $vatGroups =
|
||||
'<b>' . $i18n->get('add vat group') . '</b>'
|
||||
. 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 '
|
||||
. WebGUI::Form::hidden( $session, { name => 'shop', value => 'tax' } )
|
||||
. WebGUI::Form::hidden( $session, { name => 'method', value => 'do' } )
|
||||
. WebGUI::Form::hidden( $session, { name => 'do', value => 'addGroup' } )
|
||||
. $i18n->get('group name')
|
||||
. WebGUI::Form::text( $session, { name => 'name' } )
|
||||
. ' Rate '
|
||||
. $i18n->get('rate')
|
||||
. WebGUI::Form::float( $session, { name => 'rate' } )
|
||||
. '%'
|
||||
. WebGUI::Form::submit( $session, { value => 'Add' } )
|
||||
|
|
@ -380,14 +367,17 @@ sub getConfigurationScreen {
|
|||
$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 $generalLabel = $i18n->get('general configuration');
|
||||
my $groupsLabel = $i18n->get('vat groups');
|
||||
my $numbersLabel = $i18n->get('vat numbers');
|
||||
my $output = <<EOHTML;
|
||||
<div class="yui-skin-sam">
|
||||
<div id="webguiTabForm" class="yui-navset">
|
||||
<ul class="yui-nav">
|
||||
<li class="selected"><a href="#tab1" ><em>General configuration</em></a></li>
|
||||
<li><a href="#tab2" ><em>VAT Groups</em></a></li>
|
||||
<li><a href="#tab3"><em>VAT Numbers</em></a></li>
|
||||
<li class="selected"><a href="#tab1" ><em>$generalLabel</em></a></li>
|
||||
<li><a href="#tab2" ><em>$groupsLabel</em></a></li>
|
||||
<li><a href="#tab3"><em>$numbersLabel</em></a></li>
|
||||
</ul>
|
||||
<div class="yui-content">
|
||||
<div id="tab1">$general</div>
|
||||
|
|
@ -404,43 +394,56 @@ sub getConfigurationScreen {
|
|||
<script type="text/javascript"> var tabView = new YAHOO.widget.TabView('webguiTabForm'); </script>
|
||||
EOHTML
|
||||
|
||||
# labels
|
||||
my $groupNameLabel = $i18n->get('group name');
|
||||
my $groupRateLabel = $i18n->get('rate');
|
||||
my $defaultLabel = $i18n->get('default group');
|
||||
my $makeDefaultLabel= $i18n->get('make default');
|
||||
my $deleteLabel = $i18n->get('delete group');
|
||||
my $userIdLabel = $i18n->get('user id');
|
||||
my $vatNumberLabel = $i18n->get('vat number');
|
||||
my $validatedLabel = $i18n->get('vies validated');
|
||||
my $viesErrorLabel = $i18n->get('vies error code');
|
||||
my $approveLabel = $i18n->get('approve');
|
||||
my $denyLabel = $i18n->get('deny');
|
||||
|
||||
# urls
|
||||
my $getTaxGroupsUrl = $url->page( 'shop=tax;method=do;do=getTaxGroupsAsJSON' );
|
||||
my $getVATNumbersUrl = $url->page( 'shop=tax;method=do;do=getVATNumbersAsJSON' );
|
||||
|
||||
$output .= qq|
|
||||
<script type="text/javascript">
|
||||
var beehhh = function() {
|
||||
// Column definitions
|
||||
formatDeleteTaxId = function(elCell, oRecord, oColumn, orderNumber) {
|
||||
elCell.innerHTML = '<a href="|.$url->page(q{shop=tax;method=do;do=deleteTax}).q|;taxId='+oRecord.getData('taxId')+'">|.$i18n->get('delete').q|</a>';
|
||||
};
|
||||
|
||||
var groupColumDefs = [ // sortable:true enables sorting
|
||||
{ key: "name", label:"|.$i18n->get('group label').q|", sortable: true},
|
||||
{ key: "rate", label:"|.$i18n->get('group rate').q|", sortable: true},
|
||||
{ key: "isDefault", label:'', sortable: true, formatter : 'formatMakeDefaultButton' },
|
||||
{ key: "deleteUrl", label:'', sortable: true, formatter: "formatDeleteButton" }
|
||||
{ key: 'name', label:'$groupNameLabel', sortable: true },
|
||||
{ key: 'rate', label:'$groupRateLabel', sortable: true },
|
||||
{ key: 'isDefault', label:'', sortable: false, formatter : 'formatMakeDefaultButton' },
|
||||
{ key: 'deleteUrl', label:'', sortable: false, formatter : 'formatDeleteButton' }
|
||||
];
|
||||
|
||||
// DataSource instance
|
||||
var groupDS = new YAHOO.util.DataSource("|.$url->page('shop=tax;method=do;do=getTaxGroupsAsJSON').q|");
|
||||
var groupDS = new YAHOO.util.DataSource( '$getTaxGroupsUrl' );
|
||||
groupDS.responseType = YAHOO.util.DataSource.TYPE_JSON;
|
||||
groupDS.responseSchema = {
|
||||
resultsList: "records",
|
||||
fields: [
|
||||
{ key : "name", parser : "string" },
|
||||
{ key : "rate", parser : "string" },
|
||||
{ key : "isDefault", parser : "string" },
|
||||
{ key : "deleteUrl" },
|
||||
{ key : 'setDefaultUrl' },
|
||||
{ key : 'id' }
|
||||
{ key : "name", parser : "string" },
|
||||
{ key : "rate", parser : "string" },
|
||||
{ key : "isDefault", parser : "string" },
|
||||
{ key : "deleteUrl" },
|
||||
{ key : 'setDefaultUrl' },
|
||||
{ key : 'id' }
|
||||
]
|
||||
};
|
||||
|
||||
// DataTable configuration
|
||||
var myConfigs = {
|
||||
dynamicData: true, // Enables dynamic server-driven data
|
||||
// dynamicData : true, // Enables dynamic server-driven data
|
||||
};
|
||||
|
||||
// DataTable instance
|
||||
var groupDT = new YAHOO.widget.DataTable("taxGroupTable", groupColumDefs, groupDS, myConfigs);
|
||||
var groupDT = new YAHOO.widget.DataTable( 'taxGroupTable', groupColumDefs, groupDS, myConfigs );
|
||||
|
||||
var reloadTable = function ( dt ) {
|
||||
dt.getDataSource().sendRequest( '', {
|
||||
|
|
@ -453,10 +456,10 @@ EOHTML
|
|||
|
||||
YAHOO.widget.DataTable.Formatter.formatMakeDefaultButton = function (elCell, oRecord, oColumn, oData) {
|
||||
if ( oRecord.getData('isDefault') === '1' ) {
|
||||
elCell.innerHTML = 'Default group';
|
||||
elCell.innerHTML = '$defaultLabel';
|
||||
}
|
||||
else {
|
||||
var button = new YAHOO.widget.Button( { label : 'Make default', container: elCell } );
|
||||
var button = new YAHOO.widget.Button( { label : '$makeDefaultLabel', container: elCell } );
|
||||
button.addListener( 'click', function () {
|
||||
YAHOO.util.Connect.asyncRequest( 'GET', oRecord.getData('setDefaultUrl'), { success : reloadGroupDT } );
|
||||
} );
|
||||
|
|
@ -466,7 +469,7 @@ EOHTML
|
|||
YAHOO.widget.DataTable.Formatter.formatDeleteButton = function (elCell, oRecord, oColumn, oData) {
|
||||
var datatable = this;
|
||||
|
||||
var button = new YAHOO.widget.Button( { label : 'Delete', container: elCell } );
|
||||
var button = new YAHOO.widget.Button( { label : '$deleteLabel', container: elCell } );
|
||||
button.addListener( 'click', function () {
|
||||
YAHOO.util.Connect.asyncRequest( 'GET', oRecord.getData('deleteUrl'), { success : reloadGroupDT } );
|
||||
} );
|
||||
|
|
@ -485,15 +488,15 @@ EOHTML
|
|||
//===============================================================
|
||||
|
||||
var vatColumDefs = [
|
||||
{ key: "userId", label : 'user id', sortable: true},
|
||||
{ key: "vatNumber", label : 'vat number', sortable: true},
|
||||
{ key: "viesValidated", label : 'VIES Validated' },
|
||||
{ key: "viesErrorCode", label : 'VIES Error code' },
|
||||
{ key: "approvebutton", label :'', formatter : 'formatApproveButton' },
|
||||
{ key: "denyButton", label :'', formatter : 'formatDenyButton' }
|
||||
{ key: "userId", label : '$userIdLabel', sortable : true },
|
||||
{ key: "vatNumber", label : '$vatNumberLabel', sortable : true },
|
||||
{ key: "viesValidated", label : '$validatedLabel', sortable : true },
|
||||
{ key: "viesErrorCode", label : '$viesErrorLabel', sortable : false },
|
||||
{ key: "approvebutton", label : '', formatter : 'formatApproveButton' },
|
||||
{ key: "denyButton", label : '', formatter : 'formatDenyButton' }
|
||||
];
|
||||
|
||||
var vatDS = new YAHOO.util.DataSource("|.$url->page('shop=tax;method=do;do=getVATNumbersAsJSON').q|");
|
||||
var vatDS = new YAHOO.util.DataSource( '$getVATNumbersUrl' );
|
||||
vatDS.responseType = YAHOO.util.DataSource.TYPE_JSON;
|
||||
vatDS.responseSchema = {
|
||||
resultsList: "records",
|
||||
|
|
@ -517,7 +520,7 @@ EOHTML
|
|||
YAHOO.widget.DataTable.Formatter.formatApproveButton = function (elCell, oRecord, oColumn, oData) {
|
||||
var datatable = this;
|
||||
|
||||
var button = new YAHOO.widget.Button( { label : 'Approve', container: elCell } );
|
||||
var button = new YAHOO.widget.Button( { label : '$approveLabel', container: elCell } );
|
||||
button.addListener( 'click', function () {
|
||||
YAHOO.util.Connect.asyncRequest( 'GET', oRecord.getData('approveUrl'), { success : reloadVatDT } );
|
||||
} );
|
||||
|
|
@ -526,7 +529,7 @@ EOHTML
|
|||
YAHOO.widget.DataTable.Formatter.formatDenyButton = function (elCell, oRecord, oColumn, oData) {
|
||||
var datatable = this;
|
||||
|
||||
var button = new YAHOO.widget.Button( { label : 'Deny', container: elCell } );
|
||||
var button = new YAHOO.widget.Button( { label : '$denyLabel', container: elCell } );
|
||||
button.addListener( 'click', function () {
|
||||
YAHOO.util.Connect.asyncRequest( 'GET', oRecord.getData('denyUrl'), { success : reloadVatDT } );
|
||||
} );
|
||||
|
|
@ -613,6 +616,7 @@ sub getUserScreen {
|
|||
my $self = shift;
|
||||
my $url = $self->session->url;
|
||||
my $var = {};
|
||||
my $i18n = WebGUI::International->new( $self->session, 'TaxDriver_EU' );
|
||||
|
||||
$var->{ errorMessage } = $self->session->stow->get( 'userTaxError' );
|
||||
|
||||
|
|
@ -643,10 +647,10 @@ sub getUserScreen {
|
|||
);
|
||||
$f->text(
|
||||
name => 'vatNumber',
|
||||
label => 'VAT Number',
|
||||
label => $i18n->get('vat number'),
|
||||
);
|
||||
$f->submit(
|
||||
value => 'Add',
|
||||
value => $i18n->get('add'),
|
||||
);
|
||||
|
||||
$var->{ addVatNumber_form } = $f->print;
|
||||
|
|
@ -786,6 +790,17 @@ sub hasVATNumber {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
=head2 isUsableVATNumber ( number )
|
||||
|
||||
Returns a boolean whether or not the given number can be used within the constraints set by the admin.
|
||||
|
||||
=head3 number
|
||||
|
||||
Hashref containing at least the keys 'approved', 'viesValidated' and 'viesErrorCode'. Usually this is just the
|
||||
quickHashRef result for the row in the db corresponding to the number.
|
||||
|
||||
=cut
|
||||
|
||||
sub isUsableVATNumber {
|
||||
my $self = shift;
|
||||
my $vat = shift;
|
||||
|
|
@ -806,7 +821,7 @@ Returns a hash ref containing the form defintion for the per sku options for thi
|
|||
|
||||
sub skuFormDefinition {
|
||||
my $self = shift;
|
||||
|
||||
my $i18n = WebGUI::International->new( $self->session, 'TaxDriver_EU' );
|
||||
my $taxGroups = $self->get( 'taxGroups' );
|
||||
|
||||
# If no tax groups are defined there's no need to add a form element.
|
||||
|
|
@ -819,7 +834,7 @@ sub skuFormDefinition {
|
|||
tie my %definition, 'Tie::IxHash', (
|
||||
taxGroup => {
|
||||
fieldType => 'selectBox',
|
||||
label => 'Tax group',
|
||||
label => $i18n->get('vat group'),
|
||||
options => \%options,
|
||||
}
|
||||
);
|
||||
|
|
@ -861,6 +876,7 @@ sub www_addVATNumber {
|
|||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my ($db, $form) = $session->quick( qw{ db form } );
|
||||
my $i18n = WebGUI::International->new( $session, 'TaxDriver_EU' );
|
||||
|
||||
return $session->privilege->insufficient if $session->user->isVisitor;
|
||||
|
||||
|
|
@ -868,9 +884,9 @@ sub www_addVATNumber {
|
|||
my ($countryCode, $number) = $vatNumber =~ m/^([A-Z]{2})([A-Z0-9]+)$/;
|
||||
|
||||
my $errorMessage;
|
||||
$errorMessage = 'Illegal country code' unless isIn( $countryCode, keys %EU_COUNTRIES );
|
||||
$errorMessage = 'You already have a VAT number for this country.' if @{ $self->getVATNumbers( $countryCode ) };
|
||||
$errorMessage = $self->addVATNumber( $vatNumber ) unless $errorMessage;
|
||||
$errorMessage = $i18n->get('illegal country code') unless isIn( $countryCode, keys %EU_COUNTRIES );
|
||||
$errorMessage = $i18n->get('already has vat number') if @{ $self->getVATNumbers( $countryCode ) };
|
||||
$errorMessage = $self->addVATNumber( $vatNumber ) unless $errorMessage;
|
||||
|
||||
$self->session->stow->set( 'userTaxError', $errorMessage );
|
||||
|
||||
|
|
|
|||
189
lib/WebGUI/i18n/English/TaxDriver_EU.pm
Normal file
189
lib/WebGUI/i18n/English/TaxDriver_EU.pm
Normal file
|
|
@ -0,0 +1,189 @@
|
|||
package WebGUI::i18n::English::TaxDriver_EU;
|
||||
|
||||
our $I18N = {
|
||||
|
||||
'vat number invalid' => {
|
||||
message => q|The entered VAT number is invalid.|,
|
||||
lastUpdated => 0,
|
||||
context => q|An error message|,
|
||||
},
|
||||
|
||||
'vies unavailable' => {
|
||||
message => q|Number validation currently not available. Check later.|,
|
||||
lastUpdated => 0,
|
||||
context => q|An error message|,
|
||||
},
|
||||
|
||||
'select country' => {
|
||||
message => q|select a country|,
|
||||
lastUpdated => 0,
|
||||
context => q|Option of a select list in admin screen|,
|
||||
},
|
||||
|
||||
'shop country' => {
|
||||
message => q|Residential country|,
|
||||
lastUpdated => 0,
|
||||
context => q|Form label in admin screen|,
|
||||
},
|
||||
|
||||
'shop country help' => {
|
||||
message => q|Select the country where your shop resides. If your country does not appear in the select list, your country does not reside within the European Union and you cannot use this tax plugin.|,
|
||||
lastUpdated => 0,
|
||||
context => 'Hover help in the admin screen',
|
||||
},
|
||||
|
||||
'user template' => {
|
||||
message => q|User screen template|,
|
||||
lastUpdated => 0,
|
||||
context => 'Form label in admin screen',
|
||||
},
|
||||
|
||||
'user template help' => {
|
||||
message => q|The template for the user screen where users can enter their VAT numbers.|,
|
||||
lastUpdated => 0,
|
||||
context => 'Hover help in the admin screen',
|
||||
},
|
||||
|
||||
'auto vies approval' => {
|
||||
message => q|Automatic VIES approval?|,
|
||||
lastUpdated => 0,
|
||||
context => 'Form label in admin screen',
|
||||
},
|
||||
|
||||
'auto vies approval help' => {
|
||||
message => q|If you set this to yes, VAT numbers that are validated through the VIES service are directly usable by your customers. If set to no, only VAT numbers that have been expicitly approved by you are usable.|,
|
||||
lastUpdated => 0,
|
||||
context => 'Hover help in the admin screen',
|
||||
},
|
||||
|
||||
'accept when vies unavailable' => {
|
||||
message => q|Accept unvalidated VAT numbers when VIES is unavailable?|,
|
||||
lastUpdated => 0,
|
||||
context => 'Form label in admin screen',
|
||||
},
|
||||
|
||||
'accept when vies unavailable help' => {
|
||||
message => q|If one of the VIES member states' databases is temporarily unavailable or the connection to VIES failed VAT numbers cannot be checked through this service. Normally this is a temporray problem. If you set this option to yes VAT numbers that could not be checked because of such an event are usable anyway. Note that the format of VAT numbers is always checked, regardless of the availability of VIES.|,
|
||||
lastUpdated => 0,
|
||||
context => 'Hover help in the admin screen',
|
||||
},
|
||||
|
||||
'group name' => {
|
||||
message => q|Group name|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label for the group name column in the VAT group manager|,
|
||||
},
|
||||
|
||||
'rate' => {
|
||||
message => q|Rate|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label for the group rate column in the VAT group manager|,
|
||||
},
|
||||
|
||||
'add vat group' => {
|
||||
message => q|Add a VAT group|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label in the VAT group manager|,
|
||||
},
|
||||
|
||||
'general configuration' => {
|
||||
message => q|General configuration|,
|
||||
lastUpdated => 0,
|
||||
context => 'Tab label in admin screen',
|
||||
},
|
||||
|
||||
'vat groups' => {
|
||||
message => 'VAT Groups',
|
||||
lastUpdated => 0,
|
||||
context => 'Tab label in admin screen',
|
||||
},
|
||||
|
||||
'vat numbers' => {
|
||||
message => 'VAT Numbers',
|
||||
lastUpdated => 0,
|
||||
context => 'Tab label in admin screen',
|
||||
},
|
||||
|
||||
'default group' => {
|
||||
message => q|Default group|,
|
||||
lastUpadated => 0,
|
||||
context => q|Flag in VAT group manager|,
|
||||
},
|
||||
|
||||
'make default' => {
|
||||
message => q|Make default|,
|
||||
lastUpdated => 0,
|
||||
context => q|Button label in VAT group manager|,
|
||||
},
|
||||
|
||||
'delete group' => {
|
||||
message => q|Delete|,
|
||||
lastUpdated => 0,
|
||||
context => q|Button label in VAT group manager|,
|
||||
},
|
||||
|
||||
'user id' => {
|
||||
message => q|User id|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label in the VAT number manager|,
|
||||
},
|
||||
|
||||
'vat number' => {
|
||||
message => q|VAT number|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label in the VAT number manager|,
|
||||
},
|
||||
|
||||
'vies validated' => {
|
||||
message => q|VIES validated|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label in the VAT number manager|,
|
||||
},
|
||||
|
||||
'vies error code' => {
|
||||
message => q|VIES error code|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label in the VAT number manager|,
|
||||
},
|
||||
|
||||
'approve' => {
|
||||
message => q|Approve|,
|
||||
lastUpdated => 0,
|
||||
context => q|Button label in the VAT number manager|,
|
||||
},
|
||||
|
||||
'deny' => {
|
||||
message => q|Deny|,
|
||||
lastUpdated => 0,
|
||||
context => q|Button label in the VAT number manager|,
|
||||
},
|
||||
|
||||
'add' => {
|
||||
message => q|Add|,
|
||||
lastUpdated => 0,
|
||||
context => q|Button label in the user screen|,
|
||||
},
|
||||
|
||||
'vat group' => {
|
||||
message => q|VAT group|,
|
||||
lastUpdated => 0,
|
||||
context => q|Label in the SKU edit form|,
|
||||
},
|
||||
|
||||
'illegal country code' => {
|
||||
message => q|Illegal country code|,
|
||||
lastUpdated => 0,
|
||||
context => q|Error message on adding vat number|,
|
||||
},
|
||||
|
||||
'already has vat number' => {
|
||||
message => q|You have already registered a VAT number for this country.|,
|
||||
lastUpdated => 0,
|
||||
context => q|Error message on adding vat number|,
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
|
||||
1;
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue