3
class Openlabs_OpenERPConnector_Model_Sales_Order_Api extends Mage_Sales_Model_Order_Api {
5
public function retrieveOrders($data) {
8
if(isset($data['imported'])) {
9
$billingAliasName = 'billing_o_a';
10
$shippingAliasName = 'shipping_o_a';
12
$collection = Mage::getModel("sales/order")->getCollection()
13
->addAttributeToSelect('*')
14
->addAttributeToFilter('imported', array('eq' => $data['imported']))
16
->addExpressionFieldToSelect(
17
'billing_firstname', "{{billing_firstname}}", array('billing_firstname'=>"$billingAliasName.firstname")
19
->addExpressionFieldToSelect(
20
'billing_lastname', "{{billing_lastname}}", array('billing_lastname'=>"$billingAliasName.lastname")
22
->addExpressionFieldToSelect(
23
'shipping_firstname', "{{shipping_firstname}}", array('shipping_firstname'=>"$shippingAliasName.firstname")
25
->addExpressionFieldToSelect(
26
'shipping_lastname', "{{shipping_lastname}}", array('shipping_lastname'=>"$shippingAliasName.lastname")
28
->addExpressionFieldToSelect(
30
"CONCAT({{billing_firstname}}, ' ', {{billing_lastname}})",
31
array('billing_firstname'=>"$billingAliasName.firstname", 'billing_lastname'=>"$billingAliasName.lastname")
33
->addExpressionFieldToSelect(
35
'CONCAT({{shipping_firstname}}, " ", {{shipping_lastname}})',
36
array('shipping_firstname'=>"$shippingAliasName.firstname", 'shipping_lastname'=>"$shippingAliasName.lastname")
39
if(isset($data['limit'])) {
40
$collection->setPageSize($data['limit']);
41
$collection->setOrder('entity_id', 'ASC');
44
if(isset($data['filters']) && is_array($data['filters'])) {
45
$filters = $data['filters'];
46
foreach($filters as $field => $value) {
47
$collection->addAttributeToFilter($field, $value);
51
foreach ($collection as $order) {
52
$result[] = $this->_getAttributes($order, 'order');
56
$this->_fault('data_invalid', "erreur, l'attribut 'imported' doit être spécifié");
60
public function setFlagForOrder($incrementId) {
61
$_order = $this->_initOrder($incrementId);
62
$_order->setImported(1);
66
} catch (Mage_Core_Exception $e) {
67
$this->_fault('data_invalid', $e->getMessage());
71
/* Récupère l'increment_id de la commande fille créée, retourne un string exemple : 100004997-1 */
72
public function getOrderChild($incrementId) {
74
$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
76
* Check order existing
78
if (!$order->getId()) {
79
$this->_fault('order_not_exists');
82
if($order->getRelationChildId()) {
83
return $order->getRelationChildRealId();
89
/* Récupère l'increment_id de la commande mère annulée, retourne un string exemple : 100004997 */
90
public function getOrderParent($incrementId) {
92
$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
94
* Check order existing
96
if (!$order->getId()) {
97
$this->_fault('order_not_exists');
100
if($order->getRelationParentId()) {
101
return $order->getRelationParentRealId();
b'\\ No newline at end of file'