我们的客户有一家 Magento 支持的商店,需要能够根据指定的日期范围创建税务报告,并细分通过信用退还的金额。
本质上,他们想要一个看起来像这样的表。
为了节省时间,而且由于他们一年只需要两次这些报告,我真的不想在 Magento 中构建它。相反,我选择只创建一个脚本来根据日期范围搜索 MySQL 表。我构建了我认为应该是从数据库中收集必要数字的查询。由于他们只在德克萨斯州收取销售税,因此我使用布尔表达式将已征税和未征税的部分组合在一起:fi.tax_amount > 0。我在查询中引用了下表:
- mag_sales_flat_order:用于表示订单日期范围(在MySQL查询中标识为fo)
- mag_sales_flat_invoice:包含所有实际发票数据的表(在 MySQL 查询中标识为 fi)
- mag_sales_flat_creditmemo:包含所有贷项通知单数据的表(在 MySQL 查询中标识为 fc)
大多数字段似乎都还可以,但我不断收到数字显示运费税的抵免额超过了总额的运费税。也许我在查询中使用了错误的字段,或者做错了其他事情。这是我正在使用的查询:
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
有人知道我做错了什么吗?如果您需要更多信息,请告诉我。
谢谢!