<?php

namespace statistics;

use traits\statistic_t;

class orders_s
{
    use statistic_t;

    public function get_new_orders(): self
    {
        // Get the departments
        $departments_o = new \objects\departments_o();
        // Get the orders
        $orders_o = new \objects\orders_o();

        // Get the orders
        $orders = $orders_o->getFields(['id', 'department_id', 'created_at']);
        // Get the departments
        $departments = $departments_o->getFields(['id', 'name']);
        // For each year, add the months covered
        $this->add_monthly_labels();
        // Add the counts for each department, for each month in each year
        foreach ( $departments as $department ) {
            $department_data_set = [];
            foreach ( $this->get_yearly_months_covered() as $year => $months ) {
                foreach ( $months as $month ) {
                    $count = 0;
                    foreach ( $orders as $order ) {
                        if ($order['department_id'] == $department['id'] && date('F', strtotime($order['created_at'])) == $month && date('Y', strtotime($order['created_at'])) == $year) {
                            $count++;
                        }
                    }
                    $department_data_set[$month . ' ' . $year] = $count;
                }
            }
            // Add the department data set
            $this->add_data_set($department['name'], $department_data_set);
        }
        return $this;
    }
}