问题
我看到
Magento\Sales\Model\Order\CreditmemoFactory
有createByOrder和createByInvoice方法,但我做不到
->create()->addAttributeToFilter('created_at'
无论何时下订单,我都希望获得过去两周的贷项通知单
。
所以我做不到
$order->getCreditmemosCollection()
。
有任何想法吗?
答:
如果我正确地理解了您的问题,那么您希望加载过去2周内创建的所有贷项通知单,而不考虑订单的创建时间。您是否考虑过使用服务合同来加载数据?
您需要将以下2个类注入到构造函数中。在SearchCriteriaBuilder
类创建搜索条件(过滤器),以及CreditmemoRepositoryInterface
用于装载贷项通知单。
\Magento\Sales\Api\CreditmemoRepositoryInterface
\Magento\Framework\Api\SearchCriteriaBuilder
建立搜索条件:
$yourDate = '2017-01-01';
$searchCriteria = $this->searchCriteriaBuilder
->addFilter(
'created_at',
$yourDate,
'gt'
)->create()
;
然后从资源库获取贷项凭证:
$creditmemos = $this->creditmemoRepository
->getList($searchCriteria)
->getItems()
;
从那里,您应该能够遍历数组,加载所需的任何数据:
foreach ($creditmemos as $creditmemo) {
echo $creditmemo->getAdjustment();
}
您可以$creditmemo
在类中看到可用的方法来调用\Magento\Sales\Api\Data\CreditmemoInterface
。