我们最近刚刚切换到Magento,它一直在工作。然而,当我们到达增值税时期的结束时,我正在努力弄清楚如何生成必要的报告。具体而言,EC销售列表。

我们需要一个列出欧盟B2B客户的增值税ID的报告及其在此期间的总支出。在Magento,我看不出任何方法,谷歌搜索绝对没有关于这个问题。

必须有许多基于英国的Magento系统运行,通常需要生成此信息,因此必须是可能的。任何想法我该怎么做?

有帮助吗?

解决方案 2

到底,我写了自己的扩展。我之前没有做任何(非琐碎的)洋养坞,所以我认为这是一个开始的好地方。

(tl,dr:它是在 github

一旦你深入挖掘要求,它比在第一次出现时稍微多。基于送货地址,增值税(或未收取),因此我需要检查有效的增值税ID,而不是客户模型。 所以,这就是我所做的。

首先,我在送货地址表上使用连接获取所有发票,其中我检查发票创建日期并检查设置了生成的vat_is_valid标志,并且vat_id不是null。

$from = $this->getFrom()->format('Y-m-d');
$to = $this->getTo()->add(new \DateInterval('P1D'))->format('Y-m-d');

/** @var Mage_Sales_Model_Resource_Order_Invoice_Collection $invoices */
$invoices = \Mage::getModel("sales/order_invoice")
    ->getCollection()
    ->join(array(
        'shipping_address'=> 'order_address'),
        'shipping_address.entity_id = main_table.shipping_address_id',
        array('shipping_address.vat_id', 'shipping_address.vat_is_valid'))
    ->addAttributeToFilter('created_at', array('gteq' => $from))
    ->addAttributeToFilter('created_at', array('lt' => $to))
    ->addAttributeToFilter('shipping_address.vat_id', array('notnull' => true))
    ->addAttributeToFilter('shipping_address.vat_is_valid', 1)
    ;
.

现在,查询使用发票日期。显然,根据HMRC,EC销售需要根据订单日期,而不是付款日期(即使您正在使用现金会计)。几乎所有我们的销售使用PayPal Express所以订单日期和发票日期都是一样的,所以这不是一个立即的问题,但是当我有机会时,我应该修复。

接下来,我需要考虑在同一时期发布的信用备忘录。请注意,贷项凭证可能会在不同的纳税期内发布到正在贷记的发票。

$from = $this->getFrom()->format('Y-m-d');
$to = $this->getTo()->add(new \DateInterval('P1D'))->format('Y-m-d');

/** @var Mage_Sales_Model_Resource_Order_Creditmemo_Collection $creditMemos */
$creditMemos = \Mage::getModel("sales/order_creditmemo")
    ->getCollection()
    ->join(array(
        'shipping_address'=> 'order_address'),
        'shipping_address.entity_id = main_table.shipping_address_id',
        array('shipping_address.vat_id', 'shipping_address.vat_is_valid'))
    ->addAttributeToFilter('created_at', array('gteq' => $from))
    ->addAttributeToFilter('created_at', array('lt' => $to))
    ->addAttributeToFilter('shipping_address.vat_id', array('notnull' => true))
    ->addAttributeToFilter('shipping_address.vat_is_valid', 1)
;
.

最后,我为每个增值税ID添加了所有发票金额,从而扣除该增值税ID的所有信用备忘录,然后输出结果。

我很确定一切都应该工作。我想我会尽快发现,因为我们的增值税返回必须进入本月: - )

当前,此列表是从命令行生成的。接下来,我将研究如何构建合适的Magento报告,以便可以从Magento后端轻松生成。

完整代码在 github

其他提示

我将下面的代码放入一个可能有助于获取所需数据的起始块的模块。

模块将通过增值税ID添加新的菜单项销售 - >客户销售。日期范围在App / Code / Community / PAJ / Customeral / Helper / Data.php

中配置

在此处下载模块

https://github.com/gaiterjones/magento-customersales/

这些是模块中使用的功能

这将得到您的客户集合

    public function getCustomerByVATID($_storeID=0)
{

    $_collection = \Mage::getModel('customer/customer')
            ->getCollection()
            ->addAttributeToSelect('taxvat');

    $_result = array();
    foreach ($_collection as $_customer) {
        $_result[] = $_customer->toArray();
    }



    return $_result

}
.

,这将通过日期获得总销售额

    public function getCustomerSales($_customerId,$fromDate,$toDate)
{


    $fromDate = date('Y-m-d H:i:s', strtotime($fromDate));
    $toDate = date('Y-m-d H:i:s', strtotime($toDate));

    $orderCollection = \Mage::getModel('sales/order')->getCollection()
        ->addFilter('customer_id', $_customerId)
        ->addAttributeToFilter('created_at', array('from'=>$fromDate, 'to'=>$toDate))
        ->setOrder('created_at', \Varien_Data_Collection_Db::SORT_ORDER_DESC)
    ;
    $numberOfOrders = $orderCollection->count();
    $newestOrder = $orderCollection->getFirstItem();

    $orderCollection->clear()->getSelect()
        ->columns(array('total_sales'=>'SUM(main_table.base_grand_total)'))
        ->group('customer_id')
    ;
    $totalSales = $orderCollection->getFirstItem()
        ->getData('total_sales');       

    return array('customersales' => $totalSales);

}
.

然后您将如此导出如下所示的数据

    $fromDate='2015-01-01';
    $toDate='2015-02-01';

    foreach ($_collection as $_customer)
    {
        if (strlen($_customer['taxvat']) > 2)
        {

            $_sales=$_obj->getCustomerSales($_customer['entity_id'],$fromDate,$toDate);

            if($_sales['customersales'] > 0)
            {
                echo 'id ->'. $_customer['entity_id']. ' - '. $_customer['taxvat']. ' sales= '. $_sales['customersales']. "\n";
            }

        }
    }
.

许可以下: CC-BY-SA归因
scroll top