getUser()->getCulture(); // ustawienie wyglądu daty dla zakresu if (count($range["view"])>25) { foreach ($range["view"] as $value) { $chart_labels[] = $value; } } else { foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_labels[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_labels[] = date('m-Y', strtotime($value)); } } } $reports['chart']['labels'] =$chart_labels; foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_dates[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_dates[] = date('m-Y', strtotime($value)); } } $reports['chart']['dates'] = $chart_dates; /* echo "
";
    print_r($reports);
    echo "
"; die();*/ if (isset($campaign_1)) { $camp_1 = explode("_", $campaign_1); $camp_1 = $camp_1[1]; $c = new Criteria(); $c->add(AdsTrackerCampaignPeer::ID, $camp_1); $object_campaign_1 = AdsTrackerCampaignPeer::doSelectOne($c); if ($object_campaign_1) { $label = $object_campaign_1->getAdsTrackerPlatform()->getAdsName()." - ".$object_campaign_1->getAdsName(); $campaign_array[$label] = $camp_1; } foreach ($range["data"] as $value) { // $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j/Y', strtotime($value)); if ($chartDisplayType=="day") { $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($value)); $value = $date; } $reports['campaign'][$camp_1]['days'][$value]['date'] = $date; $reports['campaign'][$camp_1]['days'][$value]['entering'] = 0; $reports['campaign'][$camp_1]['days'][$value]['day_total_brutto'] = 0; $reports['campaign'][$camp_1]['days'][$value]['day_total_order'] = 0; } } if (isset($campaign_2) && $campaign_2!="none") { $camp_2 = explode("_", $campaign_2); $camp_2 = $camp_2[1]; $c = new Criteria(); $c->add(AdsTrackerCampaignPeer::ID, $camp_2); $object_campaign_2 = AdsTrackerCampaignPeer::doSelectOne($c); if ($object_campaign_2) { $label = $object_campaign_2->getAdsTrackerPlatform()->getAdsName()." - ".$object_campaign_2->getAdsName(); $campaign_array[$label] = $camp_2; } foreach ($range["data"] as $value) { // $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j/Y', strtotime($value)); if ($chartDisplayType=="day") { $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($value)); $value = $date; } $reports['campaign'][$camp_2]['days'][$value]['date'] = $date; $reports['campaign'][$camp_2]['days'][$value]['entering'] = 0; $reports['campaign'][$camp_2]['days'][$value]['day_total_brutto'] = 0; $reports['campaign'][$camp_2]['days'][$value]['day_total_order'] = 0; } } /*echo "
";
    print_r($reports);
    echo "
"; die();*/ foreach ($campaign_array as $campaign_label => $campaign_id) { $c = new Criteria(); $c->add(AdsTrackerCampaignPeer::ID, $campaign_id); $c->addJoin(AdsTrackerCampaignPeer::ID, AdsTrackerListPeer::APP_ADS_TRACKER_CAMPAIGN_ID); $c->addJoin(AdsTrackerListPeer::ID, AdsTrackerEnteringPeer::APP_ADS_TRACKER_LIST_ID); $c->addSelectColumn(AdsTrackerCampaignPeer::ADS_NAME); $c->addSelectColumn(AdsTrackerEnteringPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerEnteringPeer::ADS_ENTERING); $c->addSelectColumn(AdsTrackerCampaignPeer::COLOR); $criterion = $c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerEnteringPeer::CREATED_AT)); } $rs = AdsTrackerPlatformPeer::doSelectRS($c); $sum = 0; $reports['campaign'][$campaign_id]['name'] = $campaign_label; $reports['campaign'][$campaign_id]['total_entering'] = 0; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum += $row[2]; $reports['campaign'][$campaign_id]['total_entering'] = $sum; $date = explode(" ", $row[1]); $date = $date[0]; if ($chartDisplayType=="day") { $reports['campaign'][$campaign_id]['days'][$date]['entering'] = $row[2]; } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); $reports['campaign'][$campaign_id]['days'][$date]['entering'] = $row[2]; } $reports['campaign'][$campaign_id]['color'] = $row[3]; } } if (isset($reports['campaign'][$campaign_id]['days'])) { ksort($reports['campaign'][$campaign_id]['days']); } } foreach ($campaign_array as $campaign_label => $campaign_id) { $c = new Criteria(); $c->add(AdsTrackerOrderPeer::APP_ADS_TRACKER_CAMPAIGN_ID, $campaign_id); $c->addSelectColumn(AdsTrackerOrderPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_COST_BRUTTO); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_ID); $criterion = $c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerOrderPeer::CREATED_AT)); } $rs = AdsTrackerOrderPeer::doSelectRS($c); $sum_total_brutto = 0; $sum_total_order = 0; $order_ids = ""; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum_total_brutto += $row[1]; $sum_total_order += 1; $date = explode(" ", $row[0]); $date = $date[0]; if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); } @$reports['campaign'][$campaign_id]['days'][$date]['day_total_brutto'] += $row[1]; @$reports['campaign'][$campaign_id]['days'][$date]['day_total_order'] += 1; @$reports['campaign'][$campaign_id]['days'][$date]['orders_ids'] .= $row[2].","; $order_ids .= $row[2].","; } } $reports['campaign'][$campaign_id]['total_order'] = $sum_total_order; $reports['campaign'][$campaign_id]['conversion'] = $sum_total_order; $reports['campaign'][$campaign_id]['total_brutto'] = number_format($sum_total_brutto, 2, '.', ''); $reports['campaign'][$campaign_id]['order_ids'] = $order_ids; if ($sum_total_order>0) { $reports['campaign'][$campaign_id]['total_brutto_median'] = number_format(round($sum_total_brutto/$sum_total_order,'2'), 2, '.', ''); $reports['campaign'][$campaign_id]['ctr'] = round(($reports['campaign'][$campaign_id]['conversion']/$reports['campaign'][$campaign_id]['total_entering'])*100,'2'); } else { $reports['campaign'][$campaign_id]['total_brutto_median'] = 0; $reports['campaign'][$campaign_id]['ctr'] = 0; } if (isset($reports['campaign'][$campaign_id]['days'])) { ksort($reports['campaign'][$campaign_id]['days']); } } //dane dla wykresu foreach ($reports['campaign'] as $key => $campaign) { if (!isset($campaign['color'])) { $campaign['color'] ="ccc"; } $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['color'] = $campaign['color']; foreach ($campaign as $key2 => $days) { if (is_array($days) || is_object($days)) { foreach ($days as $day) { $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['entering'][] = $day['entering']; $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['count'][] = $day['day_total_order']; $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['amount'][] = number_format($day['day_total_brutto'], 2, '.', ''); } } } } // die(); // echo "
";
        // print_r($reports);
        // echo "
