Index: trunk/core/units/visits/visits_tag_processor.php =================================================================== diff -u -N -r2407 -r2417 --- trunk/core/units/visits/visits_tag_processor.php (.../visits_tag_processor.php) (revision 2407) +++ trunk/core/units/visits/visits_tag_processor.php (.../visits_tag_processor.php) (revision 2417) @@ -21,16 +21,88 @@ return 'javascript:OpenUserEdit('.$resource_id.');'; } } - /* - function GetDate($params){ - $get_search_from = $this->Application->GetVar('search_date_from'); - $from_date = $get_search_from?$get_search_from:$this->Application->RecallVar($this->Prefix.'_search_date_from'); - $get_search_to = $this->Application->GetVar('search_date_to'); - $to_date = $get_search_to?$get_search_to:$this->Application->RecallVar($this->Prefix.'_search_date_to'); - if ($params['date_type'] == 'from') return $from_date; - if ($params['date_type'] == 'to') return $to_date; + + function GetTotalAffiliateVisits($params){ + $object_user = &$this->Application->recallObject('u'); + + $sql='SELECT COUNT(*) FROM '.TABLE_PREFIX.'Visits vis + LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId) + WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId'); + return $this->Conn->GetOne($sql); + } - */ + + function AffiliateOrderInfo($params){ + $object_user = &$this->Application->recallObject('u'); + + $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT-CouponDiscount) as TotalAmount + FROM '.TABLE_PREFIX.'Orders ord + LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId) + LEFT JOIN '.TABLE_PREFIX.'Visits vis ON (ord.VisitId = vis.VisitId) + WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId').' + GROUP BY af.PortalUserId + '; + + $info = $this->Conn->GetRow($sql); + + $params_info = $this->prepareTagParams($params); + $params_info['name'] = $params_info['render_as']; + $params_info = array_merge_recursive2($params_info, $info); + $params_info['TotalVisits'] = $this->GetTotalAffiliateVisits($params); + + $this->Application->setUnitOption('ord', 'AutoLoad', false); + $order_object = &$this->Application->recallObject('ord.totals'); + $order_object->SetDBField('AffiliateCommission', $params_info['TotalCommission']); + $order_object->SetDBField('TotalAmount', $params_info['TotalAmount']); + + $fields_to_convert = array('AffiliateCommission', 'TotalAmount'); + + + if( $this->HasParam($params, 'currency') ) + { + $iso = $this->GetISO($params['currency']); + foreach($fields_to_convert as $key => $field){ + $iso = $this->GetISO($params['currency']); + $original = $order_object->GetDBField($field); + $value = $this->ConvertCurrency($original, $iso); + $order_object->SetDBField($field, $value); + + } + + $params_info['TotalCommission'] = $this->AddCurrencySymbol($order_object->GetField('AffiliateCommission'), $iso); + $params_info['TotalAmount'] = $this->AddCurrencySymbol($order_object->GetField('TotalAmount'), $iso); + } + + + + + return $this->Application->ParseBlock($params_info); + + } + + function ListVisitors($params){ + + $o = ''; + + $params['render_as'] = $params['item_render_as']; + + $o_visitors = $this->PrintList2($params); + + if ($o_visitors){ + + $visitors_params = array('name' => $params['header_render_as']); + $o = $this->Application->ParseBlock($visitors_params); + $o .= $o_visitors; + + }else { + $visitors_params = array('name' => $params['empty_myvisitors_render_as']); + $o = $this->Application->ParseBlock($visitors_params); + } + + return $o; + + } + } ?> \ No newline at end of file