Index: branches/5.2.x/units/orders/orders_event_handler.php =================================================================== diff -u -N -r14813 -r14816 --- branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 14813) +++ branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 14816) @@ -1,6 +1,6 @@ Application->getUnitOption($event->Prefix,'TableName'); - $id_field = $this->Application->getUnitOption($event->Prefix,'IDField'); - $user_id = $this->Application->RecallVar('user_id'); - $this->Conn->Query('UPDATE '.$table.' SET PortalUserId = '.$user_id.' WHERE '.$id_field.' = '.$order_id); + $user =& $this->Application->recallObject('u.current'); + /* @var $user UsersItem */ - $affiliate_id = $this->isAffiliate($user_id); - if($affiliate_id) - { - $this->Conn->Query('UPDATE '.$table.' SET AffiliateId = '.$affiliate_id.' WHERE '.$id_field.' = '.$order_id); + $affiliate_id = $this->isAffiliate( $user->GetID() ); + + $fields_hash = Array ( + 'PortalUserId' => $user->GetID(), + 'BillingEmail' => $user->GetDBField('Email'), + ); + + if ( $affiliate_id ) { + $fields_hash['AffiliateId'] = $affiliate_id; } + + $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); + $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); + + $this->Conn->doUpdate($fields_hash, $table_name, $id_field . ' = ' . $order_id); } function isAffiliate($user_id) { $affiliate_user =& $this->Application->recallObject('affil.-item', null, Array('skip_autoload' => true) ); + /* @var $affiliate_user kDBItem */ + $affiliate_user->Load($user_id, 'PortalUserId'); + return $affiliate_user->isLoaded() ? $affiliate_user->GetDBField('AffiliateId') : 0; } @@ -1320,31 +1331,45 @@ $object->SetDBField('VisitId', $this->Application->RecallVar('visit_id') ); // get user - $user_id = $this->Application->RecallVar('user_id'); - if (!$user_id) { + if ( $this->Application->LoggedIn() ) { + $user =& $this->Application->recallObject('u.current'); + /* @var $user UsersItem */ + + $user_id = $user->GetID(); + $object->SetDBField('BillingEmail', $user->GetDBField('Email')); + } + else { $user_id = USER_GUEST; } + $object->SetDBField('PortalUserId', $user_id); // get affiliate $affiliate_id = $this->isAffiliate($user_id); - if ($affiliate_id) { + if ( $affiliate_id ) { $object->SetDBField('AffiliateId', $affiliate_id); } else { $affiliate_storage_method = $this->Application->ConfigValue('Comm_AffiliateStorageMethod'); - $object->SetDBField('AffiliateId', $affiliate_storage_method == 1 ? (int)$this->Application->RecallVar('affiliate_id') : (int)$this->Application->GetVar('affiliate_id') ); + + if ( $affiliate_storage_method == 1 ) { + $object->SetDBField('AffiliateId', (int)$this->Application->RecallVar('affiliate_id')); + } + else { + $object->SetDBField('AffiliateId', (int)$this->Application->GetVar('affiliate_id')); + } } // get payment type $default_type = $this->_getDefaultPaymentType(); - if ($default_type) { + if ( $default_type ) { $object->SetDBField('PaymentType', $default_type); } $created = $object->Create(); - if ($created) { + + if ( $created ) { $id = $object->GetID(); $this->Application->SetVar($event->getPrefixSpecial(true) . '_id', $id); Index: branches/5.2.x/units/orders/orders_tag_processor.php =================================================================== diff -u -N -r14813 -r14816 --- branches/5.2.x/units/orders/orders_tag_processor.php (.../orders_tag_processor.php) (revision 14813) +++ branches/5.2.x/units/orders/orders_tag_processor.php (.../orders_tag_processor.php) (revision 14816) @@ -1,6 +1,6 @@ Application->ParseBlock(Array ('name' => $params['table_header_render_as'])) . $o; + } + + if ( getArrayValue($params, 'table_footer_render_as') ) { + $o .= $this->Application->ParseBlock(Array ('name' => $params['table_footer_render_as'])); + } + return $o; }