Создание годовых налоговых отчетов с использованием MySQL на основе магазина Magento 1.4.1.0 - PullRequest
0 голосов
/ 03 января 2011

У нашего клиента есть магазин на базе Magento, и ему нужна возможность создавать налоговые отчеты на основе указанного диапазона дат с разбивкой на сумму, которая была возвращена с помощью кредитов.

По сути, им нужен стол, который выглядит следующим образом .

Чтобы сэкономить время, и поскольку им нужны только эти отчеты два раза в год, я действительно не хочу создавать его в Magento. Вместо этого я предпочитаю просто создать скрипт для поиска в таблицах MySQL на основе диапазона дат. Я построил то, что я думал, должен быть запрос, чтобы собрать необходимые числа из базы данных. Так как они взимают налог с продаж только в штате Техас, я сгруппировал облагаемые налогом и не облагаемые налогом части, используя логическое выражение: fi.tax_amount> 0. Я ссылаюсь на следующие таблицы в моем запросе:

  1. mag_sales_flat_order: используется для указания диапазонов дат заказа (обозначается как fo в запросе MySQL)
  2. mag_sales_flat_invoice: таблица, содержащая все фактические данные счета (идентифицированные как fi в запросе MySQL)
  3. mag_sales_flat_creditmemo: таблица, содержащая все данные кредитового авизо (идентифицированные как fc в запросе MySQL)

Большинство полей, кажется, в порядке, но я продолжаю получать цифры, показывающие, что кредиты для налога на доставку превышают налог на доставку для брутто. Возможно, я использую неправильные поля в своем запросе или делаю что-то другое неправильно. Вот запрос, который я использую:

SELECT 
    fi.tax_amount > 0 as `taxed`, 
    sum(fi.grand_total) as `sales_total`,
    sum(fi.tax_amount) as `sales_tax`, 
    sum(fi.shipping_tax_amount) as `shipping_tax`, 
    sum(fc.grand_total) as `credit_total`, 
    sum(fc.tax_amount) as `credit_sales_tax`,
    sum(fc.shipping_tax_amount) as `credit_shipping_tax`    
FROM 
    `mag_sales_flat_invoice` fi 
LEFT JOIN 
    `mag_sales_flat_order` fo ON fo.entity_id = fi.order_id     
LEFT JOIN 
    `mag_sales_flat_creditmemo` fc ON fc.order_id = fi.order_id 
WHERE     
    fo.created_at <= '2010-12-31 00:00:00' AND 
    fo.created_at >= '2010-07-01 00:00:00'     
GROUP BY
    fi.tax_amount > 0

Кто-нибудь знает, что я делаю неправильно? Дайте мне знать, если вам нужна дополнительная информация.

Спасибо!

1 Ответ

3 голосов
/ 04 января 2011

Разобрался с моей проблемой. У меня были проблемы не с реальными номерами, возвращенными из Magento. Я изменил порядок двух чисел в расчете, и это меня запутало. Для тех, кто заинтересован в моем решении, я разместил его здесь: Годовые налоговые отчеты на основе магазина Magento 1.4.1.0+

...