문제

우리가 최근 전환 젠토 및되었습니다.우리의 끝에 도달하는 VAT 기간 동안,그러나,나는 고군분투하는 방법을 생성하는 데 필요한 보고서입니다.특히,EC 판매 목록입니다.

우리가 필요한 보고서를 나열하는 VAT Id EU B2B 고객 및 그들의 총 지출은 기간 동안.를 볼 수 없습니다 이에 해당하 젠토 및 Google 검색은 오는 절대적으로 아무것도 확인할 수 있게 되었습니다.

이 있어야 합 많은 영국에 기반 젠토를 실행하는 시스템이 일반적으로 필요 이 정보를 생성하므로,그것은 틀림없이 가능합니다.어떤 아이디어는 어떻게 해야 하나요?

도움이 되었습니까?

해결책 2

끝에서,내 자신의 확장입니다.나지(비소)Magento 개발하기 전에,그래서 생각이었으로 좋은 장소를 시작으로.

(TL 박사:그것은에 github)

으로 지금까지 한 번,당신은 좀 더 깊이 파고 요구 사항으로,거기 작은 그 이상에서 처음 모니다.VAT 가 부과됩(또는 위탁하지 않)에 따라 배송 주소,이렇게 나를 확인하기 위해 필요한 유효한 VAT 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)
    ;

이제는 쿼리를 사용하는 송장 날짜입니다.분명히 따르면,법,EC 판매하는 필요에 따라 포함되기 위해지는 지불의 날짜(도를 사용하는 경우 현금 accounting).거의 모든 우리의 판매를 사용하여 페이팔 익스프레스 그래서 주문 날짜와 송장 날짜에 같은,그래서 즉각적인 문제이지만,내가 해결해야 할 때 나는 기회를 얻을 수 있다.

다음 방법을 고려해야 합 신용의 메모에서 발행이 동일한 기능을 가지고 있습니다.참고하는 신용카 메모에서 실행할 수 있는 다른 과세 기간에 송장되는립니다.

$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)
;

마지막으로,내가 모든 청구서의 금액에 대한 각 VAT ID 를 공제한 모든 신용을 메모한다는 VAT ID 과를 출력한 결과입니다.

나는 모두 정상적으로 작동합니다.난 아이로 우리의 부가가치세 반환에 가야한 이번 달:-)

현재,이 목록에서 생성됩니다.다음으로,저는 것을 보고 구축하는 방법은 적절한 Magento 보고할 수 있도록 쉽게 생성에서 Magento 수 있습니다.

전체 코드를 사용할 수 있에 github.

다른 팁

코드를 아래 코드를 사용하여 필요한 데이터를 가져 오는 시작 블록으로 도움이 될 수있는 모듈에 넣습니다.

모듈은 VAT ID에 의해 새로운 메뉴 항목 판매 -> 고객 판매를 추가합니다.날짜 범위는 앱 / 코드 / 커뮤니티 / PAJ / CustomersAles / Helper / Data.php

에서 구성됩니다.

여기서 모듈을 다운로드

https://githollow"> https://githo -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 ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top