"; return $reports; } /* Raport wejść kampanii */ public static function getReportsCampaignEnteringValue($filters) { $total_netto = 0; $total_brutto = 0; $total_count = 0; $from_date = $filters['from_date']; $to_date = $filters['to_date']; $campaign_1 = $filters['platform_campaign_1']; $campaign_2 = $filters['platform_campaign_2']; $reports = array(); $chartDisplayType = appAdsTracker::chartDisplayType($from_date, $to_date); // print_r($platforms); // die(); $reports = array(); if ($chartDisplayType=="day") { //dla dni $range = appAdsTracker::createDaysRangeArray($from_date,$to_date); } if ($chartDisplayType=="month") { // dla miesięcy $range = appAdsTracker::createMonthsRangeArray($from_date,$to_date); } // dla tygodni //$range = appAdsTracker::createWeekRangeArray($from_date,$to_date); $culture = sfContext::getInstance()->getUser()->getCulture(); // ustawienie wyglądu daty dla zakresu if (count($range["view"])>25) { foreach ($range["view"] as $value) { $chart_labels[] = $value; } } else { foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_labels[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_labels[] = date('m-Y', strtotime($value)); } } } $reports['chart']['labels'] =$chart_labels; foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_dates[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_dates[] = date('m-Y', strtotime($value)); } } $reports['chart']['dates'] = $chart_dates; /* echo "
";
         print_r($reports);
         echo "
"; die();*/ if (isset($campaign_1)) { $camp_1 = explode("_", $campaign_1); $camp_1 = $camp_1[1]; $c = new Criteria(); $c->add(AdsTrackerCampaignPeer::ID, $camp_1); $object_campaign_1 = AdsTrackerCampaignPeer::doSelectOne($c); if ($object_campaign_1) { $label = $object_campaign_1->getAdsTrackerPlatform()->getAdsName()." - ".$object_campaign_1->getAdsName(); $campaign_array[$label] = $camp_1; } foreach ($range["data"] as $value) { // $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j/Y', strtotime($value)); if ($chartDisplayType=="day") { $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($value)); $value = $date; } $reports['campaign'][$camp_1]['days'][$value]['date'] = $date; $reports['campaign'][$camp_1]['days'][$value]['entering'] = 0; $reports['campaign'][$camp_1]['days'][$value]['day_total_brutto'] = 0; $reports['campaign'][$camp_1]['days'][$value]['day_total_order'] = 0; } } if (isset($campaign_2) && $campaign_2!="none") { $camp_2 = explode("_", $campaign_2); $camp_2 = $camp_2[1]; $c = new Criteria(); $c->add(AdsTrackerCampaignPeer::ID, $camp_2); $object_campaign_2 = AdsTrackerCampaignPeer::doSelectOne($c); if ($object_campaign_2) { $label = $object_campaign_2->getAdsTrackerPlatform()->getAdsName()." - ".$object_campaign_2->getAdsName(); $campaign_array[$label] = $camp_2; } foreach ($range["data"] as $value) { // $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j/Y', strtotime($value)); if ($chartDisplayType=="day") { $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($value)); $value = $date; } $reports['campaign'][$camp_2]['days'][$value]['date'] = $date; $reports['campaign'][$camp_2]['days'][$value]['entering'] = 0; $reports['campaign'][$camp_2]['days'][$value]['day_total_brutto'] = 0; $reports['campaign'][$camp_2]['days'][$value]['day_total_order'] = 0; } } /*echo "
";
        print_r($reports);
        echo "
