Index: trunk/kernel/units/visits/visits_event_handler.php =================================================================== diff -u -N -r2417 -r2434 --- trunk/kernel/units/visits/visits_event_handler.php (.../visits_event_handler.php) (revision 2417) +++ trunk/kernel/units/visits/visits_event_handler.php (.../visits_event_handler.php) (revision 2434) @@ -50,6 +50,8 @@ $user_id = $this->Application->GetVar('u_id'); $object->addFilter('myitems_user1','au.PortalUserId = '.$user_id); $object->addFilter('myitems_user2','au.PortalUserId >0'); + //$object->AddGroupByField('VisitDate'); + $object->AddGroupByField('%1$s.VisitId'); } @@ -64,7 +66,29 @@ } - + /** + * Apply some special processing to + * object beeing recalled before using + * it in other events that call prepareObject + * + * @param kBase $object + * @param kEvent $event + * @access protected + */ + function prepareObject(&$object, &$event) + { + $types = $event->getEventParam('types'); + if ($types=='myvisitors' || !$types){ + $object->addCalculatedField('OrderTotalAmountSum', 'SUM(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)'); + $object->addCalculatedField('OrderAffiliateCommissionSum', 'SUM(ord.AffiliateCommission)'); + $object->addCalculatedField('OrderCountByVisit', 'COUNT(OrderId)'); + } + if (!$types){ + $object->AddGroupByField('%1$s.VisitId'); + } + + } + } ?> \ No newline at end of file Index: trunk/core/units/visits/visits_event_handler.php =================================================================== diff -u -N -r2417 -r2434 --- trunk/core/units/visits/visits_event_handler.php (.../visits_event_handler.php) (revision 2417) +++ trunk/core/units/visits/visits_event_handler.php (.../visits_event_handler.php) (revision 2434) @@ -50,6 +50,8 @@ $user_id = $this->Application->GetVar('u_id'); $object->addFilter('myitems_user1','au.PortalUserId = '.$user_id); $object->addFilter('myitems_user2','au.PortalUserId >0'); + //$object->AddGroupByField('VisitDate'); + $object->AddGroupByField('%1$s.VisitId'); } @@ -64,7 +66,29 @@ } - + /** + * Apply some special processing to + * object beeing recalled before using + * it in other events that call prepareObject + * + * @param kBase $object + * @param kEvent $event + * @access protected + */ + function prepareObject(&$object, &$event) + { + $types = $event->getEventParam('types'); + if ($types=='myvisitors' || !$types){ + $object->addCalculatedField('OrderTotalAmountSum', 'SUM(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)'); + $object->addCalculatedField('OrderAffiliateCommissionSum', 'SUM(ord.AffiliateCommission)'); + $object->addCalculatedField('OrderCountByVisit', 'COUNT(OrderId)'); + } + if (!$types){ + $object->AddGroupByField('%1$s.VisitId'); + } + + } + } ?> \ No newline at end of file Index: trunk/core/units/visits/visits_config.php =================================================================== diff -u -N -r2417 -r2434 --- trunk/core/units/visits/visits_config.php (.../visits_config.php) (revision 2417) +++ trunk/core/units/visits/visits_config.php (.../visits_config.php) (revision 2434) @@ -30,6 +30,7 @@ 'AffiliatePortalUserId' => 'af.PortalUserId', 'OrderTotalAmount' => '(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)', 'OrderAffiliateCommission' => 'ord.AffiliateCommission', + 'OrderNumber' => 'CONCAT(LPAD(Number,6,0),\'-\',LPAD(SubNumber,3,0) )', ), ), @@ -38,8 +39,8 @@ LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId LEFT JOIN '.TABLE_PREFIX.'PortalUser au ON af.PortalUserId = au.PortalUserId - LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId - '), + LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId' + ), 'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s @@ -70,7 +71,9 @@ 'AffiliateUser' => Array('type'=>'string'), 'AffiliatePortalUserId' => Array('type'=>'int'), 'OrderTotalAmount' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'), + 'OrderTotalAmountSum' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'), 'OrderAffiliateCommission' => Array('type' => 'numeric', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'), + 'OrderAffiliateCommissionSum' => Array('type' => 'numeric', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'), ), 'Grids' => Array( @@ -82,8 +85,8 @@ 'Referer' => Array( 'title'=>'la_col_Referer', 'data_block' => 'grid_referer_td' ), 'UserName' => Array('title' => 'la_col_Username', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId'), 'AffiliateUser' => Array( 'title' => 'la_col_AffiliateUser', 'data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId'), - 'OrderTotalAmount' => Array( 'title' => 'la_col_OrderTotal'), - 'OrderAffiliateCommission' => Array( 'title' => 'la_col_Commission'), + 'OrderTotalAmountSum' => Array( 'title' => 'la_col_OrderTotal'), + 'OrderAffiliateCommissionSum' => Array( 'title' => 'la_col_Commission'), ), ), ), Index: trunk/kernel/units/visits/visits_config.php =================================================================== diff -u -N -r2417 -r2434 --- trunk/kernel/units/visits/visits_config.php (.../visits_config.php) (revision 2417) +++ trunk/kernel/units/visits/visits_config.php (.../visits_config.php) (revision 2434) @@ -30,6 +30,7 @@ 'AffiliatePortalUserId' => 'af.PortalUserId', 'OrderTotalAmount' => '(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)', 'OrderAffiliateCommission' => 'ord.AffiliateCommission', + 'OrderNumber' => 'CONCAT(LPAD(Number,6,0),\'-\',LPAD(SubNumber,3,0) )', ), ), @@ -38,8 +39,8 @@ LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId LEFT JOIN '.TABLE_PREFIX.'PortalUser au ON af.PortalUserId = au.PortalUserId - LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId - '), + LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId' + ), 'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s @@ -70,7 +71,9 @@ 'AffiliateUser' => Array('type'=>'string'), 'AffiliatePortalUserId' => Array('type'=>'int'), 'OrderTotalAmount' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'), + 'OrderTotalAmountSum' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'), 'OrderAffiliateCommission' => Array('type' => 'numeric', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'), + 'OrderAffiliateCommissionSum' => Array('type' => 'numeric', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'), ), 'Grids' => Array( @@ -82,8 +85,8 @@ 'Referer' => Array( 'title'=>'la_col_Referer', 'data_block' => 'grid_referer_td' ), 'UserName' => Array('title' => 'la_col_Username', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId'), 'AffiliateUser' => Array( 'title' => 'la_col_AffiliateUser', 'data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId'), - 'OrderTotalAmount' => Array( 'title' => 'la_col_OrderTotal'), - 'OrderAffiliateCommission' => Array( 'title' => 'la_col_Commission'), + 'OrderTotalAmountSum' => Array( 'title' => 'la_col_OrderTotal'), + 'OrderAffiliateCommissionSum' => Array( 'title' => 'la_col_Commission'), ), ), ), Index: trunk/kernel/units/visits/visits_tag_processor.php =================================================================== diff -u -N -r2417 -r2434 --- trunk/kernel/units/visits/visits_tag_processor.php (.../visits_tag_processor.php) (revision 2417) +++ trunk/kernel/units/visits/visits_tag_processor.php (.../visits_tag_processor.php) (revision 2434) @@ -47,6 +47,10 @@ $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); Index: trunk/core/units/visits/visits_tag_processor.php =================================================================== diff -u -N -r2417 -r2434 --- trunk/core/units/visits/visits_tag_processor.php (.../visits_tag_processor.php) (revision 2417) +++ trunk/core/units/visits/visits_tag_processor.php (.../visits_tag_processor.php) (revision 2434) @@ -47,6 +47,10 @@ $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);