Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Mon, Aug 11, 9:02 AM

in-portal

Index: branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php
===================================================================
--- branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php (revision 2739)
+++ branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php (revision 2740)
@@ -1,153 +1,166 @@
<?php
class VisitsTagProcessor extends kDBTagProcessor {
function UserFound($params)
{
$virtual_users = Array(-1,-2, 0);
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
return !in_array( $object->GetDBField( $params['user_field'] ) , $virtual_users );
}
function UserLink($params)
{
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
$user_id = $object->GetDBField( $params['user_field'] );
if($user_id)
{
//return $this->Application->HREF('in-commerce/users/users_edit_general','', Array('u_id' => $user_id) );
$resource_id = $this->Conn->GetOne('SELECT ResourceId FROM '.TABLE_PREFIX.'PortalUser WHERE PortalUserId = '.$user_id);
return 'javascript:OpenUserEdit('.$resource_id.');';
}
}
- 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 getDateLimitClause($field)
+ {
+ $search_filter = $this->Application->RecallVar( $this->getPrefixSpecial().'_search_filter');
+ if($search_filter)
+ {
+ $search_filter = unserialize($search_filter);
+ return $search_filter[$field]['value'];
+ }
+ return '';
}
- function AffiliateOrderInfo($params){
- $object_user = &$this->Application->recallObject('u');
-
- $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT) 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').'
- AND ord.Status = 4
- GROUP BY af.PortalUserId
- ';
-
- $info = $this->Conn->GetRow($sql);
-
- $params_info = $this->prepareTagParams($params);
- $params_info['name'] = $params_info['render_as'];
- if (!$info['OrderCount']) $info['OrderCount'] = 0;
- if (!$info['TotalAmount']) $info['TotalAmount'] = 0;
- if (!$info['AffiliateCommission']) $info['AffiliateCommission'] = 0;
-
- $params_info = array_merge_recursive2($params_info, $info);
- $params_info['TotalVisits'] = $this->GetTotalAffiliateVisits($params);
-
- //$order_autoload = $this->Application->getUnitOption('ord', 'AutoLoad');
- //$this->Application->setUnitOption('ord', 'AutoLoad', false);
- $order_object = &$this->Application->recallObject('ord.totals', null, array('skip_autoload'=>true));
- //$this->Application->setUnitOption('ord', 'AutoLoad', $order_autoload);
+ function AffiliateOrderInfo($params)
+ {
+ $list =& $this->GetList($params);
- $order_object->SetDBField('AffiliateCommission', $params_info['TotalCommission']);
- $order_object->SetDBField('TotalAmount', $params_info['TotalAmount']);
+ $date_limit = str_replace($list->TableName, 'vis', $this->getDateLimitClause('VisitDate') );
- $fields_to_convert = array('AffiliateCommission', 'TotalAmount');
+ $affil_table = $this->Application->getUnitOption('affil', 'TableName');
+ $affil_idfield = $this->Application->getUnitOption('affil', 'IDField');
+ $sql = 'SELECT '.$affil_idfield.' FROM '.$affil_table.' WHERE PortalUserId = '.$this->Application->GetVar('u_id');
+ $affiliate_id = $this->Conn->GetOne($sql);
+
+ $sql = 'SELECT COUNT(DISTINCT vis.PortalUserId) AS TotalVisitors, COUNT(ord.OrderId) AS OrderCount
+ FROM '.$list->TableName.' vis
+ LEFT JOIN '.TABLE_PREFIX.'Orders ord ON ord.VisitId = vis.VisitId
+ WHERE (vis.AffiliateId = '.$affiliate_id.') AND (ord.Status = '.ORDER_STATUS_PROCESSED.')'.($date_limit ? ' AND '.$date_limit : '');
+
+ $result = $this->Conn->GetRow($sql);
+ $result['OrderTotalAmount'] = $list->getTotal('OrderTotalAmount', 'SUM');
+ $result['OrderAffiliateCommission'] = $list->getTotal('OrderAffiliateCommission', 'SUM');
+ $block_params = $this->prepareTagParams($params);
+ $block_params['name'] = $params['render_as'];
+
+ $format_fields = Array('OrderTotalAmount', 'OrderAffiliateCommission');
- if( $this->HasParam($params, 'currency') )
- {
- $iso = $this->GetISO($params['currency']);
- foreach($fields_to_convert as $key => $field){
+ if( $this->HasParam($params, 'currency') )
+ {
$iso = $this->GetISO($params['currency']);
- $original = $order_object->GetDBField($field);
- $value = $this->ConvertCurrency($original, $iso);
- $order_object->SetDBField($field, $value);
-
+ foreach($format_fields as $format_field)
+ {
+ $value = sprintf($list->Fields[$format_field]['format'], $result[$format_field]);
+ $value = $this->ConvertCurrency($value, $iso);
+ $value = $this->AddCurrencySymbol($value, $iso);
+ $result[$format_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);
+ $block_params = array_merge_recursive2($block_params, $result);
+ return $this->Application->ParseBlock($block_params);
}
+
+ /*function ShowTotals($params)
+ {
+ $list =& $this->GetList($params);
+ $block_params = $this->prepareTagParams($params);
+ $block_params = array_merge_recursive2($block_params, $list->Totals);
+ $block_params['name'] = $this->SelectParam($params, 'render_as,block');
+ return $this->Application->ParseBlock($block_params);
+ }*/
+
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;
+ $header = '';
+ $footer = '';
+
+ $block_params = $this->prepareTagParams($params);
+
+ $header_block = getArrayValue($params, 'header_render_as');
+ if($header_block)
+ {
+ $block_params['name'] = $header_block;
+ $header = $this->Application->ParseBlock($block_params);
+ }
+
+ $footer_block = getArrayValue($params, 'footer_render_as');
+ if($footer_block)
+ {
+ $block_params['name'] = $footer_block;
+ $footer = $this->Application->ParseBlock($block_params);
+ }
+ $o = $header.$o_visitors.$footer;
}
else
{
$visitors_params = array('name' => $params['empty_myvisitors_render_as']);
$o = $this->Application->ParseBlock($visitors_params);
}
return $o;
}
/*
function OrderLink($params){
$object = &$this->Application->recallObject($this->getPrefixSpecial());
$params['ord_id'] = $object->GetDBField('OrderId');
$main_processor =& $this->Application->recallObject('m_TagProcessor');
return $main_processor->T($params);
}
*/
/**
* Enter description here...
*
* @param unknown_type $params
* @return kDBList
*/
function &GetList($params)
{
$list_name = $this->SelectParam($params, 'list_name,name');
if (!$list_name) {
$list_name = $this->Application->Parser->GetParam('list_name');
}
$types = $this->SelectParam($params, 'types');
$special='';
if ($types=='myvisitororders' || $types=='myvisitors'){
$special = 'incommerce';
$names_mapping = $this->Application->GetVar('NamesToSpecialMapping');
$names_mapping[$list_name] = $special;
$this->Application->SetVar('NamesToSpecialMapping', $names_mapping);
}
return parent::GetList($params);
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.7.2.2
\ No newline at end of property
+1.7.2.3
\ No newline at end of property

Event Timeline