"; die();*/ foreach ($campaign_array as $campaign_label => $campaign_id) { $c = new Criteria(); $c->add(AdsTrackerCampaignPeer::ID, $campaign_id); $c->addJoin(AdsTrackerCampaignPeer::ID, AdsTrackerListPeer::APP_ADS_TRACKER_CAMPAIGN_ID); $c->addJoin(AdsTrackerListPeer::ID, AdsTrackerEnteringPeer::APP_ADS_TRACKER_LIST_ID); $c->addSelectColumn(AdsTrackerCampaignPeer::ADS_NAME); $c->addSelectColumn(AdsTrackerEnteringPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerEnteringPeer::ADS_ENTERING); $c->addSelectColumn(AdsTrackerCampaignPeer::COLOR); $criterion = $c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerEnteringPeer::CREATED_AT)); } $rs = AdsTrackerPlatformPeer::doSelectRS($c); $sum = 0; $reports['campaign'][$campaign_id]['name'] = $campaign_label; $reports['campaign'][$campaign_id]['total_entering'] = 0; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum += $row[2]; $reports['campaign'][$campaign_id]['total_entering'] = $sum; $date = explode(" ", $row[1]); $date = $date[0]; if ($chartDisplayType=="day") { $reports['campaign'][$campaign_id]['days'][$date]['entering'] += $row[2]; } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); $reports['campaign'][$campaign_id]['days'][$date]['entering'] += $row[2]; } $reports['campaign'][$campaign_id]['color'] = $row[3]; } } if (isset($reports['campaign'][$campaign_id]['days'])) { ksort($reports['campaign'][$campaign_id]['days']); } } foreach ($campaign_array as $campaign_label => $campaign_id) { $c = new Criteria(); $c->add(AdsTrackerOrderPeer::APP_ADS_TRACKER_CAMPAIGN_ID, $campaign_id); $c->addSelectColumn(AdsTrackerOrderPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_COST_BRUTTO); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_ID); $criterion = $c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerOrderPeer::CREATED_AT)); } $rs = AdsTrackerOrderPeer::doSelectRS($c); $sum_total_brutto = 0; $sum_total_order = 0; $order_ids = ""; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum_total_brutto += $row[1]; $sum_total_order += 1; $date = explode(" ", $row[0]); $date = $date[0]; if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); } @$reports['campaign'][$campaign_id]['days'][$date]['day_total_brutto'] += $row[1]; @$reports['campaign'][$campaign_id]['days'][$date]['day_total_order'] += 1; @$reports['campaign'][$campaign_id]['days'][$date]['orders_ids'] .= $row[2].","; $order_ids .= $row[2].","; } } $reports['campaign'][$campaign_id]['total_order'] = $sum_total_order; $reports['campaign'][$campaign_id]['conversion'] = $sum_total_order; $reports['campaign'][$campaign_id]['total_brutto'] = number_format($sum_total_brutto, 2, '.', ''); $reports['campaign'][$campaign_id]['order_ids'] = $order_ids; if ($sum_total_order>0) { $reports['campaign'][$campaign_id]['total_brutto_median'] = number_format(round($sum_total_brutto/$sum_total_order,'2'), 2, '.', ''); $reports['campaign'][$campaign_id]['ctr'] = round(($reports['campaign'][$campaign_id]['conversion']/$reports['campaign'][$campaign_id]['total_entering'])*100,'2'); } else { $reports['campaign'][$campaign_id]['total_brutto_median'] = 0; $reports['campaign'][$campaign_id]['ctr'] = 0; } if (isset($reports['campaign'][$campaign_id]['days'])) { ksort($reports['campaign'][$campaign_id]['days']); } } //dane dla wykresu foreach ($reports['campaign'] as $key => $campaign) { if (!isset($campaign['color'])) { $campaign['color'] ="ccc"; } $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['color'] = $campaign['color']; foreach ($campaign as $key2 => $days) { if (is_array($days) || is_object($days)) { foreach ($days as $day) { $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['entering'][] = $day['entering']; $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['count'][] = $day['day_total_order']; $reports['chart']['campaign'][$reports['campaign'][$key]['name']]['amount'][] = number_format($day['day_total_brutto'], 2, '.', ''); } } } } // die(); // echo "
";
        // print_r($reports);
        // echo "
"; return $reports; } /* Raport platform */ public static function getReportsPlatformsValue($filters) { $total_netto = 0; $total_brutto = 0; $total_count = 0; $from_date = $filters['from_date']; $to_date = $filters['to_date']; $platforms = $filters['platform']; $chartDisplayType = appAdsTracker::chartDisplayType($from_date, $to_date); // print_r($platforms); // die(); $reports = array(); if ($chartDisplayType=="day") { //dla dni $range = appAdsTracker::createDaysRangeArray($from_date,$to_date); } if ($chartDisplayType=="month") { // dla miesięcy $range = appAdsTracker::createMonthsRangeArray($from_date,$to_date); } // dla tygodni //$range = appAdsTracker::createWeekRangeArray($from_date,$to_date); $culture = sfContext::getInstance()->getUser()->getCulture(); // ustawienie wyglądu daty dla zakresu if (count($range["view"])>25) { foreach ($range["view"] as $value) { $chart_labels[] = $value; } } else { foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_labels[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_labels[] = date('m-Y', strtotime($value)); } } } $reports['chart']['labels'] =$chart_labels; foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_dates[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_dates[] = date('m-Y', strtotime($value)); } } $reports['chart']['dates'] = $chart_dates; foreach ($platforms as $platform_label => $platform_id) { foreach ($range["data"] as $value) { $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j/Y', strtotime($value)); if ($chartDisplayType=="day") { $date = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($value)); $value = $date; } $reports['platform'][$platform_id]['days'][$value]['date'] = $date; $reports['platform'][$platform_id]['days'][$value]['entering'] = 0; $reports['platform'][$platform_id]['days'][$value]['day_total_brutto'] = 0; $reports['platform'][$platform_id]['days'][$value]['day_total_order'] = 0; } } /*echo "
";
        print_r($reports);
        echo "
