<?php

namespace Offy\Bundle\DashboardBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations\View;
use Offy\Bundle\DashboardBundle\Document\Applicant;

class EvolutionController extends Controller {

    /**
     * 
     * @return array
     * @View()
     */
    public function getEvolutionAction() {
        $current_date = date("M-Y");
        $last_date = date('M-Y', strtotime('-1 month'));
        $next_last_date = date('M-Y', strtotime('-2 month'));
        $far_date = date('M-Y', strtotime('-3 month'));
        $dm = $this->get('doctrine_mongodb')->getManager();
        $data = array();
        $in_process = array("stage_name" => "In process", "number" => 0);
        $rercuited = array("stage_name" => "Recruited", "number" => 0);
        $rejected = array("stage_name" => "Rejected", "number" => 0);
        $data[] = array("date" => $current_date,
            "child" => array($in_process, $rercuited, $rejected));
        $data[] = array("date" => $last_date,
            "child" => array($in_process, $rercuited, $rejected));
        $data[] = array("date" => $next_last_date,
            "child" => array($in_process, $rercuited, $rejected));
        $data[] = array("date" => $far_date,
            "child" => array($in_process, $rercuited, $rejected));
        $applicantStage = $dm->getRepository('OffyDashboardBundle:Applicant')->findAll();
        foreach ($applicantStage as $applicant) {
            $applicantObj = new Applicant();
            $applicantObj = $applicant;
            $create_date = $applicantObj->getCreatDate();
            $stage_id = $applicantObj->getStageId();
            $date = date('M-Y', strtotime($create_date));
            if ($date === $current_date) {
                if ($stage_id === 1 || $stage_id === 2 || $stage_id === 3 || $stage_id === 4) {
                    $data[0]["child"][0]["number"] ++;
                } elseif ($stage_id === 7) {
                    $data[0]["child"][1]["number"] ++;
                } else {
                    $data[0]["child"][2]["number"] ++;
                }
            } elseif ($date === $last_date) {
                if ($stage_id === 1 || $stage_id === 2 || $stage_id === 3 || $stage_id === 4) {
                    $data[1]["child"][0]["number"] ++;
                } elseif ($stage_id === 7) {
                    $data[1]["child"][1]["number"] ++;
                } else {
                    $data[1]["child"][2]["number"] ++;
                }
            } elseif ($date === $next_last_date) {
                if ($stage_id === 1 || $stage_id === 2 || $stage_id === 3 || $stage_id === 4) {
                    $data[2]["child"][0]["number"] ++;
                } elseif ($stage_id === 7) {
                    $data[2]["child"][1]["number"] ++;
                } else {
                    $data[2]["child"][2]["number"] ++;
                }
            } elseif ($date === $far_date) {
                if ($stage_id === 1 || $stage_id === 2 || $stage_id === 3 || $stage_id === 4) {
                    $data[3]["child"][0]["number"] ++;
                } elseif ($stage_id === 7) {
                    $data[3]["child"][1]["number"] ++;
                } else {
                    $data[3]["child"][2]["number"] ++;
                }
            }
        }
        return array("results" => true, "error" => "ok", "data" => $data);
    }

}
