Changeset View
Changeset View
Standalone View
Standalone View
modules/in-commerce/units/orders/orders_event_handler.php
| Show First 20 Lines • Show All 2776 Lines • ▼ Show 20 Line(s) | |||||
| $affiliate_event->setEventParam('Order_PrefixSpecial', $object->getPrefixSpecial() ); | $affiliate_event->setEventParam('Order_PrefixSpecial', $object->getPrefixSpecial() ); | ||||
| $this->Application->HandleEvent($affiliate_event); | $this->Application->HandleEvent($affiliate_event); | ||||
| $table_prefix = $this->TablePrefix($event); | $table_prefix = $this->TablePrefix($event); | ||||
| $order =& $object; | $order =& $object; | ||||
| $ord_id = $order->GetId(); | $ord_id = $order->GetId(); | ||||
| $shipping_option = $order->GetDBField('ShippingOption'); | $shipping_option = $order->GetDBField('ShippingOption'); | ||||
| $backorder_select = $shipping_option == 0 ? '0' : 'oi.BackOrderFlag'; | $backorder_select = $shipping_option == 0 ? '0' : '%s.BackOrderFlag'; | ||||
| // setting PackageNum to 0 for Non-tangible items, for tangibles first package num is always 1 | // setting PackageNum to 0 for Non-tangible items, for tangibles first package num is always 1 | ||||
| $query = ' SELECT oi.OrderItemId | $query = ' SELECT oi.OrderItemId | ||||
| FROM ' . $table_prefix . 'OrderItems oi | FROM ' . $table_prefix . 'OrderItems oi | ||||
| LEFT JOIN ' . TABLE_PREFIX . 'Products p ON p.ProductId = oi.ProductId | LEFT JOIN ' . TABLE_PREFIX . 'Products p ON p.ProductId = oi.ProductId | ||||
| WHERE p.Type > 1 AND oi.OrderId = ' . $ord_id; | WHERE p.Type > 1 AND oi.OrderId = ' . $ord_id; | ||||
| $non_tangibles = $this->Conn->GetCol($query); | $non_tangibles = $this->Conn->GetCol($query); | ||||
| if ($non_tangibles) { | if ($non_tangibles) { | ||||
| $query = ' UPDATE ' . $table_prefix . 'OrderItems | $query = ' UPDATE ' . $table_prefix . 'OrderItems | ||||
| SET PackageNum = 0 | SET PackageNum = 0 | ||||
| WHERE OrderItemId IN (' . implode(',', $non_tangibles) . ')'; | WHERE OrderItemId IN (' . implode(',', $non_tangibles) . ')'; | ||||
| $this->Conn->Query($query); | $this->Conn->Query($query); | ||||
| } | } | ||||
| // grouping_data: | // grouping_data: | ||||
| // 0 => Product Type | // 0 => Product Type | ||||
| // 1 => if NOT tangibale and NOT downloadable - OrderItemId, | // 1 => if NOT tangibale and NOT downloadable - OrderItemId, | ||||
| // 2 => ProductId | // 2 => ProductId | ||||
| // 3 => Shipping PackageNum | // 3 => Shipping PackageNum | ||||
| $query = 'SELECT | $query = 'SELECT | ||||
| '.$backorder_select.' AS BackOrderFlagCalc, | ' . sprintf($backorder_select, $table_prefix . 'OrderItems') . ' AS BackOrderFlagCalc, | ||||
| PackageNum, | PackageNum, | ||||
| ProductName, | ProductName, | ||||
| ShippingTypeId, | ShippingTypeId, | ||||
| CONCAT('.TABLE_PREFIX.'Products.Type, | CONCAT('.TABLE_PREFIX.'Products.Type, | ||||
| "_", | "_", | ||||
| IF ('.TABLE_PREFIX.'Products.Type NOT IN ('.PRODUCT_TYPE_DOWNLOADABLE.','.PRODUCT_TYPE_TANGIBLE.'), | IF ('.TABLE_PREFIX.'Products.Type NOT IN ('.PRODUCT_TYPE_DOWNLOADABLE.','.PRODUCT_TYPE_TANGIBLE.'), | ||||
| CONCAT(OrderItemId, "_", '.TABLE_PREFIX.'Products.ProductId), | CONCAT(OrderItemId, "_", '.TABLE_PREFIX.'Products.ProductId), | ||||
| ""), | ""), | ||||
| ▲ Show 20 Lines • Show All 103 Lines • ▼ Show 20 Line(s) | |||||
| $product_ids = Array(); | $product_ids = Array(); | ||||
| foreach ($downl_products as $downl_product) { | foreach ($downl_products as $downl_product) { | ||||
| $this->raiseProductEvent('Approve', $downl_product['ProductId'], $downl_product, $next_sub_number); | $this->raiseProductEvent('Approve', $downl_product['ProductId'], $downl_product, $next_sub_number); | ||||
| $product_ids[] = $downl_product['ProductId']; | $product_ids[] = $downl_product['ProductId']; | ||||
| } | } | ||||
| break; | break; | ||||
| case PRODUCT_TYPE_TANGIBLE: | case PRODUCT_TYPE_TANGIBLE: | ||||
| $sql = 'SELECT '.$backorder_select.' AS BackOrderFlagCalc, oi.* | $sql = 'SELECT ' . sprintf($backorder_select, 'oi') . ' AS BackOrderFlagCalc, oi.* | ||||
| FROM '.TABLE_PREFIX.'OrderItems oi | FROM ' . TABLE_PREFIX . 'OrderItems oi | ||||
| LEFT JOIN '.TABLE_PREFIX.'Products p ON p.ProductId = oi.ProductId | LEFT JOIN ' . TABLE_PREFIX . 'Products p ON p.ProductId = oi.ProductId | ||||
| WHERE (OrderId = %s) AND (p.Type = '.PRODUCT_TYPE_TANGIBLE.') | WHERE (OrderId = %s) AND (p.Type = ' . PRODUCT_TYPE_TANGIBLE . ') | ||||
| HAVING BackOrderFlagCalc = 0'; | HAVING BackOrderFlagCalc = 0'; | ||||
| $products = $this->Conn->Query( sprintf($sql, $ord_id) ); | $products = $this->Conn->Query( sprintf($sql, $ord_id) ); | ||||
| foreach ($products as $product) { | foreach ($products as $product) { | ||||
| $this->raiseProductEvent('Approve', $product['ProductId'], $product, $next_sub_number); | $this->raiseProductEvent('Approve', $product['ProductId'], $product, $next_sub_number); | ||||
| } | } | ||||
| break; | break; | ||||
| ▲ Show 20 Lines • Show All 1100 Lines • Show Last 20 Lines | |||||