Estoy haciendo lo siguiente para obtener algunos pedidos del sistema para la exportación:
$orders = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('status', $statusToExport)
->addFieldToFilter('store_id', $this->processingStoreId)
->addFieldToFilter('updated_at', array('gteq' => date('Y-m-d H:i:s', $lastSyncTime)));
Necesito agregar algo en donde no se exporta si el pedido entity_id
está en una tabla personalizada que tengo. Si estuviera usando SQL, haría:
left join myTable as mt on main_table.entity_id = mt.entity_id
where mt.entity_id is null
Pero no estoy seguro de cómo modificar la consulta de recopilación para hacer algo similar.
Nota: lo intenté
$orders = $orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null")
pero esto lo cambia, por lo que es una consulta y quiero que se devuelva la colección de ventas / pedidos.
Siento que me falta algo simple ...
EDITAR
Ok, he intentado esto:
$orders->getSelect()
->joinLeft(
array("t1" => $myTable),
"main_table.entity_id = t1.entity_id",
array("admin_field_id" => "t1.id")
)
->where("t1.id is null");
Cuando hago eco (string)$orders->getSelect()
, devuelve la consulta que esperaría y no devuelve ningún resultado cuando la ejecuto. $orders
Sin embargo, todavía contiene elementos. ¿Pensé que esta unión estaba destinada a modificar la colección en este momento?
$orders->getSelect() ->joinLeft(array("t1" => $myTable), "main_table.entity_id = t1.entity_id", array("admin_field_id" => "t1.id")) ->where("t1.id is null")
excluir los elementos de mi lista actual?