"; die();*/ foreach ($platforms as $platform_label => $platform_id) { $c = new Criteria(); $c->add(AdsTrackerPlatformPeer::ID, $platform_id); $c->addJoin(AdsTrackerPlatformPeer::ID, AdsTrackerListPeer::APP_ADS_TRACKER_PLATFORM_ID); $c->addJoin(AdsTrackerListPeer::ID, AdsTrackerEnteringPeer::APP_ADS_TRACKER_LIST_ID); $c->addSelectColumn(AdsTrackerPlatformPeer::ADS_NAME); $c->addSelectColumn(AdsTrackerEnteringPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerEnteringPeer::ADS_ENTERING); $c->addSelectColumn(AdsTrackerPlatformPeer::COLOR); $criterion = $c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); // dla tygodni //$c->addGroupByColumn(sprintf('WEEK(%s)', AdsTrackerEnteringPeer::CREATED_AT)); //$c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerEnteringPeer::CREATED_AT)); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerEnteringPeer::CREATED_AT)); } $rs = AdsTrackerPlatformPeer::doSelectRS($c); $sum = 0; $reports['platform'][$platform_id]['name'] = $platform_label; $reports['platform'][$platform_id]['total_entering'] = 0; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum += $row[2]; $reports['platform'][$platform_id]['total_entering'] = $sum; $date = explode(" ", $row[1]); $date = $date[0]; if ($chartDisplayType=="day") { $reports['platform'][$platform_id]['days'][$date]['entering'] += $row[2]; } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); $reports['platform'][$platform_id]['days'][$date]['entering'] += $row[2]; } $reports['platform'][$platform_id]['color'] = $row[3]; } } if (isset($reports['platform'][$platform_id]['days'])) { ksort($reports['platform'][$platform_id]['days']); } } /* echo "
";
        print_r($reports);
        echo "
"; die();*/ foreach ($platforms as $platform_label => $platform_id) { $c = new Criteria(); $c->add(AdsTrackerOrderPeer::APP_ADS_TRACKER_PLATFORM_ID, $platform_id); $c->addSelectColumn(AdsTrackerOrderPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_COST_BRUTTO); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_ID); $criterion = $c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerOrderPeer::CREATED_AT)); } $rs = AdsTrackerOrderPeer::doSelectRS($c); $sum_total_brutto = 0; $sum_total_order = 0; $order_ids = ""; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum_total_brutto += $row[1]; $sum_total_order += 1; $date = explode(" ", $row[0]); $date = $date[0]; if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); } @$reports['platform'][$platform_id]['days'][$date]['day_total_brutto'] += $row[1]; @$reports['platform'][$platform_id]['days'][$date]['day_total_order'] += 1; @$reports['platform'][$platform_id]['days'][$date]['orders_ids'] .= $row[2].","; $order_ids .= $row[2].","; } } $reports['platform'][$platform_id]['total_order'] = $sum_total_order; $reports['platform'][$platform_id]['conversion'] = $sum_total_order; $reports['platform'][$platform_id]['total_brutto'] = number_format($sum_total_brutto, 2, '.', ''); $reports['platform'][$platform_id]['order_ids'] = $order_ids; if ($sum_total_order>0) { $reports['platform'][$platform_id]['total_brutto_median'] = number_format(round($sum_total_brutto/$sum_total_order,'2'), 2, '.', ''); $reports['platform'][$platform_id]['ctr'] = round(($reports['platform'][$platform_id]['conversion']/$reports['platform'][$platform_id]['total_entering'])*100,'2'); } else { $reports['platform'][$platform_id]['total_brutto_median'] = 0; $reports['platform'][$platform_id]['ctr'] = 0; } if (isset($reports['platform'][$platform_id]['days'])) { ksort($reports['platform'][$platform_id]['days']); } } //dane dla wykresu foreach ($reports['platform'] as $key => $platform) { if (!isset($platform['color'])) { $platform['color'] ="ccc"; } $reports['chart']['platform'][$reports['platform'][$key]['name']]['color'] = $platform['color']; foreach ($platform as $key2 => $days) { if (is_array($days) || is_object($days)) { foreach ($days as $day) { $reports['chart']['platform'][$reports['platform'][$key]['name']]['entering'][] = $day['entering']; $reports['chart']['platform'][$reports['platform'][$key]['name']]['count'][] = $day['day_total_order']; $reports['chart']['platform'][$reports['platform'][$key]['name']]['amount'][] = number_format($day['day_total_brutto'], 2, '.', ''); } } } } // die(); /*echo "
";
        print_r($reports);
        echo "
