Commit f6f69234 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

V0.1: First working version of the EU sales report plugin, including export...

V0.1: First working version of the EU sales report plugin, including export functionality for AT and DE
parent 163a9696
......@@ -9,7 +9,8 @@ MVCFILES=controllers/ models/ views/
SYSTRANSLATIONS=$(call wildcard,language/*/*.plg_$(PLUGINTYPE)_$(BASE).*sys.ini)
NONSYSTRANSLATIONS=${SYSTRANSLATIONS:%.sys.ini=%.ini}
TRANSLATIONS=$(SYSTRANSLATIONS) $(NONSYSTRANSLATIONS) $(call wildcard,language/*/index.html) language/index.html
FIELDS=$(call wildcard,fields/*.php)
FIELDS=fields/
ELEMENTS=elements/
ZIPFILE=plg_$(PLUGINTYPE)_$(BASE)_v$(VERSION).zip
......@@ -20,7 +21,7 @@ $(NONSYSTRANSLATIONS): %.ini: %.sys.ini
zip: $(PLUGINFILES) $(TRANSLATIONS) $(SYSTRANSLATIONS) $(NONSYSTRANSLATIONS)
@echo "Packing all files into distribution file $(ZIPFILE):"
@zip -r $(ZIPFILE) $(PLUGINFILES) $(MVCFILES) $(TRANSLATIONS) $(FIELDS)
@zip -r $(ZIPFILE) $(PLUGINFILES) $(MVCFILES) $(TRANSLATIONS) $(FIELDS) $(ELEMENTS)
clean:
rm -f $(ZIPFILE)
......@@ -38,6 +38,11 @@ class VirtuemartControllerEuRecap extends VmController {
$this->addViewPath(JPATH_PLUGINS.DS . 'vmextended' . DS . 'eurecap' . DS . 'views');
}
public function cancel(){
$msg = vmText::_('VMEXT_EU_RECAP_CANCELLED');
$this->setRedirect($this->redirectPath, $msg, 'message');
}
function settings($layout='settings'){
vRequest::setVar('controller', $this->_cname);
......@@ -53,18 +58,17 @@ class VirtuemartControllerEuRecap extends VmController {
$this->display();
}
function export($layout='csv'){
function export(){
vRequest::setVar('controller', $this->_cname);
vRequest::setVar('view', $this->_cname);
vRequest::setVar('layout', $layout);
// vRequest::setVar('layout', $layout);
// $this->addViewPath(VMPATH_ADMIN . DS . 'views');
$document = JFactory::getDocument();
$viewType = $document->getType();
$view = $this->getView($this->_cname, $viewType);
$view->setLayout($layout);
// $view->setLayout($layout);
$this->display();
}
......
<?php
defined('_JEXEC') or die();
/**
*
* @package VirtueMart
* @subpackage Plugins - Elements
* @author Valérie Isaksen, adapted by Reinhold Kainhofer for EU countries
* @link http://www.virtuemart.net
* @copyright Copyright (c) 2004 - 2011 VirtueMart Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* @version $Id: $
*/
/*
* This class is used by VirtueMart Payment or Shipment Plugins
* which uses JParameter
* So It should be an extension of JElement
* Those plugins cannot be configured througth the Plugin Manager anyway.
*/
class JElementEUCountries extends JElement {
/**
* Element name
* @access protected
* @var string
*/
var $_name = 'euCountries';
function fetchElement($name, $value, &$node, $control_name) {
$db = JFactory::getDBO();
$query = 'SELECT `virtuemart_country_id` AS value, `country_name` AS text FROM `#__virtuemart_countries`
WHERE `published` = 1 AND `country_2_code` IN ("AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SI", "SK", "ES", "SE", "GB") ORDER BY `country_name` ASC ';
$db->setQuery($query);
$fields = $db->loadObjectList();
$class = ($node->attributes('class') ? 'class="' . $node->attributes('class') . '"' : '');
$class = 'multiple="true" size="10" ';
return JHTML::_('select.genericlist', $fields, $control_name . '[' . $name . '][]', $class, 'value', 'text', $value, $control_name . $name);
}
}
\ No newline at end of file
<?php
defined ('_JEXEC') or die();
/**
*
* @package VirtueMart
* @subpackage Plugins - Elements
* @author Valérie Isaksen
* @link http://www.virtuemart.net
* @copyright Copyright (c) 2004 - 2011 VirtueMart Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* @version $Id:$
*/
if (!class_exists('VmConfig')) require(JPATH_VM_ADMINISTRATOR.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php');
if(!class_exists('VmModel')) require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'vmmodel.php');
/*
* This class is used by VirtueMart Payment or Shipment Plugins
* which uses JParameter
* So It should be an extension of JElement
* Those plugins cannot be configured througth the Plugin Manager anyway.
*/
class JElementVmOrderStates extends JElement {
/**
* Element name
*
* @access protected
* @var string
*/
var $_name = 'OrderStates';
function fetchElement ($name, $value, &$node, $control_name) {
$statusModel = VmModel::getModel('OrderStatus');
$fields = $statusModel->getOrderStatusNames();
$class = 'class="inputbox" multiple="multiple" size="6" ';
return JHTML::_ ('select.genericlist', $fields, $control_name . '[' . $name . '][]', $class, 'order_status_code', 'order_status_name', $value, $control_name . $name, true);
}
}
<?php
defined('_JEXEC') or die();
/**
*
* @package VirtueMart
* @subpackage Plugins - Elements
* @author Valérie Isaksen
* @link http://www.virtuemart.net
* @copyright ${PHING.VM.COPYRIGHT}
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* @version $Id$
*/
if (!class_exists('JElementList')) require_once(JPATH_LIBRARIES.DS.'joomla'.DS.'html'.DS.'parameter'.DS.'element'.DS.'list.php');
class JELementVmShopperGroups extends JElementList {
var $_name = 'vmShopperGroups';
protected function _getOptions(&$node) {
VmConfig::loadJLang('com_virtuemart_orders', TRUE);
$options = array();
$db = JFactory::getDBO();
$query = 'SELECT `virtuemart_shoppergroup_id` AS value, `shopper_group_name` AS text
FROM `#__virtuemart_shoppergroups`
WHERE `virtuemart_vendor_id` = 1
ORDER BY `ordering` ASC, `virtuemart_shoppergroup_id` ASC ';
$db->setQuery($query);
$values = $db->loadObjectList();
foreach ($values as $value) {
$options[] = JHtml::_('select.option', $value->value, vmText::_($value->text));
}
return $options;
}
}
\ No newline at end of file
<?php
defined('_JEXEC') or die();
/**
*
* @package VirtueMart
* @subpackage Plugins - Userfields Form Field
* @author Reinhold Kainhofer, Open Tools
* @link http://www.open-tools.net
* @copyright Copyright (c) 2015 Reinhold Kainhofer. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
if (!class_exists('JElementList')) require_once(JPATH_LIBRARIES.DS.'joomla'.DS.'html'.DS.'parameter'.DS.'element'.DS.'list.php');
class JELementVmUserFields extends JElementList {
var $_name = 'vmUserFields';
protected function _getOptions(&$node) {
$model = VmModel::getModel('userfields');
$userfields = $model->getUserfieldsList();
$options = array();
foreach ($userfields as $field) {
if ($field->published) {
$options[] = JHtml::_ ('select.option', $field->name, JText::_($field->title) . " (" . $field->name . ")");
}
}
return $options;
}
}
\ No newline at end of file
......@@ -73,5 +73,32 @@ class plgVmExtendedEuRecap extends vmExtendedPlugin {
),
);
}
/**
* A helper function for the plugin installer: In VM 3.0.? the onVmAdminMenuItems trigger was added, which allows to dynamically
* add admin menu items to the the backend. In earlier versions, we need to hardcode the menu item to the database. This function
* decides whether the database entry is needed and if so, it adds it (otherwise it removes it, just in case).
*/
public function onInstallCheckAdminMenuEntries() {
$vmver = vmVersion::$RELEASE;
$db = JFactory::getDBO();
$db->setQuery("SELECT `id` FROM `#__virtuemart_adminmenuentries` WHERE `view` = 'eurecap'");
$exists = $db->loadResult();
if (version_compare($vmver, '3.0.3', 'lt')) {
if (!$exists) {
// Before VM 3.0.3 => Need database entry (in the "Orders" section):
$q = "INSERT INTO `#__virtuemart_adminmenuentries` (`module_id`, `name`, `link`, `depends`, `icon_class`, `ordering`, `published`, `tooltip`, `view`, `task`) VALUES
(2, '" . vmText::_('COM_VIRTUEMART_EU_RECAP') . "', '', '', 'vmicon vmicon-16-report', 25, 1, '', 'eurecap', '')";
$db->setQuery($q);
$db->query();
}
} else {
if ($exists) {
$q = "DELETE FROM `#__virtuemart_adminmenuentries` WHERE `view` = 'eurecap' AND `task` = '' AND `module_id` = 2";
$db->setQuery($q);
$db->query();
}
}
}
}
\ No newline at end of file
......@@ -38,13 +38,12 @@ class plgVmExtendedEuRecapInstallerScript
* @return boolean True on success
*/
public function postflight ($type, $parent = null) {
// if(!class_exists( 'vmPlugin' ))
// require JPATH_VM_ADMINISTRATOR.DS.'plugins'.DS.'vmplugin.php';
// if(!class_exists( 'plgVmShopperOrdernumber' ))
// require JPATH_ROOT.DS.'plugins'.DS.'vmextended'.DS.'eurecap'.DS.'eurecap.php';
// $dispatcher = new JDispatcher();
// $config = array('name' => 'eurecap', 'type' => 'vmextended');
// $plugin = new plgVmExtendedEuRecap($dispatcher, $config);
if(!class_exists( 'plgVmExtendedEuRecap' ))
require JPATH_ROOT.DS.'plugins'.DS.'vmextended'.DS.'eurecap'.DS.'eurecap.php';
$dispatcher = new JDispatcher();
$config = array('name' => 'eurecap', 'type' => 'vmextended');
$plugin = new plgVmExtendedEuRecap($dispatcher, $config);
$plugin->onInstallCheckAdminMenuEntries();
// $plugin->plgVmOnStoreInstallPluginTable('extended');
// // $dispatcher->trigger("plgVmOnStoreInstallPluginTable", array('vmshopper'));
}
......
......@@ -22,6 +22,7 @@
<folder>controllers</folder>
<folder>models</folder>
<folder>views</folder>
<folder>helpers</folder>
</files>
<scriptfile>eurecap.script.php</scriptfile>
<languages folder="language">
......@@ -29,13 +30,19 @@
<language tag="en-GB">en-GB/en-GB.plg_vmextended_eurecap.sys.ini</language>
</languages>
<!-- VM 3.x: Fields -->
<vmconfig>
<fields name="settings" addfieldpath="/administrator/components/com_virtuemart/fields">
<fieldset name="order_properties" addfieldpath="/plugins/vmextended/eurecap/fields" label="VMEXT_EU_RECAP_ORDERPROPERTIES">
<field name="countries" type="eucountries" multiple="true" scope="com_virtuemart" default="" label="VMEXT_EU_RECAP_COUNTRIES" description="VMEXT_EU_RECAP_COUNTRIES_DESC"/>
<field name="order_status" type="orderstatus" default="C,S" multiple="multiple" label="VMEXT_EU_RECAP_ORDERSTATUS" description="VMEXT_EU_RECAP_ORDERSTATUS_DESC "/>
<field name="shopper_groups" type="vmshoppergroups" multiple="multiple" label="VMEXT_EU_RECAP_SHOPPERGROUP" description="VMEXT_EU_RECAP_SHOPPERGROUP_DESC" />
<field name="vatid_userfield" type="vmuserfields" label="VMEXT_EU_RECAP_VATID_USERFIELD" multiple="multiple" default="opc_vat" description="VMEXT_EU_RECAP_VATID_USERFIELD_DESC" />
<field name="only_untaxed" type="radio" default="1" class="btn-group btn-group-yesno" label="VMEXT_EU_RECAP_UNTAXED" description="VMEXT_EU_RECAP_UNTAXED_DESC" >
<field name="include_taxed_orders" type="radio" default="0" class="btn-group btn-group-yesno" label="VMEXT_EU_RECAP_INCLUDE_TAXED" description="VMEXT_EU_RECAP_INCLUDE_TAXED_DESC" >
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="include_free" type="radio" default="0" class="btn-group btn-group-yesno" label="VMEXT_EU_RECAP_INCLUDE_FREE" description="VMEXT_EU_RECAP_INCLUDE_FREE_DESC" >
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
......@@ -46,15 +53,58 @@
<option value="3">VMEXT_EU_RECAP_FREQUENCY_QUARTERLY</option>
<option value="12">VMEXT_EU_RECAP_FREQUENCY_YEARLY</option>
</field>
<field name="countries" type="vmcountries" multiple="true" scope="com_virtuemart" default="" label="VMEXT_EU_RECAP_COUNTRIES" description="VMEXT_EU_RECAP_COUNTRIES_DESC"/>
<field name="taxation_moment" type="list" default="status" label="VMEXT_EU_RECAP_TAXATION_MOMENT" description="VMEXT_EU_RECAP_TAXATION_MOMENT_DESC" >
<field name="taxation_moment" type="list" default="placement" label="VMEXT_EU_RECAP_TAXATION_MOMENT" description="VMEXT_EU_RECAP_TAXATION_MOMENT_DESC" >
<option value="placement">VMEXT_EU_RECAP_TAXATION_MOMENT_PLACEMENT</option>
<!-- <option value="status">VMEXT_EU_RECAP_TAXATION_MOMENT_STATUSCHANGE</option> -->
<!-- <option value="payment">VMEXT_EU_RECAP_TAXATION_MOMENT_PAYMENT</option> -->
<option value="invoice">VMEXT_EU_RECAP_TAXATION_MOMENT_INVOICE</option>
</field>
<field name="export_format" type="list" default="full" label="VMEXT_EU_RECAP_EXPORT_FORMAT" description="VMEXT_EU_RECAP_EXPORT_FORMAT_DESC" >
<option value="full">VMEXT_EU_RECAP_EXPORT_FULL</option>
<option value="AT_xml">VMEXT_EU_RECAP_EXPORT_AT_XML</option>
<option value="DE_csv">VMEXT_EU_RECAP_EXPORT_DE_CSV</option>
</field>
<field name="vendor_vatid" type="text" scope="com_virtuemart" default="" label="VMEXT_EU_RECAP_VENDOR_VATID" description="VMEXT_EU_RECAP_VENDOR_VATID_DESC"/>
<field name="taxnr" type="text" scope="com_virtuemart" default="" label="VMEXT_EU_RECAP_TAXNR" description="VMEXT_EU_RECAP_TAXNR_DESC"/>
</fieldset>
</fields>
</vmconfig>
<!-- VM 2.0 support (params rather than fields): -->
<params addpath="/plugins/vmextended/eurecap/elements" />
<params addpath="/administrator/components/com_virtuemart/elements" >
<param type="vmjpluginwarning" />
<param name="order_status" type="vmorderstates" default="C,S" multiple="multiple" label="VMEXT_EU_RECAP_ORDERSTATUS" description="VMEXT_EU_RECAP_ORDERSTATUS_DESC "/>
<param name="shopper_groups" type="vmshoppergroups" multiple="multiple" label="VMEXT_EU_RECAP_SHOPPERGROUP" description="VMEXT_EU_RECAP_SHOPPERGROUP_DESC" />
<param name="vatid_userfield" type="vmuserfields" label="VMEXT_EU_RECAP_VATID_USERFIELD" multiple="multiple" default="opc_vat" description="VMEXT_EU_RECAP_VATID_USERFIELD_DESC" />
<param name="include_taxed_orders" type="radio" default="0" class="btn-group btn-group-yesno" label="VMEXT_EU_RECAP_INCLUDE_TAXED" description="VMEXT_EU_RECAP_INCLUDE_TAXED_DESC" >
<option value="1">JYES</option>
<option value="0">JNO</option>
</param>
<param name="include_free" type="radio" default="0" class="btn-group btn-group-yesno" label="VMEXT_EU_RECAP_INCLUDE_FREE" description="VMEXT_EU_RECAP_INCLUDE_FREE_DESC" >
<option value="1">JYES</option>
<option value="0">JNO</option>
</param>
<param name="frequency" type="list" default="1" label="VMEXT_EU_RECAP_FREQUENCY" description="VMEXT_EU_RECAP_FREQUENCY_DESC" >
<option value="1">VMEXT_EU_RECAP_FREQUENCY_MONTHLY</option>
<option value="3">VMEXT_EU_RECAP_FREQUENCY_QUARTERLY</option>
<option value="12">VMEXT_EU_RECAP_FREQUENCY_YEARLY</option>
</param>
<param name="countries" type="eucountries" multiple="true" scope="com_virtuemart" default="" label="VMEXT_EU_RECAP_COUNTRIES" description="VMEXT_EU_RECAP_COUNTRIES_DESC"/>
<param name="taxation_moment" type="list" default="placement" label="VMEXT_EU_RECAP_TAXATION_MOMENT" description="VMEXT_EU_RECAP_TAXATION_MOMENT_DESC" >
<option value="placement">VMEXT_EU_RECAP_TAXATION_MOMENT_PLACEMENT</option>
<!-- <option value="status">VMEXT_EU_RECAP_TAXATION_MOMENT_STATUSCHANGE</option> -->
<!-- <option value="payment">VMEXT_EU_RECAP_TAXATION_MOMENT_PAYMENT</option> -->
<option value="invoice">VMEXT_EU_RECAP_TAXATION_MOMENT_INVOICE</option>
</param>
<param name="export_format" type="list" default="full" label="VMEXT_EU_RECAP_EXPORT_FORMAT" description="VMEXT_EU_RECAP_EXPORT_FORMAT_DESC" >
<option value="full">VMEXT_EU_RECAP_EXPORT_FULL</option>
<option value="AT_xml">VMEXT_EU_RECAP_EXPORT_AT_XML</option>
<option value="DE_csv">VMEXT_EU_RECAP_EXPORT_DE_CSV</option>
</param>
<param name="vendor_vatid" type="text" scope="com_virtuemart" default="" label="VMEXT_EU_RECAP_VENDOR_VATID" description="VMEXT_EU_RECAP_VENDOR_VATID_DESC"/>
<param name="taxnr" type="text" scope="com_virtuemart" default="" label="VMEXT_EU_RECAP_TAXNR" description="VMEXT_EU_RECAP_TAXNR_DESC"/>
</params>
</extension>
<?php
defined('_JEXEC') or die();
/**
*
* @package VirtueMart
* @subpackage Plugins - Elements
* @author Valérie Isaksen, Adapted by Reinhold Kainhofer for EU countries
* @link http://www.virtuemart.net
* @copyright Copyright (c) 2004 - 2011 VirtueMart Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* @version $Id: $
*/
JFormHelper::loadFieldClass('list');
jimport('joomla.form.formfield');
class JFormFieldEUCountries extends JFormFieldList {
/**
* Element name
* @access protected
* @var string
*/
var $type = 'euCountries';
protected function getInput() {
$this->multiple=true;
return parent::getInput();
}
protected function getOptions() {
$options = array();
$this->multiple=true;
$query = 'SELECT `virtuemart_country_id` AS value, `country_name` AS text FROM `#__virtuemart_countries`
WHERE `published` = 1 AND `country_2_code` IN ("AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SI", "SK", "ES", "SE", "GB") ORDER BY `country_name` ASC ';
$db = JFactory::getDBO();
$db->setQuery($query);
$values = $db->loadObjectList();
foreach ($values as $v) {
$options[] = JHtml::_('select.option', $v->value, $v->text);
}
//BAD $class = 'multiple="true" size="10"';
// Merge any additional options in the XML definition.
$options = array_merge(parent::getOptions(), $options);
return $options;
}
}
\ No newline at end of file
......@@ -24,7 +24,9 @@ class JFormFieldVmUserFields extends JFormFieldList {
$userfields = $model->getUserfieldsList();
$options = array();
foreach ($userfields as $field) {
$options[] = JHtml::_ ('select.option', $field->name, JText::_($field->title) . " (" . $field->name . ")");
if ($field->published) {
$options[] = JHtml::_ ('select.option', $field->name, JText::_($field->title) . " (" . $field->name . ")");
}
}
return $options;
}
......
VMEXT_EU_RECAP="EU Recapitulative Statement"
VMEXT_EU_RECAP_DESC="A plugin to automatically create EU Recapitulative Statements for untaxed cross-border EU sales to businesses with a valid EU VAT ID."
VMEXT_EU_RECAP="EU Sales Report"
VMEXT_EU_RECAP_DESC="A plugin to automatically create EU Sales Reports (a.k.a. EU Recapitulative Statements) for untaxed cross-border EU sales to businesses with a valid EU VAT ID."
COM_VIRTUEMART_REPORT_MOD="Reports"
COM_VIRTUEMART_EU_RECAP="EU Recapitulative Statement"
COM_VIRTUEMART_EU_RECAP="EU Sales Report"
; COM_VIRTUEMART_EU_RECAP="EU Recapitulative Statement"
VMEXT_EU_RECAP_SETTINGS_TITLE="Configuration of the EU Recapitulative Statement"
VMEXT_EU_RECAP_VIEW_TITLE_DATE="EU Recapitulative Statement for the period from %s to %s"
VMEXT_EU_RECAP_SETTINGS_TITLE="Configuration of the EU Sales Report"
VMEXT_EU_RECAP_VIEW_TITLE_DATE="EU Sales Report for the period from %s to %s"
VMEXT_EU_RECAP_LIST_MONTH="Period"
VMEXT_EU_RECAP_LIST_YEAR="Year"
VMEXT_EU_RECAP_RECHECK_EUVATID="(Re-)Check EU VAT IDs"
; VMEXT_EU_RECAP_RECHECK_EUVATID="(Re-)Check EU VAT IDs"
VMEXT_EU_RECAP_SETTINGS="Settings"
COM_VIRTUEMART_EU_RECAP_SETTINGS="Settings"
COM_VIRTUEMART_EU_RECAP_LIST="Report"
VMEXT_EU_RECAP_EXPORT="Export"
VMEXT_EU_RECAP_EXPORT_FULL="Full dataset (country-independend), CSV format"
VMEXT_EU_RECAP_EXPORT_AT_XML="Austrian XML format"
VMEXT_EU_RECAP_EXPORT_DE_CSV="German CSV format"
VMEXT_EU_RECAP_EXPORT_TB_FULL="Export (full, csv)"
VMEXT_EU_RECAP_EXPORT_TB_AT_XML="Export (AT, xml)"
VMEXT_EU_RECAP_EXPORT_TB_DE_CSV="Export (DE, csv)"
VMEXT_EU_RECAP_FORM_NOTFOUND="Configuration form not available"
VMEXT_EU_RECAP_ORDERPROPERTIES="Order Properties for Inclusion in the Report"
VMEXT_EU_RECAP_ORDERSTATUS="Order Status"
VMEXT_EU_RECAP_ORDERSTATUS_DESC="Only orders with one of the selected statuses will be included in the recapitulative statement. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_ORDERSTATUS_DESC="Only orders with one of the selected statuses will be included in the EU Sales Report. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_SHOPPERGROUP="Shopper Groups"
VMEXT_EU_RECAP_SHOPPERGROUP_DESC="Only orders by users of the selected shopper groups will be included in the recapitulative statement. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_SHOPPERGROUP_DESC="Only orders by users of the selected shopper groups will be included in the EU Sales Report. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_VATID_USERFIELD="The user field(s) that holds the EU VAT ID of the customer."
VMEXT_EU_RECAP_VATID_USERFIELD_DESC="An order can only be included if the customer is a EU-based business with a valid EU VAT ID. This number will usually be stored in a configurable user field. If the plugin to handle EU VAT IDs has changed in the past, select all user fields that were used."
VMEXT_EU_RECAP_UNTAXED="Include only untaxed sales."
VMEXT_EU_RECAP_UNTAXED_DESC="Select whether all orders are included or only orders where no tax (neither at product-level nor at order-level) was charged."
VMEXT_EU_RECAP_REPORTSETTINGS="General Settings for the Recapitulative Report"
VMEXT_EU_RECAP_INCLUDE_TAXED="Include sales that were taxed"
VMEXT_EU_RECAP_INCLUDE_TAXED_DESC="Select whether to also include sales where VAT was charged, even though a (possibly invalid) VATID was given."
VMEXT_EU_RECAP_INCLUDE_FREE="Include free orders"
VMEXT_EU_RECAP_INCLUDE_FREE_DESC="Select whether all orders are included or only orders with an order total larger than 0. In the first case, all free orders will also be included."
VMEXT_EU_RECAP_EXPORT_FORMAT="Export format"
VMEXT_EU_RECAP_EXPORT_FORMAT_DESC="Select the format for the data export. Several countries have their own custom format that needs to be used to import the report into the official tax rporting system."
VMEXT_EU_RECAP_REPORTSETTINGS="General Settings for the EU Sales Report"
VMEXT_EU_RECAP_FREQUENCY="Frequency of the Report"
VMEXT_EU_RECAP_FREQUENCY_DESC="Select how often you are required to submit a recapitulative report. Only time periods for the selected frequency will be offered in the report page."
VMEXT_EU_RECAP_FREQUENCY_DESC="Select how often you are required to submit a EU Sales Report. Only time periods for the selected frequency will be offered in the report page."
VMEXT_EU_RECAP_FREQUENCY_MONTHLY="Monthly"
VMEXT_EU_RECAP_FREQUENCY_QUARTERLY="Quarterly"
VMEXT_EU_RECAP_FREQUENCY_YEARLY="Yearly"
VMEXT_EU_RECAP_COUNTRIES="Countries"
VMEXT_EU_RECAP_COUNTRIES_DESC="Only orders by customers from of the selected countries will be included in the recapitulative statement. Typically, all EU countries except your home country should be selected."
VMEXT_EU_RECAP_COUNTRIES_DESC="Only orders by customers from of the selected countries will be included in the EU Sales Report. Typically, all EU countries except your home country should be selected."
VMEXT_EU_RECAP_TAXATION_MOMENT="Moment of taxation"
VMEXT_EU_RECAP_TAXATION_MOMENT_DESC="Select the point in time when a new order actually causes a tax liability."
VMEXT_EU_RECAP_TAXATION_MOMENT_PLACEMENT="When the order is initially created in VirtueMart."
......@@ -40,8 +53,11 @@ VMEXT_EU_RECAP_TAXATION_MOMENT_STATUSCHANGE="When the order is first changed to
VMEXT_EU_RECAP_TAXATION_MOMENT_PAYMENT="When payment is made."
VMEXT_EU_RECAP_TAXATION_MOMENT_INVOICE="When the invoice is created."
VMEXT_EU_RECAP_TAXNR="Your tax number"
VMEXT_EU_RECAP_TAXNR_DESC="When exporting to xml or csv, some countries require the tax number of the vendor to be included in the file. If this is the case for your tax authority, please enter your tax number here so the generated files can be automatically processed by your tax authority."
VMEXT_EU_RECAP_VENDOR_VATID="Your EU VAT ID number"
VMEXT_EU_RECAP_VENDOR_VATID_DESC="When exporting to xml or csv, some countries require the EU VAT ID number of the vendor to be included in the file. If this is the case for your tax authority, please enter your tax number here so the generated files can be automatically processed by your tax authority."
VMEXT_EU_RECAP_TAXNR="Your local tax number"
VMEXT_EU_RECAP_TAXNR_DESC="When exporting to xml or csv, some countries require the local tax number of the vendor to be included in the file. If this is the case for your tax authority, please enter your tax number here so the generated files can be automatically processed by your tax authority."
VMEXT_EU_RECAP_VATID="EU VAT ID"
VMEXT_EU_RECAP_COUNTRYCODE="Billing Country"
......@@ -49,4 +65,6 @@ VMEXT_EU_RECAP_COMPANY="Company Name"
VMEXT_EU_RECAP_NAME="Person"
VMEXT_EU_RECAP_ORDERS="Orders"
VMEXT_EU_RECAP_ORDERTOTALS="Total revenue"
VMEXT_EU_RECAP_ORDERTAXES="Taxes"
\ No newline at end of file
VMEXT_EU_RECAP_ORDERTAXES="Taxes"
VMEXT_EU_RECAP_CANCELLED="EU Sales Report settings cancelled."
\ No newline at end of file
VMEXT_EU_RECAP="EU Recapitulative Statement"
VMEXT_EU_RECAP_DESC="A plugin to automatically create EU Recapitulative Statements for untaxed cross-border EU sales to businesses with a valid EU VAT ID."
VMEXT_EU_RECAP="EU Sales Report"
VMEXT_EU_RECAP_DESC="A plugin to automatically create EU Sales Reports (a.k.a. EU Recapitulative Statements) for untaxed cross-border EU sales to businesses with a valid EU VAT ID."
COM_VIRTUEMART_REPORT_MOD="Reports"
COM_VIRTUEMART_EU_RECAP="EU Recapitulative Statement"
COM_VIRTUEMART_EU_RECAP="EU Sales Report"
; COM_VIRTUEMART_EU_RECAP="EU Recapitulative Statement"
VMEXT_EU_RECAP_SETTINGS_TITLE="Configuration of the EU Recapitulative Statement"
VMEXT_EU_RECAP_VIEW_TITLE_DATE="EU Recapitulative Statement for the period from %s to %s"
VMEXT_EU_RECAP_SETTINGS_TITLE="Configuration of the EU Sales Report"
VMEXT_EU_RECAP_VIEW_TITLE_DATE="EU Sales Report for the period from %s to %s"
VMEXT_EU_RECAP_LIST_MONTH="Period"
VMEXT_EU_RECAP_LIST_YEAR="Year"
VMEXT_EU_RECAP_RECHECK_EUVATID="(Re-)Check EU VAT IDs"
; VMEXT_EU_RECAP_RECHECK_EUVATID="(Re-)Check EU VAT IDs"
VMEXT_EU_RECAP_SETTINGS="Settings"
COM_VIRTUEMART_EU_RECAP_SETTINGS="Settings"
COM_VIRTUEMART_EU_RECAP_LIST="Report"
VMEXT_EU_RECAP_EXPORT="Export"
VMEXT_EU_RECAP_EXPORT_FULL="Full dataset (country-independend), CSV format"
VMEXT_EU_RECAP_EXPORT_AT_XML="Austrian XML format"
VMEXT_EU_RECAP_EXPORT_DE_CSV="German CSV format"
VMEXT_EU_RECAP_EXPORT_TB_FULL="Export (full, csv)"
VMEXT_EU_RECAP_EXPORT_TB_AT_XML="Export (AT, xml)"
VMEXT_EU_RECAP_EXPORT_TB_DE_CSV="Export (DE, csv)"
VMEXT_EU_RECAP_FORM_NOTFOUND="Configuration form not available"
VMEXT_EU_RECAP_ORDERPROPERTIES="Order Properties for Inclusion in the Report"
VMEXT_EU_RECAP_ORDERSTATUS="Order Status"
VMEXT_EU_RECAP_ORDERSTATUS_DESC="Only orders with one of the selected statuses will be included in the recapitulative statement. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_ORDERSTATUS_DESC="Only orders with one of the selected statuses will be included in the EU Sales Report. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_SHOPPERGROUP="Shopper Groups"
VMEXT_EU_RECAP_SHOPPERGROUP_DESC="Only orders by users of the selected shopper groups will be included in the recapitulative statement. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_SHOPPERGROUP_DESC="Only orders by users of the selected shopper groups will be included in the EU Sales Report. If none are selected, all orders will possibly be included, depending on the other required properties."
VMEXT_EU_RECAP_VATID_USERFIELD="The user field(s) that holds the EU VAT ID of the customer."
VMEXT_EU_RECAP_VATID_USERFIELD_DESC="An order can only be included if the customer is a EU-based business with a valid EU VAT ID. This number will usually be stored in a configurable user field. If the plugin to handle EU VAT IDs has changed in the past, select all user fields that were used."
VMEXT_EU_RECAP_UNTAXED="Include only untaxed sales."
VMEXT_EU_RECAP_UNTAXED_DESC="Select whether all orders are included or only orders where no tax (neither at product-level nor at order-level) was charged."
VMEXT_EU_RECAP_REPORTSETTINGS="General Settings for the Recapitulative Report"
VMEXT_EU_RECAP_INCLUDE_TAXED="Include sales that were taxed"
VMEXT_EU_RECAP_INCLUDE_TAXED_DESC="Select whether to also include sales where VAT was charged, even though a (possibly invalid) VATID was given."
VMEXT_EU_RECAP_INCLUDE_FREE="Include free orders"
VMEXT_EU_RECAP_INCLUDE_FREE_DESC="Select whether all orders are included or only orders with an order total larger than 0. In the first case, all free orders will also be included."
VMEXT_EU_RECAP_EXPORT_FORMAT="Export format"
VMEXT_EU_RECAP_EXPORT_FORMAT_DESC="Select the format for the data export. Several countries have their own custom format that needs to be used to import the report into the official tax rporting system."
VMEXT_EU_RECAP_REPORTSETTINGS="General Settings for the EU Sales Report"
VMEXT_EU_RECAP_FREQUENCY="Frequency of the Report"
VMEXT_EU_RECAP_FREQUENCY_DESC="Select how often you are required to submit a recapitulative report. Only time periods for the selected frequency will be offered in the report page."
VMEXT_EU_RECAP_FREQUENCY_DESC="Select how often you are required to submit a EU Sales Report. Only time periods for the selected frequency will be offered in the report page."
VMEXT_EU_RECAP_FREQUENCY_MONTHLY="Monthly"
VMEXT_EU_RECAP_FREQUENCY_QUARTERLY="Quarterly"
VMEXT_EU_RECAP_FREQUENCY_YEARLY="Yearly"
VMEXT_EU_RECAP_COUNTRIES="Countries"
VMEXT_EU_RECAP_COUNTRIES_DESC="Only orders by customers from of the selected countries will be included in the recapitulative statement. Typically, all EU countries except your home country should be selected."
VMEXT_EU_RECAP_COUNTRIES_DESC="Only orders by customers from of the selected countries will be included in the EU Sales Report. Typically, all EU countries except your home country should be selected."
VMEXT_EU_RECAP_TAXATION_MOMENT="Moment of taxation"
VMEXT_EU_RECAP_TAXATION_MOMENT_DESC="Select the point in time when a new order actually causes a tax liability."
VMEXT_EU_RECAP_TAXATION_MOMENT_PLACEMENT="When the order is initially created in VirtueMart."
......@@ -40,8 +53,11 @@ VMEXT_EU_RECAP_TAXATION_MOMENT_STATUSCHANGE="When the order is first changed to
VMEXT_EU_RECAP_TAXATION_MOMENT_PAYMENT="When payment is made."
VMEXT_EU_RECAP_TAXATION_MOMENT_INVOICE="When the invoice is created."
VMEXT_EU_RECAP_TAXNR="Your tax number"
VMEXT_EU_RECAP_TAXNR_DESC="When exporting to xml or csv, some countries require the tax number of the vendor to be included in the file. If this is the case for your tax authority, please enter your tax number here so the generated files can be automatically processed by your tax authority."
VMEXT_EU_RECAP_VENDOR_VATID="Your EU VAT ID number"
VMEXT_EU_RECAP_VENDOR_VATID_DESC="When exporting to xml or csv, some countries require the EU VAT ID number of the vendor to be included in the file. If this is the case for your tax authority, please enter your tax number here so the generated files can be automatically processed by your tax authority."
VMEXT_EU_RECAP_TAXNR="Your local tax number"
VMEXT_EU_RECAP_TAXNR_DESC="When exporting to xml or csv, some countries require the local tax number of the vendor to be included in the file. If this is the case for your tax authority, please enter your tax number here so the generated files can be automatically processed by your tax authority."
VMEXT_EU_RECAP_VATID="EU VAT ID"
VMEXT_EU_RECAP_COUNTRYCODE="Billing Country"
......@@ -49,4 +65,6 @@ VMEXT_EU_RECAP_COMPANY="Company Name"
VMEXT_EU_RECAP_NAME="Person"
VMEXT_EU_RECAP_ORDERS="Orders"
VMEXT_EU_RECAP_ORDERTOTALS="Total revenue"