<?php

class Service_ShippingCount
{
    private static $_model = NULL;

    private static function getModelInstance() {
        if (is_null(self::$_model)) {
            self::$_model = new Table_ShippingCount();
        }

        return self::$_model;
    }

    public static function insert($data) {
        $model = self::getModelInstance();
        return $model->insert($data);
    }

    public static function getByField($value, $field = 'coustomer_code', $colums = "*"){
        $model = self::getModelInstance();
        return $model->getByField($value,$field,$colums);
    }

    public static function getByCondition($condition, $type, $pageSize = 0, $page = 1, $orderBy = "", $groupBy = "") {
        $model = self::getModelInstance();
        return $model->getByCondition($condition, $type, $pageSize, $page, $orderBy, $groupBy);
    }

    public static function getTotal($condition, $type, $flag = 'quantity')
    {
        $model = self::getModelInstance();
        return $model->getByAllCondition($condition, $type, 0, 1, $flag.' DESC', 'shipping_count.customer_code');
    }

    public static function getGroupByDate($condition, $flag = 'quantity')
    {
        $model = self::getModelInstance();
        return $model->getByAllCondition($condition, 'shipping_count.customer_code,date,SUM('.$flag.') AS '.$flag, 0, 1, $flag.' DESC', array('shipping_count.customer_code', 'date'));
    }

    public static function getWithProductInfo($condition, $type, $order = '', $groupBy = '')
    {
        $model = self::getModelInstance();
        return $model->getWithProductInfoByCondition($condition, $type, $order, $groupBy);
    }
}