"; echo $from_date; echo $to_date;*/ return $reports; } /* Raport wejść platform */ public static function getReportsPlatformEnteringValue($filters) { $total_netto = 0; $total_brutto = 0; $total_count = 0; $from_date = $filters['from_date']; $to_date = $filters['to_date']; $platforms = $filters['platform']; $chartDisplayType = appAdsTracker::chartDisplayType($from_date, $to_date); // print_r($platforms); // die(); $reports = array(); if ($chartDisplayType=="day") { //dla dni $range = appAdsTracker::createDaysRangeArray($from_date,$to_date); } if ($chartDisplayType=="month") { // dla miesięcy $range = appAdsTracker::createMonthsRangeArray($from_date,$to_date); } // dla tygodni //$range = appAdsTracker::createWeekRangeArray($from_date,$to_date); $culture = sfContext::getInstance()->getUser()->getCulture(); // ustawienie wyglądu daty dla zakresu if (count($range["view"])>25) { foreach ($range["view"] as $value) { $chart_labels[] = $value; } } else { foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_labels[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_labels[] = date('m-Y', strtotime($value)); } } } $reports['chart']['labels'] =$chart_labels; foreach ($range["data"] as $value) { if ($chartDisplayType=="day") { $chart_dates[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $chart_dates[] = date('m-Y', strtotime($value)); } } $reports['chart']['dates'] = $chart_dates; foreach ($platforms as $platform_label => $platform_id) { foreach ($range["data"] as $value) { $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j/Y', strtotime($value)); if ($chartDisplayType=="day") { $date = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($value)); $value = $date; } $reports['platform'][$platform_id]['days'][$value]['date'] = $date; $reports['platform'][$platform_id]['days'][$value]['entering'] = 0; $reports['platform'][$platform_id]['days'][$value]['day_total_brutto'] = 0; $reports['platform'][$platform_id]['days'][$value]['day_total_order'] = 0; } } /*echo "
";
        print_r($reports);
        echo "
"; die();*/ foreach ($platforms as $platform_label => $platform_id) { $c = new Criteria(); $c->add(AdsTrackerPlatformPeer::ID, $platform_id); $c->addJoin(AdsTrackerPlatformPeer::ID, AdsTrackerListPeer::APP_ADS_TRACKER_PLATFORM_ID); $c->addJoin(AdsTrackerListPeer::ID, AdsTrackerEnteringPeer::APP_ADS_TRACKER_LIST_ID); $c->addSelectColumn(AdsTrackerPlatformPeer::ADS_NAME); $c->addSelectColumn(AdsTrackerEnteringPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerEnteringPeer::ADS_ENTERING); $c->addSelectColumn(AdsTrackerPlatformPeer::COLOR); $criterion = $c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); // dla tygodni //$c->addGroupByColumn(sprintf('WEEK(%s)', AdsTrackerEnteringPeer::CREATED_AT)); //$c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerEnteringPeer::CREATED_AT)); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerEnteringPeer::CREATED_AT)); } $rs = AdsTrackerPlatformPeer::doSelectRS($c); $sum = 0; $reports['platform'][$platform_id]['name'] = $platform_label; $reports['platform'][$platform_id]['total_entering'] = 0; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum += $row[2]; $reports['platform'][$platform_id]['total_entering'] = $sum; $date = explode(" ", $row[1]); $date = $date[0]; if ($chartDisplayType=="day") { $reports['platform'][$platform_id]['days'][$date]['entering'] += $row[2]; } if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); $reports['platform'][$platform_id]['days'][$date]['entering'] += $row[2]; } $reports['platform'][$platform_id]['color'] = $row[3]; } } if (isset($reports['platform'][$platform_id]['days'])) { ksort($reports['platform'][$platform_id]['days']); } } /* echo "
";
        print_r($reports);
        echo "
"; die();*/ foreach ($platforms as $platform_label => $platform_id) { $c = new Criteria(); $c->add(AdsTrackerOrderPeer::APP_ADS_TRACKER_PLATFORM_ID, $platform_id); $c->addSelectColumn(AdsTrackerOrderPeer::CREATED_AT); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_COST_BRUTTO); $c->addSelectColumn(AdsTrackerOrderPeer::ORDER_ID); $criterion = $c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerOrderPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); if ($chartDisplayType=="month") { // dla miesięcy $c->addGroupByColumn(sprintf('MONTH(%s)', AdsTrackerOrderPeer::CREATED_AT)); } $rs = AdsTrackerOrderPeer::doSelectRS($c); $sum_total_brutto = 0; $sum_total_order = 0; $order_ids = ""; while ($rs->next()) { if ($rs) { $row = $rs->getRow(); $sum_total_brutto += $row[1]; $sum_total_order += 1; $date = explode(" ", $row[0]); $date = $date[0]; if ($chartDisplayType=="month") { $date = date('m-Y', strtotime($date)); } @$reports['platform'][$platform_id]['days'][$date]['day_total_brutto'] += $row[1]; @$reports['platform'][$platform_id]['days'][$date]['day_total_order'] += 1; @$reports['platform'][$platform_id]['days'][$date]['orders_ids'] .= $row[2].","; $order_ids .= $row[2].","; } } $reports['platform'][$platform_id]['total_order'] = $sum_total_order; $reports['platform'][$platform_id]['conversion'] = $sum_total_order; $reports['platform'][$platform_id]['total_brutto'] = number_format($sum_total_brutto, 2, '.', ''); $reports['platform'][$platform_id]['order_ids'] = $order_ids; if ($sum_total_order>0) { $reports['platform'][$platform_id]['total_brutto_median'] = number_format(round($sum_total_brutto/$sum_total_order,'2'), 2, '.', ''); $reports['platform'][$platform_id]['ctr'] = round(($reports['platform'][$platform_id]['conversion']/$reports['platform'][$platform_id]['total_entering'])*100,'2'); } else { $reports['platform'][$platform_id]['total_brutto_median'] = 0; $reports['platform'][$platform_id]['ctr'] = 0; } if (isset($reports['platform'][$platform_id]['days'])) { ksort($reports['platform'][$platform_id]['days']); } } //dane dla wykresu foreach ($reports['platform'] as $key => $platform) { if (!isset($platform['color'])) { $platform['color'] ="ccc"; } $reports['chart']['platform'][$reports['platform'][$key]['name']]['color'] = $platform['color']; foreach ($platform as $key2 => $days) { if (is_array($days) || is_object($days)) { foreach ($days as $day) { $reports['chart']['platform'][$reports['platform'][$key]['name']]['entering'][] = $day['entering']; $reports['chart']['platform'][$reports['platform'][$key]['name']]['count'][] = $day['day_total_order']; $reports['chart']['platform'][$reports['platform'][$key]['name']]['amount'][] = number_format($day['day_total_brutto'], 2, '.', ''); } } } } // die(); /*echo "
";
        print_r($reports);
        echo "
"; echo $from_date; echo $to_date;*/ return $reports; } /* Raport reklamy */ public static function getReportsAdsInfoValue($filters) { $from_date = $filters['from_date']; $to_date = $filters['to_date']; $ads_id = $filters['ads_id']; // echo $ads_id; $c = new Criteria(); $c->add(AdsTrackerEnteringPeer::APP_ADS_TRACKER_LIST_ID, $ads_id); $criterion = $c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); $criterion->addAnd($c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); $c->add($criterion); $ads_entering = AdsTrackerEnteringPeer::doSelect($c); //print_r($ads_entering); $reports = array(); $range = appAdsTracker::createDaysRangeArray($from_date,$to_date); $culture = sfContext::getInstance()->getUser()->getCulture(); // ustawienie wyglądu daty dla zakresu if (count($range["view"])>25) { foreach ($range["view"] as $value) { $chart_labels[] = $value; } } else { foreach ($range["data"] as $value) { $chart_labels[] = $culture == 'pl_PL' ? date('d-m', strtotime($value)) : date('n/j', strtotime($value)); } } $reports['chart']['labels'] = $chart_labels; foreach ($range["data"] as $value) { $date = $culture == 'pl_PL' ? date('d-m-Y', strtotime($value)) : date('n/j/Y', strtotime($value)); $chart_dates[] = $date; $reports['chart']['ads'][$ads_id]['entering'][$value] = 0; } $reports['chart']['dates'] = $chart_dates; if ($ads_entering) { foreach ($ads_entering as $ads) { $reports['chart']['ads'][$ads_id]['label'] = $ads->getAdsTrackerList()->getAdsTrackerPlatform()->getAdsName()." - ".$ads->getAdsTrackerList()->getAdsTrackerCampaign()->getAdsName(); $date = explode(" ", $ads->getCreatedAt()); $date = $date[0]; $reports['chart']['ads'][$ads_id]['entering'][$date] = $ads->getAdsEntering(); @$reports['chart']['ads'][$ads_id]['total'] += $ads->getAdsEntering(); } } else { if (!$ads_id) { $c = new Criteria(); $c->add(AdsTrackerListPeer::ID, $ads_id); $ads = AdsTrackerEnteringPeer::doSelectOne($c); // $reports['chart']['ads'][$ads_id]['label'] = $ads->getAdsTrackerList()->getAdsTrackerPlatform()->getAdsName()." - ".$ads->getAdsTrackerList()->getAdsTrackerCampaign()->getAdsName(); } } return $reports; } /* Zwraca rodzaj prezentowanego wykresu w zależności od zakresu dat */ public static function chartDisplayType($from_date, $to_date) { $range = appAdsTracker::createDaysRangeArray($from_date,$to_date); if (count($range['data']) <=61 ) { $display_type = "day"; }elseif (count($range['data']) >=62 ) { $display_type = "month"; }else{ $display_type = "none"; } return $display_type; } /* Zwraca dane z podziałem na dni*/ public static function createDaysRangeArray($strDateFrom, $strDateTo) { $aryRange=array(); $aryRangeView=array(); $aryRangeData=array(); $iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2),substr($strDateFrom,8,2),substr($strDateFrom,0,4)); $iDateTo=mktime(1,0,0,substr($strDateTo,5,2),substr($strDateTo,8,2),substr($strDateTo,0,4)); if ($iDateTo>=$iDateFrom) { array_push($aryRangeView,date('d',$iDateFrom)); // first entry array_push($aryRangeData,date('Y-m-d',$iDateFrom)); // first entry while ($iDateFrom <= $iDateTo - 86400) { $iDateFrom+=86400; // add 24 hours array_push($aryRangeView,date('d',$iDateFrom)); array_push($aryRangeData,date('Y-m-d',$iDateFrom)); } } $aryRange['view'] = $aryRangeView; $aryRange['data'] = $aryRangeData; return $aryRange; } /* Zwraca dane z podziałem na tygodnie*/ public static function createWeekRangeArray($date1, $date2) { $start = new DateTime($date1); $start->modify('first day of this week'); $end = new DateTime($date2); $interval = DateInterval::createFromDateString('1 week'); $period = new DatePeriod($start, $interval, $end); $aryRange=array(); $aryRangeView=array(); $aryRangeData=array(); $culture = sfContext::getInstance()->getUser()->getCulture(); foreach ($period as $dt) { array_push($aryRangeView, $culture == 'pl_PL' ? $dt->format("d-m-Y") : $dt->format("j/Y")); array_push($aryRangeData,$dt->format("Y-m-d")); } $aryRange['view'] = $aryRangeView; $aryRange['data'] = $aryRangeData; return $aryRange; } /* Zwraca dane z podziałem na miesiąe*/ public static function createMonthsRangeArray($date1, $date2) { $start = new DateTime($date1); $start->modify('first day of this month'); $end = new DateTime($date2); $interval = DateInterval::createFromDateString('1 month'); $period = new DatePeriod($start, $interval, $end); $aryRange=array(); $aryRangeView=array(); $aryRangeData=array(); $culture = sfContext::getInstance()->getUser()->getCulture(); foreach ($period as $dt) { array_push($aryRangeView, $culture == 'pl_PL' ? $dt->format("m-Y") : $dt->format("j/Y")); array_push($aryRangeData,$dt->format("Y-m-d")); } $aryRange['view'] = $aryRangeView; $aryRange['data'] = $aryRangeData; return $aryRange; } public static function random_color_part() { return str_pad( dechex( mt_rand( 0, 255 ) ), 2, '0', STR_PAD_LEFT); } public static function random_color() { return appAdsTracker::random_color_part() . appAdsTracker::random_color_part() . appAdsTracker::random_color_part(); } public static function getAdsEnteringValue($ads_id) { // echo $ads_id; $c = new Criteria(); $c->add(AdsTrackerEnteringPeer::APP_ADS_TRACKER_LIST_ID, $ads_id); // $criterion = $c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $from_date, Criteria::GREATER_EQUAL ); // $criterion->addAnd($c->getNewCriterion(AdsTrackerEnteringPeer::CREATED_AT , $to_date, Criteria::LESS_EQUAL )); // // $c->add($criterion); $ads_entering = AdsTrackerEnteringPeer::doSelect($c); if ($ads_entering) { $sum = 0; foreach ($ads_entering as $value) { $sum += $value->getAdsEntering(); } return $sum; } return 0; } /* zwraca pełną nazwę raklamy w formacie platforma / kampania - grupa nazwa appAdsTracker::getFullAdsName($ads_id) * */ public static function getFullAdsName($ads_id) { // echo $ads_id; $c = new Criteria(); $c->add(AdsTrackerListPeer::ID, $ads_id); $ads = AdsTrackerListPeer::doSelectOne($c); if ($ads) { $name = ""; $group = ""; if ($ads->getAdsName()!="") { $name = " / ".$ads->getAdsName(); } // if($ads->getAdsGroup()!=""){ // $group = " / ".$ads->getAdsGroup(); // } // $fullname = $ads->getId()." / ".$ads->getAdsTrackerPlatform()->getAdsName()." - ".$ads->getAdsTrackerCampaign()->getAdsName().$group.$name; $fullname = $ads->getId()." / ".$ads->getAdsTrackerPlatform()->getAdsName()." - ".$ads->getAdsTrackerCampaign()->getAdsName().$name; return $fullname; } else { return false; } } /* Sprawdza czy nie jest to adres wykluczony appAdsTracker::getIsExcludeRemoteAddress(); * */ public static function getIsExcludeRemoteAddress() { $config = stConfig::getInstance(sfContext::getInstance(), 'appAdsTrackerBackend'); $config->setCulture(sfContext::getInstance()->getUser()->getCulture()); if ($config->get('exclude_remote_address')!="") { $exclude_remote_address = explode(",", $config->get('exclude_remote_address')); if (in_array($_SERVER['REMOTE_ADDR'], $exclude_remote_address)) { return true; } } return false; } /* Informacja o aktywności appAdsTracker::getIsAdsTrackerActive(); * */ public static function getIsAdsTrackerActive() { $config = stConfig::getInstance(sfContext::getInstance(), 'appAdsTrackerBackend'); $config->setCulture(sfContext::getInstance()->getUser()->getCulture()); if ($config->get('is_active')==1) { return true; } return false; } /* Informacja o aktywności appAdsTracker::getIsAdsSytemDefault(); * */ public static function getIsAdsSytemDefault($ads_id) { $c = new Criteria(); $c->add(AdsTrackerListPeer::ID, $ads_id); $ads = AdsTrackerListPeer::doSelectOne($c); if ($ads) { if ($ads->getIsSystemDefault()==1) { return true; } } return false; } public static function getIsCampaignSytemDefault($campaign_id) { $c = new Criteria(); $c->add(AdsTrackerCampaignPeer::ID, $campaign_id); $campaign = AdsTrackerCampaignPeer::doSelectOne($c); if ($campaign) { if ($campaign->getIsSystemDefault()==1) { return true; } } return false; } /* Informacja o aktywności appAdsTracker::langFilter(); * */ public static function langFilter($string) { $lang = sfContext::getInstance()->getUser()->getCulture(); $string = str_replace("Wejście bezpośrednie - Wejście bezpośrednie", "Wejście bezpośrednie", $string); $string = str_replace("Wejścia bezpośrednie - Wejścia bezpośrednie", "Wejścia bezpośrednie", $string); if ($lang == "en_US") { $string = str_replace("Wejście bezpośrednie", "Direct entrance", $string); $string = str_replace("Wejścia bezpośrednie", "Direct entrance", $string); } return $string; } /* Informacja o aktywności appAdsTracker::checkCompare(); * */ public static function checkCompare($compare, $swich) { if ($swich==1) { $config = stConfig::getInstance(sfContext::getInstance(), 'appAdsTrackerBackend'); if ($config->get('is_active')!=1) { $config->set('is_active',1); $config->save(); stTheme::clearSmartyCache(true); } if ($compare == "googleshopping" ) { $c = new Criteria(); $c->add(AdsTrackerPlatformPeer::PLATFORM_TYPE, 5); $c->add(AdsTrackerPlatformPeer::IS_SYSTEM_DEFAULT, 1); $AdsTrackerPlatform = AdsTrackerPlatformPeer::doSelectOne($c); }elseif($compare == "facebook" ){ $c = new Criteria(); $c->add(AdsTrackerPlatformPeer::PLATFORM_TYPE, 6); $c->add(AdsTrackerPlatformPeer::IS_SYSTEM_DEFAULT, 1); $AdsTrackerPlatform = AdsTrackerPlatformPeer::doSelectOne($c); } else { $c = new Criteria(); $c->add(AdsTrackerPlatformPeer::PLATFORM_TYPE, 4); $c->add(AdsTrackerPlatformPeer::IS_SYSTEM_DEFAULT, 1); $AdsTrackerPlatform = AdsTrackerPlatformPeer::doSelectOne($c); if (!$AdsTrackerPlatform) { $AdsTrackerPlatform = new AdsTrackerPlatform(); $AdsTrackerPlatform->setIsActive(1); $AdsTrackerPlatform->setAdsName("Porównywarki"); $AdsTrackerPlatform->setPlatformType(4); $AdsTrackerPlatform->setDescription("Wejścia z porównywarek"); $AdsTrackerPlatform->setIsSystemDefault(1); $AdsTrackerPlatform->setColor("d08770"); $AdsTrackerPlatform->save(); } } $c = new Criteria(); $c->add(AdsTrackerListPeer::PLUGIN_NAME, $compare); $AdsTrackerList = AdsTrackerListPeer::doSelectOne($c); if (!$AdsTrackerList) { $ads_name = ucfirst($compare); if ($compare == "googleshopping" ) { $ads_name = "Google Shopping"; } $AdsTrackerCampaign = new AdsTrackerCampaign(); $AdsTrackerCampaign->setAppAdsTrackerPlatformId($AdsTrackerPlatform->getId()); $AdsTrackerCampaign->setAdsName($ads_name); $AdsTrackerCampaign->setIsActive(1); $AdsTrackerCampaign->setColor("ff6b00"); $AdsTrackerCampaign->save(); $hash = md5(date('YmdHis')); $AdsTrackerList = new AdsTrackerList(); $AdsTrackerList->setIsActive(1); $AdsTrackerList->setAppAdsTrackerPlatformId($AdsTrackerPlatform->getId()); $AdsTrackerList->setAppAdsTrackerCampaignId($AdsTrackerCampaign->getId()); $AdsTrackerList->setAdsName($ads_name); $AdsTrackerList->setHash($hash); $AdsTrackerList->setUrlHash("?hash=".$hash); $AdsTrackerList->setIsSystemDefault(1); $AdsTrackerList->setIsPlugin(1); $AdsTrackerList->setPluginName($compare); $AdsTrackerList->save(); }else{ $AdsTrackerList->setIsActive(1); $AdsTrackerList->save(); } } else { $c = new Criteria(); $c->add(AdsTrackerListPeer::PLUGIN_NAME, $compare); $AdsTrackerList = AdsTrackerListPeer::doSelectOne($c); if ($AdsTrackerList) { $AdsTrackerList->setIsActive(0); $AdsTrackerList->save(); } } } }